确保仅接受经过身份验证的用户对特定页面的特定 ajax 调用的最佳做法是什么?
例如:
假设我有一个名为 blog.php 的主页面(我知道,创意无处不在)。我们还假设有一个名为 delete.php 的页面,它查找参数 post_id,然后从数据库中删除一些条目。
在这个非常人为的示例中,blog.php 上有一些机制可以通过 ajax 向 delete.php 发送请求以删除条目。
现在这个机制将只对 blog.php 上的经过身份验证的用户可用。但是,如何阻止某人使用一堆随机数调用 delete.php 并删除站点中的所有内容?
我做了一个快速测试,我在 blog.php 中设置了一个 session 变量,然后对 delete.php 进行了 ajax 调用,以返回是否设置了 session 变量(事实并非如此) 。
处理此类事情的可接受方式是什么?
好的。我第一次尝试这个的时候一定是疯了。
我刚刚做了另一个测试,就像我上面描述的那样,它运行良好。
最佳答案
您尝试使用 session 变量是正确的。一旦您的用户通过身份验证,您应该将该信息存储在他们的 session 中,以便每个后续页面 View 都能看到该信息。确保在访问 $_SESSION 之前在两个页面(blog.php 和 delete.php)上都调用了 session_start()
。还要确保您启用了 cookie——如果没有,您应该在查询字符串中传递一个附加参数,通常是 PHPSESSID=<session_id()
>。
关于php - 仅接受来自经过身份验证的用户的某些 ajax 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15366/