如何将敏感数据发送到Asp.net Web API服务器

时间:2013-04-26 07:39:45

标签: asp.net http asp.net-web-api security

我有一个Asp.net Web API项目。

项目通过接收名为sessionToken

的参数来验证所有请求

http://myapi.com/api/applications/getApplications?sessionToken=xxx

但是,我听说通过公共网址发送敏感参数是不安全的,我看到example我可以在{{1}的标题中添加sessionToken参数请求:

HttpClient

我很高兴现在我可以阅读参数而无需将其放入网址。

通过http请求标头发送敏感数据是否安全? (当然,他们至少会被加密)

2 个答案:

答案 0 :(得分:1)

将您的安全敏感信息放在Url上并不是一个好主意。它可能导致信息泄露。

建议将其置于标题中。以下是一些进一步的建议:

  • 使用Authorize标头而不是自定义标头。授权标头旨在用于身份验证。您可以定义自己的方案,也可以使用OAuth 2.0中定义的bearer等现有方案,而不是重新发明所有轮子。

  • 客户端应始终使用TLS来防范MITM攻击

  • 客户端在提出避免DNS hijacking攻击的请求时应始终检查证书链

  • 将令牌的到期设置为短暂的以避免replay攻击

  • 确保您的客户端代码不会将令牌存储到不安全的地方,其他人可以访问

答案 1 :(得分:1)

除非连接是加密的,否则我认为在网址或标题中发送任何敏感信息不是一个好主意。如果您仍希望通过不安全的http发送它,请使用一些可以加密数据的公钥/私钥加密。我已经构建了一个应用程序,其中url包含一些有效的短数据(例如2分钟)。