2012-02-10 70 views
0

我有一个网站,有一个简单的登录表单。php,如何以安全的方式发送表单数据?

形式员额login.php

login.php我检查用户名和密码,并重定向到一个特定的页面。

直到我遇到安全问题时,所有情况都很好。从PCI符合我得到这个:

所有包含敏感信息的Web应用程序通信应使用SSL/TLS(HTTPS)传输。如果尝试使用HTTP重定向到HTTPS以尝试修复此问题,请确保此类重定向发生在系统的服务器端(例如,通过使用HTTP“位置”标题元素),以及重定向不依赖于客户端(浏览器)端。

然后,我走进login.php,并在顶部添加以下代码:

if (!isset($_SERVER['HTTPS']) || !$_SERVER['HTTPS']) { 
    header("Location: https://" . $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"]); 
} 

如果我尝试这种变化的登录过程似乎经过精细后登录,但林不知道,这个解决问题。

笔记:
我不能设置的网站是:https://www.website.com,因为这将引发一个安全警告。我确实有一个有效的证书。

任何想法如何解决这个问题?

感谢

编辑:

的安全警告是关于访问不安全的网站,红色矩形问我,如果我敢肯定,我希望去这个网站,我可以将其添加到例外列表

,如果我下米的证书添加例外列表中,该警报只发生一次

+2

什么是安全警告? – Cez 2012-02-10 21:43:38

+0

安全警告说什么? – SLaks 2012-02-10 21:44:27

+0

我编辑帖子 – Patrioticcow 2012-02-10 21:46:55

回答

0

您的证书可能是有效的,但它不是由浏览器是安全的认可。你需要找出浏览器为什么说它是无效的。通常它是由使用浏览器无法识别的根证书的公司生成的。您可能需要切换证书以摆脱“红色矩形”。

+0

我明白你在说什么,但是如何不使用https为主index.php?我试图远离一些搜索引擎优化的目的 – Patrioticcow 2012-02-10 21:54:33

+0

你可以这样做,但我不知道你的合规部门会对此感觉如何。 ;)即使你没有在你的索引中使用它,当你希望他们登录的时候,你的用户仍然会面对那个“错误”页面。我的建议是,如果您认为该证书确实可行,请与您的证书提供商讨论重新发放问题。如果它是一家自己发行的证书公司或rinky-dink公司,我会为Verisign,Thawte等业界公认的证书而跳槽 – AlexC 2012-02-10 21:59:16

0

你确定你的页面没有包含通过http传输的东西,比如jpg或嵌入对象。您可以告诉浏览器使用https作为页面,但如果页面调用jpgs或其他脚本或其他东西,则可以使用http调用这些页面。浏览器然后认为该页面有安全和不安全的对象,这可能是一个问题。