标签: credentials

如何保护API密钥和第三方站点凭据(LAMP)?

我正在创建一个网站,该网站将使用ID,密码和API密钥到其他第三方网站 - 以便服务器相应地访问信息.出于此对话的目的,我们假设它是针对支付网关的 - 意味着存储在数据库中的此信息的暴露可能意味着恶意用户可以从其凭据泄露的帐户中提取现金.

不幸的是,这不像密码/散列情况,因为用户每次都不输入凭证 - 他们输入一次,然后将其保存在服务器上以供应用程序将来使用.

我能想出的唯一合理的方法(这将是一个MySQL/PHP应用程序),是通过PHP应用程序中的硬编码"密码"加密凭证.这里唯一的好处是,如果恶意用户/黑客获得对数据库的访问权限,而不是PHP代码,他们仍然没有任何东西.也就是说,这对我来说似乎毫无意义,因为我认为我们可以合理地假设一个黑客如果得到一个或另一个就会得到一切 - 对吧?

如果社区决定一些好的解决方案,那么将其他来源收集到示例/教程/更深入的信息中会很好,以便将来可以为所有人实施.

我很惊讶我没有在堆栈上看到任何好的答案这个问题.我确实找到了这个,但在我的情况下,这并不适用:我应该如何道德地接近用户密码存储以便以后的明文检索?

谢谢大家.

php mysql api credentials api-key

12
推荐指数
2
解决办法
2567
查看次数

git credential.helper = cache永远不会忘记密码?

我想忘记密码,所以我必须再次输入密码.

我设置了这个:

git config credential.helper 'cache --timeout=600'
Run Code Online (Sandbox Code Playgroud)

但很久以后,几天,它仍然记得密码,并没有再问我...

git版本1.7.10.4(在Ubuntu)

我遇到过一个bug吗?(因为我看到类似的问题,但没有我发现答案这个...)

编辑:或者我错过了什么?

