https会使这更安全吗?

时间:2012-04-16 20:58:27

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

我正在阅读Web服务的API,所有方法都涉及向

发送HTTP请求
https://example.com/api/APIVER/METHOD?apikey=APIKEY&user=USERNAME&password=PASSWORD

要明确的是,API密钥和用户密码都是通过URL以纯文本形式发送的。但这样做是否正确,因为“所有HTTPS流量都是加密的”,或者因为它们仍然是纯文本,或者因为URL有所不同?

如果这不安全,那么API维护者需要做的最小变化是什么?

3 个答案:

答案 0 :(得分:1)

是的,HTTPS使这更加安全。

答案 1 :(得分:1)

HTTPS使这更加安全。

您还应该将敏感参数作为POST参数发送(HTTP BODY)作为GET查询字符串。通常,查询字符串将由Web服务器日志(服务器端)以纯文本格式记录,因此系统管理员可能无法访问该字符串。

答案 2 :(得分:0)

HTTPS会对每个请求中的URL进行编码,因此如果您担心网络嗅探,那么您就可以了。 HTTPS还会添加一个nonce值,因此您不会受到回复攻击。

根据基础设施,可以插入用户设备信任的假SSL证书,并使用该证书通过代理路由请求。但是,这需要管理员/ root用户访问客户端计算机才能使这种证书受信任(除非违反通常受信任的CA),一旦某些东西需要管理员访问权限,所有投注都会被取消。

但这仍然不是一个好主意,我会担心开发人员忘记为HTTPS配置它。你有一个API密钥,所以为什么不拿密码并使用API​​KEY作为盐来哈希。现在对于API调用,salt是等效的密码,但这意味着用户名和密码不能用于使用这些凭据登录到其他地方,例如API正在运行的网站(假设您允许用户登录)当然在那里。)

更好的方法是使用一个完全没有通过线路的共享秘密,并将其用作盐。