Asp.net 保护REST API的用户/密码
我在一个安全的ASP.NET网站上有一个web服务REST API,它需要登录才能工作。以编程方式请求用户名/密码的最安全方式是什么?(仅向URL添加一个Asp.net 保护REST API的用户/密码,asp.net,security,rest,login,Asp.net,Security,Rest,Login,我在一个安全的ASP.NET网站上有一个web服务REST API,它需要登录才能工作。以编程方式请求用户名/密码的最安全方式是什么?(仅向URL添加一个?username=me&password=mysecret对我来说似乎并不安全(即使这是一个HTTPS连接)。有几种方法可以实现您所需的功能: [错误方式]用户可以将用户名和密码与查询字符串一起传递。理论上,这种做法没有错,但这样的URL()通常由浏览器、代理等缓存,因此可能存在其他人使用这些存储的数据访问受保护数据的风险 [好方法]为了消
?username=me&password=mysecret
对我来说似乎并不安全(即使这是一个HTTPS连接)。有几种方法可以实现您所需的功能:
- [错误方式]用户可以将用户名和密码与查询字符串一起传递。理论上,这种做法没有错,但这样的URL()通常由浏览器、代理等缓存,因此可能存在其他人使用这些存储的数据访问受保护数据的风险
- [好方法]为了消除与浏览器、代理等的缓存能力相关的“几乎所有”风险,而且为了使用HTTP协议的标准功能,您必须处理特殊问题
- 如果您使用的是HTTPS连接,则可以使用该方法 授权标头的构造如下所示:
- 用户名和密码组合成一个字符串“Username:password”
- 然后使用Base64对生成的字符串文本进行编码
- 然后将授权方法和空格(即“Basic”)放在编码字符串之前
例如,如果用户代理使用“Aladdin”作为用户名,“open sesame”作为密码,则标头的格式如下:
授权:基本qwxhzgrpjbvpcgvuihnlc2ftzq==
- 如果你使用的是HTTP连接,那么你应该使用这个方法。因为HTTPS连接更复杂,也没用,如果你愿意的话,我会让你读更多的