php使用SSL登录


php login with SSL

我在这里读到了很多关于如何将登录连接到SSL等问题,但这个想法仍然不太清楚。根据我读到的内容,我需要在我的网络服务器上安装SSL设置,这样我就可以在要使用登录名的页面上使用https安全连接。好的,我已经完成了这一部分,但仍然想知道登录代码中包含什么,以便整个会话必须通过https。在一些网站上,他们提到我必须添加此代码tep_href_link(FILENAME_ACCOUNT, '', 'SSL'),以便php登录页面或代码是安全的。

如有任何意见,我们将不胜感激。

非常感谢。

更新:我认为添加此代码非常重要,这样登录页面就可以在https上运行。if(!isset($_SERVER['HTTPS'])) { header("location: https://" . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']);
}

HTTPS表示使用一种算法来保护传输层通信,该算法对浏览器和服务器相互发送的内容进行加密。通过网络发送的加密形式在计算上是昂贵的,除非解密密文的人有配对的私钥(或者……使用了"计算较弱"的算法)。

这是点对点的(客户端向服务器发送请求,服务器接受,确定响应,发送响应),因此浏览器和服务器首先交换公钥,该公钥表示您发送或接收的数据将被"扰乱"。私钥由公钥颁发者持有,允许该计算机"解扰"并获得发送给接收器的原始内容。

因此,当您创建私钥/公钥对时,私钥会保存在服务器上(保密),相关的公钥会发送到浏览器。同样,浏览器也做同样的事情并将公钥传输到服务器。

"保护"敏感信息并不是一切;例如,您还可以使用SSL/TLS来防止篡改数据,甚至可以将其作为额外的验证步骤。

要获得HTTPS设置并可供您使用,您需要:

  1. 获取公钥/私钥(由证书颁发机构或CA签名可能是可选的,具体取决于您的最终用户)
  2. 将其安装到web服务器可用的服务器上的密钥存储中。在许多情况下,OpenSSL用于这两个步骤
  3. 将系统设置为使用HTTPS URL(适用于所有资源,而不仅仅是<form action="https://...">

注意事项:

  • 浏览器有自己的证书,所以不用担心
  • 许多CMS和框架允许您在应用程序层指定HTTPS

您可以使用WireShark来检查您的计算机实际发送和接收的内容。这可能非常有启发性,尤其是在Firebug或ChromeNet控制台中查看请求/响应时。

PHP在线手册中有OpenSSL"书"。以下是CodeIgniter如何在应用程序级别处理HTTPS配置的示例。

关于如何在LAMP堆栈上设置SSL,有各种教程。如果您只需要一个开发环境,这里有一个关于WAMP2HTTPS和SSL设置的教程。

如果你有一个共享的托管环境,你可能无法自己在服务器上进行SSL设置;这可以由服务器管理员来处理。请与您的主人核实。例如,DreamHost有大量的文档。

嗯,在快速谷歌上,这个函数(tep_href_link)似乎是osCommerce的一部分。如果您的网站正确设置了SSL证书,那么强制用户使用https url应该没问题。如果您不知道如何做到这一点,请查看Location标头或mod_rewrite。

此外,顺便说一句,你需要做的一件事是确保页面上的所有链接都通过https。这将增加用户进入页面时获得绿锁或w/e的可能性,假设证书不是自签名的。