编辑:现在我知道commit是本地的,而且push很遥远.但我的提交(使用RabbitVCS Git nautilus插件)似乎正在执行,push因为远程仓库正在更新...当我发出时push,它会要求输入密码......但是使用该commit命令它不会要求并执行远程更新; 我检查了4小时前我commit更新了远程服务器:(

git caching credentials helper

12
推荐指数
1
解决办法
2万
查看次数

将密码传递给-credential

我正在尝试登录计算机.我一直在玩各种版本,并确定我过去的问题是当我不知道我真正想做什么的时候.

我发现在运行脚本时我在错误的PC上.

当我现在在正确的PC上运行脚本时,以下代码要求我输入密码.

gwmi win32_service –credential domain\username –computer PC#
Run Code Online (Sandbox Code Playgroud)

我上面的当前脚本是否有办法在没有用户输入的情况下强制使用用户名和密码?我必须为100台PC执行此操作,因此我想循环遍历所有这些PC而无需用户输入密码100次.


我尝试过以下操作:

$Username = 'domain\username'
$Password = 'password'

$pass = ConvertTo-SecureString -AsPlainText $Password -Force

$SecureString = $pass
# Users you password securly
$MySecureCreds = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $Username,$SecureString –computer PC#
Run Code Online (Sandbox Code Playgroud)

但是,我得到了一个错误 A parameter cannot be found that matches parameter name 'computer'.

还尝试过:

$MySecureCreds = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $Username,$SecureString 
# Sets yous credentials to be used
#$RemoteConn = New-PSSession -ComputerName "PC#" -Credential $MySecureCreds -Authentication default
Run Code Online (Sandbox Code Playgroud)

但RemoteConn不起作用

powershell credentials

12
推荐指数
2
解决办法
6万
查看次数

播放服务提示请求无法在请求时显示电话号码

当使用谷歌的短信检索器api中的代码首先获取设备的电话号码时,对话框会显示一个加载微调器,然后快速消失.在onActivityResult中,resultCode为1002,intent为空.没有此错误代码的文档.我正在使用的确切代码是

        email.setOnClickListener(v -> {

        HintRequest hintRequest = new HintRequest.Builder().setHintPickerConfig(new CredentialPickerConfig.Builder().setPrompt(0).build())
                .setPhoneNumberIdentifierSupported(true)
                .setEmailAddressIdentifierSupported(false)
                //.setAccountTypes(IdentityProviders.GOOGLE)
                .build();

        PendingIntent intent =
                Auth.CredentialsApi.getHintPickerIntent(mGoogleApiClient, hintRequest);
        try {
            startIntentSenderForResult(intent.getIntentSender(),599,null,0,0,0,null);
        } catch (IntentSender.SendIntentException e) {
            Log.e("create", "Could not start hint picker Intent", e);
        }
    });


    mGoogleApiClient =  new GoogleApiClient.Builder(getContext())
            .enableAutoManage(getActivity(),connectionResult -> {
                Timber.e("conenction failed");
            })
            .addApi(Auth.CREDENTIALS_API)
            .addApi(Auth.GOOGLE_SIGN_IN_API)
            .build();
Run Code Online (Sandbox Code Playgroud)

如果我设置为true EmailAddressIdentifiedSupported或甚至只是取消注释setAccountTypes,则提示请求将正常显示电子邮件帐户并将名称和电子邮件返回给应用程序,但启用这两者不会导致凭据ID成为电话号码,如1

这是从一个片段调用的,但从任何位置调用各种startIntentSenderForResult没有任何区别.

android credentials google-api google-signin google-smartlockpasswords

12
推荐指数
2
解决办法
3732
查看次数

在Credential Manager Service中存储凭据

我有一些凭据(用户名和密码),我无法弄清楚存储它们的位置.

我听说过在Windows凭据服务中存储凭据的应用程序,所以我调查了这个选项.这看起来很理想.只需将敏感信息存储在Windows服务中,而不必担心将它们存储在您自己的注册表项中.

不幸的是,我很快发现这不是那么简单.我在MSDN中找到的唯一帮助是在C中.然后我认为我一定是弄错了,但后来我下载了Cain,并看到了一个用于解码凭据管理器密码的条目.

有没有办法在.NET中使用此功能?请告诉我.

c# credentials

11
推荐指数
1
解决办法
1万
查看次数

如何为单击一次应用程序指定用户凭据?

对于常规的.exe文件,我总是可以右键单击并选择"run as ..".如何以类似的方式在不同的凭据下运行Click-Once应用程序?

我说的是应用程序本身,而不是安装程序.

.net clickonce installer credentials

11
推荐指数
2
解决办法
7663
查看次数

Windows 7凭据提供程序示例

我正在尝试使用凭据提供程序为Windows 7创建自定义登录.我使用的是Windows 7 Professional,Windows SDK 7.0和Visual Studio 2010 Ultimate.在我从SDK 7.0中的示例文件夹构建SampleCredentialProvider的解决方案后,我创建了dll文件,我将dll文件复制到我的Windows\System32文件夹中,然后运行Register.reg,但登录时没有发生任何事情.根据登录屏幕中的文档,我应该能够看到新用户(管理员和访客).我做错了什么?有诀窍吗?

谢谢.

provider credentials windows-7

11
推荐指数
1
解决办法
8397
查看次数

Google云端硬盘/ OAuth - 无法弄清楚如何获得可重复使用的GoogleCredentials

我已成功安装并运行名为DriveCommandLineGoogle Drive Quick Start应用程序.我还调整了一点,以获取我的云端硬盘帐户中的一个文件的GET文件信息.

我现在要做的是以某种方式保存凭证并重新使用它们,而无需用户每次都必须访问网页才能获得授权代码.我已查看此页面,其中包含检索和使用OAuth 2.0凭据的说明.为了使用示例类(MyClass),我修改了DriveCommandLine中实例化Credential对象的行:

Credential credential = MyClass.getCredentials(code, "");
Run Code Online (Sandbox Code Playgroud)

这会导致抛出以下异常:

java.lang.NullPointerException
    at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:187)
    at com.google.api.client.json.jackson.JacksonFactory.createJsonParser(JacksonFactory.java:84)
    at com.google.api.client.json.JsonFactory.fromInputStream(JsonFactory.java:247)
    at com.google.api.client.googleapis.auth.oauth2.GoogleClientSecrets.load(GoogleClientSecrets.java:168)
    at googledrive.MyClass.getFlow(MyClass.java:145)
    at googledrive.MyClass.exchangeCode(MyClass.java:166)
    at googledrive.MyClass.getCredentials(MyClass.java:239)
    at googledrive.DriveCommandLine.<init>(DriveCommandLine.java:56)
    at googledrive.DriveCommandLine.main(DriveCommandLine.java:115)
Run Code Online (Sandbox Code Playgroud)

我一直在研究这些API(Google Drive和OAuth)2天,但进展甚微.我非常感谢上述错误以及获得持久凭据的问题.

整个结构对我来说似乎不必要地复杂化.有人想解释为什么我不能通过传入我的谷歌用户名和密码来创建一个简单的凭据对象?

谢谢,Brian O Carroll,都柏林,爱尔兰

*更新*

好吧,我刚刚解决了上述错误,现在又有了一个新错误.

