好的,所以我在Facebook上创建了一个新帐户,但使用了"为名人,乐队或企业创建页面"的链接,我选择了品牌或产品并注册了.现在我绝对不可能通过我的新Facebook账户获得API,没有选择获得API密钥,事实上我花了半天时间试图找出答案.我决定登录我的个人Facebook帐户并获得一个API密钥,设法在10秒内完成,所以为什么如果你设置一个帐户作为品牌或产品,如此难以获得API密钥?
我正在创建一个网站,该网站将使用ID,密码和API密钥到其他第三方网站 - 以便服务器相应地访问信息.出于此对话的目的,我们假设它是针对支付网关的 - 意味着存储在数据库中的此信息的暴露可能意味着恶意用户可以从其凭据泄露的帐户中提取现金.
不幸的是,这不像密码/散列情况,因为用户每次都不输入凭证 - 他们输入一次,然后将其保存在服务器上以供应用程序将来使用.
我能想出的唯一合理的方法(这将是一个MySQL/PHP应用程序),是通过PHP应用程序中的硬编码"密码"加密凭证.这里唯一的好处是,如果恶意用户/黑客获得对数据库的访问权限,而不是PHP代码,他们仍然没有任何东西.也就是说,这对我来说似乎毫无意义,因为我认为我们可以合理地假设一个黑客如果得到一个或另一个就会得到一切 - 对吧?
如果社区决定一些好的解决方案,那么将其他来源收集到示例/教程/更深入的信息中会很好,以便将来可以为所有人实施.
我很惊讶我没有在堆栈上看到任何好的答案这个问题.我确实找到了这个,但在我的情况下,这并不适用:我应该如何道德地接近用户密码存储以便以后的明文检索?
谢谢大家.
我正在开发一个新的 Symfony 5.3.6 项目,并希望基于新系统实施身份验证,如下所示:
\n\n\nhttps://symfony.com/doc/current/security/authenticator_manager.html#creating-a-custom-authenticator
\n
我没有任何用户,只想检查发送的 api 令牌是否正确,因此在实现此方法时:
\npublic function authenticate(Request $request): PassportInterface\n{\n $apiToken = $request->headers->get(\'X-AUTH-TOKEN\');\n\n if (null === $apiToken) {\n // The token header was empty, authentication fails with HTTP Status Code 401 "Unauthorized"\n throw new CustomUserMessageAuthenticationException(\'No API token provided\');\n }\n\n return new SelfValidatingPassport(new UserBadge($apiToken));\n}\n\nRun Code Online (Sandbox Code Playgroud)\n具体在哪里进行检查?我是否忘记在某个地方实现另一个类?
\n如果我保留代码,它会直接进入onAuthenticationFailure.
据我所知,我可以使用属性来实现 Users/UserProvider $apiToken,然后系统将检查数据库条目是否与请求中的令牌相对应。但我没有用户。
没有用户应该是可以的,因为在上面的 URL 上,它说:
\n\n\n …自助验证护照
\n如果您不需要检查任何凭据(例如,使用 API\ntokens 时),您可以使用 \nSymfony\\Component\\Security\\Http\\Authenticator\\Passport\\SelfValidatingPassport。\ n此类仅需要 UserBadge 对象和可选的 Passport\nBadges。
\n
我最近推出了一款Android应用,可以使用Google商家信息自动填充功能小部件/ API.作为配置的一部分,我将API密钥添加到我的Android清单文件中:
<application>
...
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="MY_KEY_HERE"/>
</application>
Run Code Online (Sandbox Code Playgroud)
此外,在Google Developers控制台中,我仅为Android设备启用了此API密钥,但并未限制任何特定的API.我还为我的应用输入了正确的包名和SHA-1哈希.现在我有以下问题:
我确信我部署到Play商店的实际上是同一个本地运行的应用程序,因为我最近也制作了一些小的UI补丁,这些也出现在商店版本上.我多次验证了清单文件中出现的正确密钥.
我无法解释这一点.这个问题特别困难,因为一切都可以在Android Studio中运行,所以我不能做一些事情,比如进入调试并尝试捕获异常.
如果你有一些Android和自动完成的专业知识,并且你已经看到类似的问题,那么我欢迎你的回答.
我们在应用程序中使用Google MapView,但在不同的计算机上,我们必须使用不同的API密钥,否则MapView不会显示任何内容.
有没有办法为所有开发人员设置一个密钥?
我正在建立一个允许我们的用户销售音乐节目门票的网络应用程序.为了处理购票者和节目发起人之间的付款,我使用Stripe.基本上,节目发起人在我的应用程序上创建他的节目页面,用户可以购买此节目的门票.
为了创造一个节目,对于教唆填写一个表格(显示的名字,显示的日期,其中显示将发生,将发挥什么带等)这种形式也需要展示始作俑者同时提供了可发布和秘密条纹键.我的应用程序使用这两个令牌来检索信用卡信息(在客户端)和处理付款(在服务器端).
问题是,我想确保show instigators提供有效和现有的Stripe键.我不希望我的用户偶然发现付款错误,因为展示发起人没有提供有效的Stripe密钥.
所以,我的问题是: 我如何验证Publishable和Secret密钥是否有效且存在?实现这一目标的最佳策略是什么?谢谢!
我在使用高级自定义字段插件加载谷歌地图时遇到问题.我在插件页面上的说明中制作了所有内容,如https://www.advancedcustomfields.com/resources/google-map.
我在ACF中添加google-map字段,但在它应该出现的页面上显示一秒钟,然后消失,标题为"糟糕!出错了.此页面未正确加载Google地图.请参阅JavaScript控制台技术细节." (见截图).控制台说我需要设置Google API密钥.我想我还需要从ACF指令修改.js文件中的一些字符串,但我不知道哪些字符串.可能有人可以提供帮助.
先感谢您.
截图
wordpress google-maps api-key google-maps-api-3 advanced-custom-fields
这可能听起来像一个愚蠢的问题,因为密码当然需要进行哈希处理,而不是存储原件.
但是,对于API机密,通常我会在注册时看到它们以明文形式显示.
例如,如果我转到google api控制台并查看我的凭据页面,我可以查看我的客户端密码,同样适用于Twitter.
api密钥肯定和密码一样灵敏吗?
是否只是因为从提供商方面,您可以确信生成了足够强大的密码?如果是这种情况,那么这不会提供任何保护,因为您的数据库受到了损害.
或者也许是因为如果你使用基于令牌的身份验证,你要么做密码授权类型,这要求你发送你的凭证以及客户端ID和秘密,或者刷新令牌,这样用户就不得不已被妥协?
我有一个脚本想要获取 AWS API 网关 ID 和 API 密钥值。到目前为止,我已经能够使用 cli 获取 API 网关 ID:
aws apigateway get-api-keys --query 'items[?name==`my-api-key-name`].id' --output text --region us-east-1
Run Code Online (Sandbox Code Playgroud)
但我无法获取 API 密钥的值。我尝试过以下 cli,但没有成功:
aws apigateway get-api-keys --query 'items[?name==`my-api-key-name`].value' --output text --region us-east-1
Run Code Online (Sandbox Code Playgroud)
有人可以帮我吗?
我一直在使用 AWS API Gateway、Lambda 和无服务器框架构建无服务器 REST API。我想建立一个用户注册的网站,选择一个 API 计划(免费、基本、专业)并获得相应的长期 API 密钥,他们可以使用该密钥每月查询一定次数的无服务器 API。
我知道使用 Cognito 和自托管 UI,您可以使用 CUP(Cognito 用户池)令牌轻松处理用户身份验证,这些令牌实际上是 Json Web 令牌。我想自动创建 API 密钥并将其关联到使用计划,然后关联到 Cognito 用户。
第一部分很简单:使用 AWS Javascript SDK,只需执行以下操作:
var params = {
keyId: 'whateverKeyId', /* required */
keyType: 'API_KEY', /* required */
usagePlanId: 'whateverUsagePlanId' /* required */
};
apigateway.createUsagePlanKey(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
});
Run Code Online (Sandbox Code Playgroud)
我在第二部分苦苦挣扎......我应该将 API 密钥作为自定义属性添加到用户池中吗?但是,我真的不知道如何检索 API 密钥。该文件是不是真的清楚。注册后将用户和 API Key 添加到我自己的 DynamoDB 数据库中(这真的会浪费 Cognito)? …
api-key ×10
api ×3
android ×2
google-maps ×2
php ×2
api-gateway ×1
aws-cli ×1
aws-lambda ×1
credentials ×1
facebook ×1
mysql ×1
security ×1
symfony ×1
symfony5 ×1
validation ×1
wordpress ×1