【问题标题】:Only accepting certain ajax requests from authenticated users仅接受来自经过身份验证的用户的某些 ajax 请求
【发布时间】:2010-09-06 03:12:54
【问题描述】:

确保只接受经过身份验证的用户对某些页面的某些 ajax 调用的最佳做法是什么?

例如:

假设我有一个名为 blog.php 的主页(我知道,创造力比比皆是)。我们还假设有一个名为 delete.php 的页面查找参数 post_id,然后从数据库中删除一些条目。

在这个非常人为的示例中,blog.php 上有一些机制,它通过 ajax 向 delete.php 发送请求以删除条目。

现在,此机制仅对 blog.php 上经过身份验证的用户可用。但是有什么办法可以阻止某人用一堆随机数调用 delete.php 并删除站点中的所有内容?

我做了一个快速测试,在 blog.php 中设置了一个会话变量,然后对 delete.php 进行了 ajax 调用以返回是否设置了会话变量(不是)

处理这类事情的公认方法是什么?


好的。我第一次尝试这个的时候一定是疯了。

我刚刚做了另一个测试,就像我上面描述的那样,它运行良好。

【问题讨论】:

    标签: php ajax authentication


    【解决方案1】:

    不建议您在不采取额外操作的情况下依赖会话进行身份验证。 Read more on.

    【讨论】:

      【解决方案2】:

      您尝试使用会话变量是正确的。一旦您的用户进行身份验证,您应该将该信息存储在他们的会话中,以便每个后续页面视图都可以看到。确保在访问 $_SESSION 之前在两个页面(blog.php 和 delete.php)上都调用了 session_start()。还要确保你启用了 cookie——如果没有,你应该在查询字符串中传递一个额外的参数,通常是 PHPSESSID=session_id()>。

      【讨论】:

        猜你喜欢
        • 2012-07-06
        • 1970-01-01
        • 1970-01-01
        • 2015-07-29
        • 1970-01-01
        • 2014-03-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多