首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果未输入登录详细信息,则阻止访问网页的正确步骤

如果未输入登录详细信息,则阻止访问网页的正确步骤
EN

Stack Overflow用户
提问于 2012-09-28 18:45:16
回答 3查看 143关注 0票数 1

我正在远程服务器上创建一个安全的Web应用程序。是否有一个行业标准来防止用户访问仅对已发布其登录详细信息的用户可用的网页。

到目前为止,如果发送的用户确实持有会话变量,则使用简单的头重定向来保护经过身份验证的用户页面。

这是行业标准吗?有没有更好的方法来实现这样的方法。

pysedo代码

代码语言:javascript
复制
 Session code dosent equal value or session is null {

     header redirect to index 

}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-09-28 19:05:05

正如我在评论中所说,重定向标头本身并不是一个安全功能。在你发送了一个重定向报头之后,你应该确保正常的执行不会发生。

例如:

代码语言:javascript
复制
if($username != "foo" && $password != "bar")
{
    header('Location: http://domain.org/index.php');
}

echo "Authorized page";

即使用户名和密码不正确,也可以通过忽略Location头来访问此页面的内容。

一个简单的解决方法是:

代码语言:javascript
复制
if($username != "foo" && $password != "bar")
{
    header('Location: http://domain.org/index.php');
    die("Redirecting to home page");
}

echo "Authorized page";

此外,身份验证不要依赖于对每个页面的手动检查,这一点很重要,因为开发人员很容易忘记这些检查。尝试尽可能多地自动化这些事情。

票数 1
EN

Stack Overflow用户

发布于 2012-09-28 18:49:53

我不确定我的问题是否理解正确。

然而,这可能会有所帮助:由于web服务器以非常好的方式处理身份验证(只要配置正确),所以只剩下热链接了。您可以尝试通过服务器配置中的其他重定向规则来捕获该问题:如果HTTP_REFERER不是以前经过身份验证的页面,则重定向到任何位置。

我再也想不出更多了。重要的是在一开始就获得正确和安全的身份验证。

票数 0
EN

Stack Overflow用户

发布于 2012-09-28 19:45:34

我不确定这是否是一个好的解决方案,但我只是将登录状态保存在会话变量中:

代码语言:javascript
复制
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来进行黑客攻击,但对于我的目的来说,这是一个合理的安全级别。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12638508

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档