窃取我的POST数据

时间:2011-05-16 10:27:08

标签: php security post packet-sniffers

好的,这可能是非常基本的,但在这个发展阶段,这对我来说很重要。我很感谢任何意见和建议。

此示例中的数据不受SSL加密保护。


page1.php/asp包含一个表单,用于将变量usernamepassword发布到page2.php/asp


  • 任何人都可以通过收听它来拦截我的POST数据,可能还有像Firesheep这样的第三方软件吗?

如果上述问题呈现为TRUE:

  • 我是否应该始终认为我的未加密的POST数据可以免费提供给任何人?
  • 我网站上的标准登录表单只是描述一层甚至不存在的安全层吗?
  • 我是否应该将登录功能视为个性化用户体验的一种方式?
  • 鼓励用户不要使用他或她的正常(假定的更安全)密码是否有意义,因为在注册和登录程序期间不会受到保护?

我思考这些问题,感谢任何意见和反馈。

4 个答案:

答案 0 :(得分:9)

当用户通过未加密的HTTP提交登录表单时,他们的数据将通过一系列路径发送到您的服务器。在任何一条路线上,是的,有人可以嗅探数据。此外,如果用户的计算机被感染,黑客可能会在本地嗅探数据。

如果是登录表单,您应该使用SSL,期限。还要确保在数据库中加密用户的密码。登录的过程应该是:

  1. 用户通过HTTPS提交用户名和密码登录
  2. 服务器接受密码并对其应用散列算法,通常使用MD5,但建议使用像SHA256这样强大的东西
  3. 服务器将加密值与数据库中的加密值进行比较
  4. 这样一来,如果您的数据库被黑了,那么密码非常难以弄清楚(除非他们使用像'密码'这样的基本内容,但那时他们的错误就是这样。)

      

    鼓励这样做是否有意义   用户不要使用他或她的正常   (假定更安全)密码,因为它   不受保护?

    你会把用户赶走。

答案 1 :(得分:2)

是。任何可以看到数据包通过的人都可以看到用户名和密码。这使得它在开放的共享Wi-Fi网络等时特别容易受到攻击。

我会说你所有的假设都是正确的,这就是为什么在服务之间共享密码是不好的做法,特别是那些服务具有不同安全级别的情况。

如果可以的话,我建议你转移到SSL登录,部分原因是因为很多用户会忽略你给他们使用通用密码的任何建议,部分是因为这只是一个好习惯。 之前的好习惯像Firesheep这样的事情变得如此容易让“正常”的人使用,现在更重要了。

答案 2 :(得分:1)

  

任何人都可以通过收听来拦截我的POST数据,也许可以使用像Firesheep这样的第三方软件吗?

不,流量必须靠近他们。

  

如果上述问题呈现为TRUE:

它没有,但即便如此。

  

我是否应该始终认为我的未加密的POST数据可以免费提供给任何人?

除非它只通过局域网,否则是。如果它只通过局域网传输,那么在“局域网”上添加限定符,答案就是肯定。

  

我网站上的标准登录表单是否只是描述一层甚至不存在的安全层?

没有

  

我是否应该将登录功能视为个性化用户体验的一种方式?

当然,如果没有加密,你不应该做任何严肃的事情。

  

鼓励用户不使用他或她的正常(假设的更安全)密码是否有意义,因为在注册和登录过程中它不会受到保护?

对任何系统都这样做是有意义的。即使通信是安全的,您的服务器将来也可能会受到损害,或者第三方系统可能会受到攻击,然后用于攻击您系统的数据。

答案 3 :(得分:1)

我是否应该将登录功能视为个性化用户体验的一种方式? 鼓励用户不使用他或她的正常(假设的更安全)密码是否有意义,因为在注册和登录过程中它不会受到保护?

这取决于使用登录表单的网站。大多数大型网站(例如Gmail)都使用https进行登录身份验证,然后切换到http。 (有报道称此交换机还引入了一些漏洞。)其他站点在隐藏表单字段中发送salt值。您的原始密码将替换为salt和hash。在服务器上重复相同的操作,以确保您已发送正确的密码。这发生在场景后面,因此用户无法确定是否未加密发送。预计有很好的网站可以做到这一点。普通网站可能不这样做。路由器和调制解调器的许多配置页面都不使用加密或混淆。