php用SSL登录

问题描述:

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

任何意见将不胜感激。

非常感谢。

更新:我相信这段代码是非常重要的添加,以便登录页面在https上。 if(!isset($_SERVER['HTTPS'])) { header("location: https://" . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']);
}

+1

tep_href_link来自oscommerce。你在使用oscommerce吗?否则不。如果您正确地配置Web服务器,则不需要在PHP中执行任何特殊的操作。 – Cfreak 2012-02-04 06:28:21

+1

是你的HTTPS的工作? – Adi 2012-02-04 06:33:54

+1

如果您使用Apache,您可以:http://httpd.apache.org/docs/2.0/ssl/ssl_howto.html – 2012-02-04 07:11:10

HTTPS表示使用算法来加密transport layer通信,该通信对浏览器和服务器互相发送的内容进行加密。通过网络发送的加密表格是昂贵的以计算方式返回到它的原始内容,除非谁解密ciphertext具有配对的私钥(或...使用"computationally weak"算法)。

这是点对点(客户端向服务器发送请求,服务器接受,确定响应,发送响应),所以浏览器和服务器第一个exchange public keys代表你正在发送或接收的数据将被“加扰”反对。公钥发行者持有私钥,允许该计算机“解扰”并获得发送给接收者的原始内容。

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

“保护”敏感信息并非全部发生;您也可以使用SSL/TLS来防止篡改数据,或者甚至作为附加验证步骤。

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

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

夫妇的注意事项:

  • 浏览器都有自己的证书,所以不用担心。
  • 许多CMS”和框架允许您在应用层

指定HTTPS您可以使用WireShark检查你的电脑实际上是发送和接收。这可以非常明显,特别是在查看Firebug或Chrome Net控制台中的请求/响应时。

PHP在线手册有OpenSSL“书”。这是一个example of how CodeIgniter handles configuring HTTPS at the application level

有关于如何在LAMP堆栈上设置SSL的各种教程。如果你只是需要一个开发环境,这里是一个关于WAMP2 HTTPS and SSL Setup的教程。

如果您有共享主机环境,您可能无法自己在服务器上执行SSL设置;这可能由服务器管理员处理。检查您的主机。例如,DreamHost有extensive docs

+0

谢谢Jared。我会尽快阅读你所有的评论。 – 2012-02-04 08:49:50

+0

非常感谢Jared。我读了所有的笔记,并且我要说出色。至于现在,我在我的网页上设置了SSL,并强制SSL到所有页面。我想我将通过使用wireshark来检查我的电脑发送/接收的内容。对于SSL本身,它是一个私人的,而不是分享。它已经安装并正常工作。现在都好。非常感谢。 – 2012-02-04 11:38:13

+1

@Fxdigi,注意到Jared的答案中的第3点经常被忽略,但是非常重要。有关该问题的详细信息,请参阅[本答案](http://*.com/a/9105894/372643):使用['SSLRequireSSL'](http:// *)检查'$ _SERVER ['HTTPS']'。 com/a/3729555/372643),或者使用'mod_rewrite'从服务器端强制使用SSL并不能解决这些问题。发送HTTPS的请求最终取决于客户端:您应该确保您的服务器告知它这样做(使用适当的链接/ URL)。 – Bruno 2012-02-04 18:36:18

在快速谷歌上,这个函数(tep_href_link)似乎是osCommerce的一部分。如果您的网站正确安装了SSL证书,则强制用户访问https网址应该没问题。如果你不知道如何去查看位置标题或mod_rewrite。

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

+1

不只是链接,*所有*资源(包括JS/CSS文件,图像等)。 – 2012-02-04 07:11:47

+0

@JaredFarrish,真的! – quickshiftin 2012-02-04 07:13:18

+0

@quickshiftin,true。感谢您的评论。你对绿色锁是正确的。当我进入主页面时,我的网站显示绿色锁定,因为它使用https重定向到域,所有浏览器也显示绿色锁定。感谢大家。 Regards – 2012-02-04 11:40:41