我有一个Asp.net Web API项目。
项目通过接收名为sessionToken
http://myapi.com/api/applications/getApplications?sessionToken=xxx
但是,我听说通过公共网址发送敏感参数是不安全的,我看到example我可以在{{1}的标题中添加sessionToken
参数请求:
HttpClient
我很高兴现在我可以阅读参数而无需将其放入网址。
通过http请求标头发送敏感数据是否安全? (当然,他们至少会被加密)
答案 0 :(得分:1)
将您的安全敏感信息放在Url上并不是一个好主意。它可能导致信息泄露。
建议将其置于标题中。以下是一些进一步的建议:
使用Authorize标头而不是自定义标头。授权标头旨在用于身份验证。您可以定义自己的方案,也可以使用OAuth 2.0中定义的bearer等现有方案,而不是重新发明所有轮子。
客户端应始终使用TLS来防范MITM攻击
客户端在提出避免DNS hijacking攻击的请求时应始终检查证书链
将令牌的到期设置为短暂的以避免replay攻击
确保您的客户端代码不会将令牌存储到不安全的地方,其他人可以访问
答案 1 :(得分:1)
除非连接是加密的,否则我认为在网址或标题中发送任何敏感信息不是一个好主意。如果您仍希望通过不安全的http发送它,请使用一些可以加密数据的公钥/私钥加密。我已经构建了一个应用程序,其中url包含一些有效的短数据(例如2分钟)。