这足以确保我的会员专用区域


Is this enough to secure my members only area?

我创建了一个登录表单,在成功登录后将我重定向到另一个(成员区域页面)。

现在,正如你所知道的,成员区域的链接是可见的,所以,如果有人在浏览器中输入这个链接,它就变得很容易访问。我所做的就是在成功登录到会话后分配用户名,之后我把下面的php小代码放在我的主HTML

<body>
    <?php 
        session_start();
        if(isset($_SESSION['username']))
        {
        echo 'welcome: '. $_SESSION['username'];
        }
        else{
           header( 'Location: index.html');
        }
    ?>
</body>

基本上它检查,如果会话中有username,如果是,我让用户进入,否则我重定向他到索引页。

我的代码足够安全吗?黑客可以在没有任何授权的情况下分配会话值并登录吗?我知道这很简单,但我是php的新手,所以我想知道,如果我在正确的道路上。

黑客可以给会话赋值吗

不是直接的。会话数据保存在服务器端,因此只有您的代码和在服务器上运行的其他代码才能访问设置会话变量。建立会话的cookie不包含键/值,它们只包含服务器从磁盘加载会话数据的ID。当然,如果你的代码或服务器上的其他代码存在安全漏洞,那么黑客可以为所欲为。

我所做的就是在成功登录到会话后分配用户名,之后我把下面的php小代码放在我的主HTML

客户端不需要遵循重定向。不清楚您的真实脚本是什么样子的。只要记住,如果你不想让客户端看到某些东西,就不要从你的服务器发送它。

同样,您不应该在有任何输出之后设置标题。头总是在内容之前发送。如果这对你有效,那是因为你很幸运有缓冲。不要将身份验证逻辑和HTML表示混合在一起。

只有在服务器上运行的脚本才能访问会话存储。所以,这都是一个关于脚本的安全性和健壮性的问题。