3

我正在编写后端以响应 ajax 查询。我正在使用 Codeigniter,我的控制器由一堆这些功能组成。

public function name_change()
{
    if($this->input->is_ajax_request())
    {
        //Grab the Inputs
        //Do something
        //Respond
    }
    else
    {

    }           
}

我唯一的问题是我应该如何处理不是 Ajax 请求的情况?没有理由让非 ajax 请求访问这些控制器功能。我能想到的选项是。

  • 发送无响应
  • 抛出一个错误页面(我假设我会使用状态码 200 或 403)
4

1 回答 1

5

黄金法则是永远不要相信用户输入

因此,无论数据是否来自 ajax 请求 - 或者只是发送到函数 - 您的控制器都应该假定它已被污染并进行全面验证、用户身份验证等。

因此,如果有人在没有 ajax 请求(有意或无意)的情况下最终到达该控制器并不重要 - 所以如果他们提交的数据是有效的,让它通过。

如果不是 - 只需向客户抛出一个有用的错误消息(特别是如果他们不小心到达那里)。

于 2012-09-14T17:15:30.323 回答