我正在编写后端以响应ajax查询。我使用的是Codeigniter,我的控制器是由这些函数组成的。
public function name_change()
{
if($this->input->is_ajax_request())
{
//Grab the Inputs
//Do something
//Respond
}
else
{
}
}
我唯一的问题是,如果不是Ajax请求,我应该如何处理?没有理由让非ajax请求访问这些控制器函数。我能想到的选择是。
- 不发送响应
- 弹出一个错误页面(我想我会使用状态代码200或403)
黄金法则是永远不要信任用户输入
因此,无论数据是来自ajax请求,还是刚刚发送到函数,您的控制器都应该假设它受到了污染,并进行完全验证、用户身份验证等。
因此,如果有人最终没有收到ajax请求(无论是有意还是无意),这并不重要——所以如果他们提交的数据是有效的,就让它通过。
如果没有,只需向客户抛出一条有用的错误消息(尤其是当他们意外到达那里时)。