我正在用PHP编写一个包含布尔值的网站$_SESSION['logged_in']
.true
当数据库中存在用户名和密码匹配时,将其设置为.
我对会话很陌生,只是想知道未注册(或者说,已注册)用户true
是否有可能通过设置此布尔值来绕过登录过程,这可能与cookie一样.
我理解用户必须从客户端操作服务器端变量,但我的问题是这是多么容易,用户将如何完成这样的任务,是否有任何已知的漏洞,什么是避免这种攻击的最佳做法/预防措施?
我读到检查ajax请求的X-Requested-With标头是确保请求不是来自外部的好方法.在服务器端,如何检查此标头?什么是这个标题的正确反应方式是丢失或错误(重定向,抛出异常,否则)?
我有一个具有以下功能的网站:用户访问www.mysite.com/page.php
. 该页面上的 Javascript 调用 ajax APIwww.mysite.com/api.php
并在同一页面上显示结果www.mysite.com/page.php
我害怕有人开始在自己的软件上使用我的 api.php,因为使用会www.mysite.com/api.php
花费我一些钱。因此,我希望只有访问过该页面的www.mysite.com/page.php
用户才能从www.mysite.com/api.php
. 用户将无法登录我的网站。
这样做的正确方法是什么?我想我可以在用户访问page.php时启动一个会话,然后以某种方式首先检查api.php是否存在具有有效会话 ID 的会话?