代码之家  ›  专栏  ›  技术社区  ›  LeWoody

如何在HTTP URL中安全地传递凭据?

  •  0
  • LeWoody  · 技术社区  · 16 年前

    我在.NET中有一个面向公众的网页,我想把锚标签放在我的分布式系统中由Java服务器产生的网页上。例如,Bob从www登录并转到主页。我想链接到 http://javaserver/form.jsp?username:Bob 在主页上。但如果内部网络上有人在窥探,这将是不安全的。他们只需输入该URL,然后通过重播攻击扮演Bob的角色。对用户名进行编码也会受到重播攻击。有什么想法吗? 谢谢!

    HTTPS ://javaServer/form.jsp?用户名:Bob仍然通过输入该URL打开我的重播攻击。

    4 回复  |  直到 16 年前
        1
  •  2
  •   molf    16 年前
    • 使用 https 在公用服务器和专用服务器上
    • 发送用户ID并添加一个长且随机的令牌,用于验证用户(如有必要,将委托给原始服务器)。
    • 如果可以,请使用Post请求

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

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

        2
  •  1
  •   SpliFF    16 年前

    在您的身份验证中使用cookie和ssl。如果你还没有,我会很惊讶的。

        3
  •  0
  •   ChickenMilkBomb    16 年前

    嗯——只是大声想一想——如果不是https,它就很容易被窥探。您可以用时间戳加密用户名,这样窗口就简短了。不是很好的答案,但由于HTTP不安全…

        4
  •  -2
  •   Michiel    16 年前

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