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

时间:2009-07-29 06:39:22

标签: php ssl https implementation security

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

2 个答案:

答案 0 :(得分:5)

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

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

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

答案 1 :(得分:3)

某些Web服务器配置为镜像整个站点,因此您可以通过http或https获取每个页面,具体取决于您喜欢的内容,或者Web浏览器如何发送它们。 https是安全的,但速度稍慢,会给你的硬件带来更大的压力。

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

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

在这种情况下,您可能想要检查您的脚本是否通过https(_SERVER["SERVER_PROTOCOL"],afaik)调用,如果没有则拒绝执行(良好实践)。或者发送重定向到安全站点。

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

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