DMi*_*Min 4 ajax codeigniter-2
我使用CodeIgniter创建了一个webapp.有几个地方我在应用程序中使用ajax.
我想知道是否有一种方法可以阻止对ajax控制器的直接访问和查询,并且只允许处理来自页面的合法ajax请求.
谢谢.
是的,你可以毫无问题地做到这一点.CodeIgniter输入类有一个名为is_ajax_request()的方法.只需在控制器操作开始时检查这一点.例如:
function ajax_save() {
if ($this->input->is_ajax_request()) {
//continue on as per usual
} else {
show_error("No direct access allowed");
//or redirect to wherever you would like
}
}
Run Code Online (Sandbox Code Playgroud)
如果您有完全为ajax调用指定的控制器,则可以将该if语句放入function __construct()控制器的构造函数中.记得先调用parent :: __ constructor()!
编辑:对于"源自页面",您可能应该在ajax请求上进行身份验证+安全检查(可能通过会话,以便您不会访问数据库).因此,与您的webapp无关的流氓用户无论如何都不能手动发送ajax请求.希望这能回答你的问题.
| 归档时间: |
|
| 查看次数: |
1636 次 |
| 最近记录: |