我正在远程服务器上创建一个安全的Web应用程序。是否有一个行业标准来防止用户访问仅对已发布其登录详细信息的用户可用的网页。
到目前为止,如果发送的用户确实持有会话变量,则使用简单的头重定向来保护经过身份验证的用户页面。
这是行业标准吗?有没有更好的方法来实现这样的方法。
pysedo代码
Session code dosent equal value or session is null {
header redirect to index
}发布于 2012-09-28 19:05:05
正如我在评论中所说,重定向标头本身并不是一个安全功能。在你发送了一个重定向报头之后,你应该确保正常的执行不会发生。
例如:
if($username != "foo" && $password != "bar")
{
header('Location: http://domain.org/index.php');
}
echo "Authorized page";即使用户名和密码不正确,也可以通过忽略Location头来访问此页面的内容。
一个简单的解决方法是:
if($username != "foo" && $password != "bar")
{
header('Location: http://domain.org/index.php');
die("Redirecting to home page");
}
echo "Authorized page";此外,身份验证不要依赖于对每个页面的手动检查,这一点很重要,因为开发人员很容易忘记这些检查。尝试尽可能多地自动化这些事情。
发布于 2012-09-28 18:49:53
我不确定我的问题是否理解正确。
然而,这可能会有所帮助:由于web服务器以非常好的方式处理身份验证(只要配置正确),所以只剩下热链接了。您可以尝试通过服务器配置中的其他重定向规则来捕获该问题:如果HTTP_REFERER不是以前经过身份验证的页面,则重定向到任何位置。
我再也想不出更多了。重要的是在一开始就获得正确和安全的身份验证。
发布于 2012-09-28 19:45:34
我不确定这是否是一个好的解决方案,但我只是将登录状态保存在会话变量中:
if ($_SESSION[loggedIn] == "yes" && $_SESSION["LevelTwoPermissions"] == "yes")
{
// Grant access to allowed content...
}
else
{
// Redirect to login page or ask for login in a pop-up
}从理论上讲,它可以通过窃取其他用户的会话cookie来进行黑客攻击,但对于我的目的来说,这是一个合理的安全级别。
https://stackoverflow.com/questions/12638508
复制相似问题