确保仅对经过身份验证的用户接受某些ajax调用某些页面的最佳做法是什么?
例如:
假设我有一个名为blog.php的主页(我知道,创意很丰富).我们还说有一个名为delete.php的页面,它查找参数post_id,然后从数据库中删除一些条目.
在这个非常人为的例子中,blog.php上有一些机制,它通过ajax向delete.php发送一个删除条目的请求.
现在,这种机制只适用于blog.php上经过身份验证的用户.但是什么阻止某人用一堆随机数调用delete.php并删除网站中的所有内容?
我做了一个快速测试,我在blog.php中设置了一个会话变量,然后对delete.php进行了ajax调用,如果会话变量设置与否则返回(不是).
处理这类事情的可接受方式是什么?
好.我第一次尝试这个时一定很疯狂.
我刚刚做了另一个测试,就像上面描述的那样,它完美无缺.
你试图使用会话变量是正确的.用户进行身份验证后,您应该将该信息存储在其会话中,以便每个后续页面视图都能看到该信息.session_start()
在访问$ _SESSION之前,请确保您正在调用这两个页面(blog.php和delete.php).还要确保已启用cookie - 如果没有,则应在查询字符串中传递一个附加参数,通常为PHPSESSID = < session_id()
>.