密码通过邮件安全发送?

时间:2010-07-28 14:34:19

标签: php header

  

可能重复:
  How secure is a HTTP POST?

假设我在php中有一个登录页面,用户需要输入他的名字和密码。 form method在这种情况下发布。

现在有人(我的朋友)告诉我,输入和发送到服务器的信息(用户名和密码)只能通过获取生成的结果页面的标题来入侵。所以你应该加密标题,这就是使用HTTPS的原因。

这对我来说没有意义,因为我认为通过post方法发送的信息(用户名和密码)是完全安全的,只是通过黑客攻击,无法访问用户名和密码。

我的朋友是对的吗?如果没有办法为无法访问代码的人做任何事情? 如何通过HTTPS发送我的私人信息(要在php中编码的页面)?

编辑:

通过标头发送get方法的数据。对?是否通过标头发送了post的数据?

7 个答案:

答案 0 :(得分:11)

如果没有SSL,通过POST发送的数据相当于通过GET发送的数据,换句话说,根本不加密。

答案 1 :(得分:8)

如果您只是通过POST发送密码,那么您的密码不是安全 - 仍然可见且未加密,尽管不那么明显。

通过POST发送未加密的密码是最不安全但仍然相对理智的方式。 (是的,安全方式较少,但那些完全疯狂 - 通过GET发送密码形式与在电视上播放或在报纸上打印一样安全。)

这是典型的GET请求:

GET http://somedomain.example.com/path/file?here=are&the=GET&parameters=.
X-Some-Header: header content
X-Another-Header: 1

这是一个类似的POST请求(请注意,您可以在POST请求中发送GET和POST参数):

POST http://somedomain.example.com/path/file?here=are&the=GET&parameters=.
X-Some-Header: header content
X-Another-Header: 1
Content-Length: 40

with_POST&=the&content=is&here_in=the&request=body

正如您所看到的,HTTP是一种完全明文协议 - 没有对数据执行加密,因此任何人都可以在传输过程中查看和/或修改它。根本不需要访问代码 - 只需观察流量和数据,任何人都可以看到(您可以使用Wireshark等工具验证这一点,以便查看网络流量)。

为了消除这种信任全世界的需要,创建了HTTPS(S代表安全),它提供加​​密(“只有发送者和接收者可以读取它”)和身份验证(“服务器确实是你的。例如。 com,而不是evilserver.example.net“)。

HTTPS是HTTP的包装:在HTTP中,客户端连接到Web服务器并启动对话,HTTPS首先建立安全的SSL隧道,HTTP通信通过它。设置HTTPS服务器比HTTP复杂一点,请参阅例如this article

答案 2 :(得分:3)

您可以使用Wireshark阅读提交的数据 - http://de.wikipedia.org/wiki/Wireshark 如果您在没有https的情况下发送了表单数据。

答案 3 :(得分:2)

如果是登录表单,我会在提交表单之前使用javascript来密码密码。它会让它变得更难。

答案 4 :(得分:1)

  

我想到了这些信息(用户名   通过post方法发送的密码)   完全安全

错误。通过POST发送的数据实际上与通过GET发送的数据一样不安全。唯一(边际)差异是GET数据通过网址历史记录和可能的日志略微“可访问”。但是,如果有人可以嗅探链接,他可以非常轻松地通过http请求(POST或GET)发送用户和密码,除非使用SSL(https://)。

答案 5 :(得分:0)

来自Wikipedia

  

HTTP是不安全的,并受其约束   中间人和窃听   攻击可以让攻击者获益   访问网站帐户和   敏感的信息。 HTTPS是   旨在抵御这种攻击和   被认为是安全的   攻击。

如果您担心某人拦截您的数据,请使用HTTPS。

答案 6 :(得分:0)

我相信提交表单的php脚本,表单本身需要位于使用SSL设置的Web服务器上的目录中。您还必须为该网站启用SSL证书。