如何在http url中安全地传递凭据?

时间:2009-06-20 16:04:37

标签: security

我在.Net中有一个面向公众的网页,我想把锚标记放到我的分布式系统中由Java服务器生成的网页中。例如,Bob从WWW登录并转到主页。我想在主页上找到http://javaserver/form.jsp?username:Bob的链接。但如果内部网络上有人窥探,那将是不安全的。他们可以通过重播攻击放入该URL并充当Bob。对用户名进行编码也会对重播攻击开放。有任何想法吗? 谢谢!

https ://javaserver / form.jsp?用户名:Bob只需输入该网址即可让我接受重播攻击。

4 个答案:

答案 0 :(得分:2)

  • 在公共和私人服务器上使用https
  • 发送用户ID并添加一个长而随机的令牌,用于验证用户(必要时委托给原始服务器)。
  • 如果可以
  • 使用POST请求

应使用加密安全随机数生成器创建随机令牌。它也应该在一定时间后更改/无效。如果要将验证委派给公共服务器,则还需要以安全的方式验证委派(本地)服务器。为了防止暴力攻击,阻止重复的无效尝试。

有很多陷阱,所以要小心自己实施任何类型的安全机制。

答案 1 :(得分:1)

在身份验证中使用Cookie和SSL。如果你还没有,我会感到惊讶。

答案 2 :(得分:0)

嗯嗯 - 只是大声思考 - 如果它不是https,它就可以窥探。您可以使用时间戳加密用户名,以便窗口很简短。不是一个好的答案,但因为http不安全....

答案 3 :(得分:-2)

我认为最好的解决方案是使用https。这样你发送给鲍勃的任何东西都不会被窥探。