密码通过邮件安全发送?

Pra*_*rav 7 php header

可能重复:
HTTP POST的安全性如何?

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

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

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

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

编辑:

数据通过get方法通过标头发送.对?数据是否post也通过标头发送?

Dan*_*uis 11

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

  • 不太相同.如果通过GET发送,即使在SSL连接上它仍然是明文. (5认同)
  • @JohnFX:GET标头中的URL被加密,就像HTTP over SSL/TLS("HTTPS")中的其余数据一样.HTTP和TLS是单独的层.您如何确定通过GET传输的密码在通过HTTPS发送时未加密? (2认同)
  • @ bowenl2:是的。但是,URL通常被视为非敏感资源。您绝对不希望在您的网络服务器日志中看到此消息:https://example.com/login?name=Piskvor&password=hunter2,(更不用说某人的网站统计信息或Google Analytics(分析)了)。 (2认同)

Pis*_*3.0 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
Run Code Online (Sandbox Code Playgroud)

这是一个类似的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
Run Code Online (Sandbox Code Playgroud)

如您所见,HTTP是一种完全明文协议 - 没有对数据执行加密,因此任何人都可以在传输过程中查看和/或修改它.访问代码是没有必要的 - 只是看流量和数据将在那里,任何人看到(你可以用工具如Wireshark的,它允许您查看网络流量验证).

要删除这需要信任整个世界,HTTPS(S是安全的)创建的,它提供了加密("只有发件人和收件人才能阅读")和认证("服务器确实是yourserver.example.com,和不是evilserver.example.net").

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