如何保护通过jquery调用的ajax方法?

时间:2013-07-18 22:59:52

标签: php jquery ajax security codeigniter

我在用户会话中有一个datagrid表(用户可视化管理员)。

要初始化datagrid,我需要使用包含表中应该包含的项的数组来设置url数据。

为此,我必须允许一个动作来显示这些数据(Codeigniter mvc)。

如何通过jQuery.ajax()方法保护我的操作仅允许我的应用用户访问?

例如,我已经登录到我的会话并使用datagrid访问一个视图,该视图使用此函数来获取数据并将其设置在表中:

  $('#content').WATable(
  {
    url: '/api/showusers'
  }).data('WATable');

谢谢!

1 个答案:

答案 0 :(得分:1)

app/config/constants.php

define('IS_AJAX', isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH'] === 'XMLHttpRequest');

然后在showusers()

public function showusers() {
    if(!IS_AJAX) { 
        show_404()
    }

    // continue with processing
}

我到处都是这个!如果您位于仅用户区域,则codeigniter将处理用户身份验证并确保仅通过ajax访问该操作。