PHP:发布到SSL-澄清?

PHP:发布到SSL-澄清?,php,forms,security,Php,Forms,Security,可能是一个非常基本的问题,但在阅读了类似的问题和答案后,我有点困惑,希望得到更多的澄清 如果我有一个不安全的页面,并且有一个表单可以发布到一个受保护的页面,那么一旦提交,数据会被加密吗 例如: 具有发布到安全页面的表单: https://example.com/do.php“method=“post”> ..... 这足以使它成为一个安全的帖子,还是初始页面也必须是安全的?没有ajax或其他任何东西,只有php 通过SSL发布的任何内容在传输过程中都是安全的。但这不是你的问题所在 如果您有一

可能是一个非常基本的问题,但在阅读了类似的问题和答案后,我有点困惑,希望得到更多的澄清

如果我有一个不安全的页面,并且有一个表单可以发布到一个受保护的页面,那么一旦提交,数据会被加密吗

例如:

具有发布到安全页面的表单:

https://example.com/do.php“method=“post”> .....


这足以使它成为一个安全的帖子,还是初始页面也必须是安全的?没有ajax或其他任何东西,只有php

通过SSL发布的任何内容在传输过程中都是安全的。但这不是你的问题所在

如果您有一个不安全的页面
http://example.com/login.php
,攻击者可以在用户下载页面时更改页面,因为没有安全性(没有加密,没有完整性保护,什么都没有)。攻击者可以更改表单以从登录明文发送凭据。或者将其发送到攻击者的服务器。或者注入任何javascript,例如在按键时将每次击键发送给攻击者。攻击者可以完全控制通过普通http下载的页面

为什么攻击者会在下一篇文章中为加密而烦恼呢?在那篇文章发表之前,他已经掌握了所有的信息

因此,简言之,如果原始页面是通过普通http下载的,则(几乎)没有必要通过ssl发出后续请求-攻击者已经知道ssl请求中的任何内容。(请注意,某些特殊情况可能是例外情况,但一般情况下,情况就是如此。)


一个值得注意的例外是,需要保护的不是请求,而是响应——它将在ssl交换中加密,我认为不同的协议,https与http将被视为不同的来源,因此即使将javascript注入原始明文页面,也很难从响应中获取信息。但login.php的假定功能并非如此,它必须通过https提供。

文章的可能副本将是安全的。是的,提交的数据将被加密。但原始页面中提供的任何数据都不会,因此您只为用户输入的数据提供保护,而不是任何隐藏字段/等。最有可能的情况是,这将是用户ID之类的内容,这可能对您很重要,也可能对您不重要。简而言之,只要在任何地方使用SSL,就没有理由再不使用了。谢谢大家!非常感谢帮助与前面的评论相反,在不安全(普通http)页面上输入的任何数据本质上都是不安全的,攻击者可能会丢失这些数据,因为攻击者可能会在不安全的页面中注入或更改任何javascript。通过ssl进行任何进一步的发布都是毫无意义的。