我的网站有一个简单的登录表单。
表单发布到login.php
在login.php
内我检查用户名和密码并重定向到特定页面。
一切都很好,直到遇到安全问题。从PCI合规性我得到这个:
应使用SSL / TLS(HTTPS)传输包含敏感信息的所有Web应用程序通信。如果在尝试修复此发现时使用从HTTP到HTTPS的重定向,请确保在系统的服务器端发生此类重定向(例如,通过使用HTTP“位置”标头元素)并且重定向不依赖于客户端(浏览器)。
然后我进入login.php
并将此代码添加到顶部:
if (!isset($_SERVER['HTTPS']) || !$_SERVER['HTTPS']) {
header("Location: https://" . $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"]);
}
如果我尝试在此更改后登录,登录过程似乎很顺利,除非我不确定这是否解决了问题。
备注:
我不能将网站设置为:https://www.website.com
,因为这会抛出安全警告。我确实有一个有效的证书。
任何想法如何解决这个问题?
感谢
编辑:
安全警告是关于访问一个不安全的网站,红色矩形问我是否确定我想要访问这个网站,我可以将它添加到例外列表
如果我在例外列表下添加证书,则此警报仅发生一次
答案 0 :(得分:0)
您的证书可能有效,但浏览器无法识别该证书是安全的。您需要找出浏览器说它无效的原因。通常它是由使用浏览器无法识别的根证书的公司生成的。您可能需要切换证书以摆脱“红色矩形”。
答案 1 :(得分:0)
您确定您的网页不包含通过http传输的内容,例如jpg或嵌入式对象。您可以告诉浏览器对页面使用https,但如果页面调用jpgs或其他脚本或其他内容,您可以使用http调用它们。然后浏览器认为该页面具有安全且不安全的对象,这可能是一个问题。