0

我有一个网站,有一个简单的登录表单。

表单发布到login.php

在里面login.php我检查用户名和密码并重定向到特定页面。

一切都很好,直到我遇到安全问题。从 PCI 合规性我得到这个:

所有包含敏感信息的 Web 应用程序通信都应使用 SSL/TLS (HTTPS) 传输。如果使用从 HTTP 到 HTTPS 的重定向来尝试纠正此发现,请确保此类重定向发生在系统的服务器端(例如通过使用 HTTP“Location”标头元素)并且重定向不依赖于客户端(浏览器)端。

然后我进入login.php并在顶部添加了这段代码:

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

如果我在此更改后尝试登录,则登录过程似乎正常,但我不确定这是否解决了问题。

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

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

谢谢

编辑:

安全警告是关于访问不安全的网站,红色矩形询问我是否确定要访问该网站,我可以将其添加到例外列表

如果我在例外列表中添加证书,则此警报仅发生一次

4

2 回答 2

0

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

于 2012-02-10T21:50:30.893 回答
0

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

于 2012-02-11T06:55:51.573 回答