解决第一个问题的方法是修改MyClass.getFlow().我没有使用json文件创建GoogleClientServices对象,而是使用了不同版本的GoogleAuthorizationCodeFlow.Builder,它允许您直接输入客户端ID和客户端密钥作为字符串:

flow = new GoogleAuthorizationCodeFlow.Builder(httpTransport, jsonFactory, "<MY CLIENT ID>", "<MY CLIENT SECRET>", SCOPES).setAccessType("offline").setApprovalPrompt("force").build();
Run Code Online (Sandbox Code Playgroud)

我现在遇到的问题是,当我尝试使用flow(GoogleAuthorizationCodeFlow对象)来交换Credentials对象的授权代码时,我收到以下错误:

An error occurred: com.google.api.client.auth.oauth2.TokenResponseException: 400 Bad Request
{
  "error" : "invalid_scope"
}
googledrive.MyClass$CodeExchangeException
        at googledrive.MyClass.exchangeCode(MyClass.java:185)
        at googledrive.MyClass.getCredentials(MyClass.java:262)
        at googledrive.DriveCommandLine.<init>(DriveCommandLine.java:56)
        at googledrive.DriveCommandLine.main(DriveCommandLine.java:115) …
Run Code Online (Sandbox Code Playgroud)

credentials google-drive-api

11
推荐指数
1
解决办法
1万
查看次数

"作为不同的用户运行"Visual Studio,无法清除缓存的TFS凭据

更新 我设法通过授予用户使用凭据集2远程连接到桌面的权限来解决此问题,从而能够从Credential Manager中删除存储的凭据.


我使用一组凭据登录我的服务器并使用"以不同用户身份运行"(Shift+ Right-click)打开Visual Studio 2012,因为我需要第二组凭据以部署到我的开发人员.ENV.SharePoint网站.

我之前已经完成上述操作,然后使用第三组凭据连接到TFS,因为我的用户(第二组凭据)还没有访问权限.现在我的用户可以访问,我希望使用这些凭据.
使用"以不同用户身份运行"每次打开VS时,TFS会自动使用第三组凭据登录 - 但是,如果我在不使用"以不同用户身份运行"的情况下正常打开VS,系统会提示您登录TFS.

我试过检查Windows凭据,那里什么都没有.我无法使用第二个设置凭据登录服务器,因为只有第一个设置可以使用远程桌面访问服务器.

那么在使用"以不同用户身份运行"时如何"清除"缓存的TFS凭据?

credentials visual-studio-2012 windows-server-2012 azure-devops

11
推荐指数
1
解决办法
2万
查看次数

AWS DotNet SDK 错误:无法从 EC2 实例元数据服务获取 IAM 安全凭证

我使用这里的示例从AWS SecretsManager 中检索 c# 代码中的机密。

我已经通过 AWS CLI 在本地设置了凭证,并且能够使用 AWS CLI 命令“aws secretsmanager list-secrets”检索秘密列表。

但是 c# 控制台应用程序失败并出现错误:

> Unhandled exception. System.AggregateException: One or more errors occurred. (Unable to get IAM security credentials from EC2 Instance Metadata Service.)
 ---> Amazon.Runtime.AmazonServiceException: Unable to get IAM security credentials from EC2 Instance Metadata Service.
   at Amazon.Runtime.DefaultInstanceProfileAWSCredentials.FetchCredentials()
   at Amazon.Runtime.DefaultInstanceProfileAWSCredentials.GetCredentials()
   at Amazon.Runtime.DefaultInstanceProfileAWSCredentials.GetCredentialsAsync()
   at Amazon.Runtime.Internal.CredentialsRetriever.InvokeAsync[T](IExecutionContext executionContext)
   at Amazon.Runtime.Internal.RetryHandler.InvokeAsync[T](IExecutionContext executionContext)
   at Amazon.Runtime.Internal.RetryHandler.InvokeAsync[T](IExecutionContext executionContext)
   at Amazon.Runtime.Internal.CallbackHandler.InvokeAsync[T](IExecutionContext executionContext)
   at Amazon.Runtime.Internal.CallbackHandler.InvokeAsync[T](IExecutionContext executionContext)
   at Amazon.Runtime.Internal.ErrorCallbackHandler.InvokeAsync[T](IExecutionContext executionContext)
   at Amazon.Runtime.Internal.MetricsHandler.InvokeAsync[T](IExecutionContext executionContext)
   --- …
Run Code Online (Sandbox Code Playgroud)

.net sdk credentials amazon-web-services

11
推荐指数
7
解决办法
2万
查看次数