什么是https和SSL?他们是如何工作的?它们如何在PHP中使用?

M. *_*awy 5 php security ssl https implementation

我知道一般的定义,但我需要更多关于如何一般地实现它们的细节和特定的PHP,以及我从中获得的功能究竟是什么?

zom*_*bat 5

SSL代表"安全套接字层",它是一种加密HTTP通信的方法(除此之外).它可以加密Web浏览器和服务器之间的流量,从而可以发送安全数据而不必担心被窃听.

SSL是一种Web服务器级技术,与PHP无关.您可以启用任何具有SSL的Web服务器,无论它是否具有PHP,并且您不必编写任何特殊的PHP代码以使您的PHP页面显示在SSL上.

互联网上有许多关于如何为您可能正在使用的任何网络服务器设置SSL的指南.这是一个广泛的主题.你可以 Apache 开始.


ste*_*efs 3

一些网络服务器配置为镜像整个站点,因此您可以通过 http 或 https 获取每个页面,具体取决于您的偏好或网络浏览器如何发送它们。https 是安全的,但速度有点慢,并且会给您的硬件带来更大的压力。

因此,您可以像往常一样实施您的网站和商店,但决定将从购物车到结账、付款等所有内容都放在 https 下。为了实现这一点,所有到购物车的链接都是绝对的,并且以前缀https://代替http://。现在,如果人们点击购物车图标,他们就会被转移到安全版本,并且因为从那里开始的所有链接又都是相对的,所以他们会停留在那里。

但!他们可能会手动将 https 替换为 http,或者使用恶意链接等继续使用未加密的版本。

在这种情况下,您可能想要检查您的脚本是否是通过 https 调用的(_SERVER["SERVER_PROTOCOL"]据我所知),如果不是,则拒绝执行(好的做法)。或发出到安全站点的重定向。

旁注:https 不再使用 ssl exclusivley,tls(ssl 的后继者,请参阅rfc2818)更现代

经验法则:用户应该可以选择在非关键环境中使用 http 或 https,但必须在网站的关键部分(登录/购物车/支付/...)上强制使用 https,以防止恶意攻击。