Php 使用CodeIgniter CSRF保护为web应用程序创建API

Php 使用CodeIgniter CSRF保护为web应用程序创建API,php,api,codeigniter,restful-authentication,Php,Api,Codeigniter,Restful Authentication,我有一个使用CodeIgniter 2构建的web应用程序,我在其中启用了CSRF保护$config['csrf_protection']=TRUE我的朋友正在为同样的应用程序创建移动应用程序,所以他需要API与Web应用程序进行通信。我已经使用在CI中创建了RESTful API。移动应用发出的所有请求都是POSTrequest。我面临的问题是,由于启用了CSRF保护,并且从移动设备发出的POST请求没有携带任何“CSRF令牌”,因此它会抛出500内部服务器错误。但是,如果禁用CSRF保护,则

我有一个使用CodeIgniter 2构建的web应用程序,我在其中启用了CSRF保护<代码>$config['csrf_protection']=TRUE我的朋友正在为同样的应用程序创建移动应用程序,所以他需要API与Web应用程序进行通信。我已经使用在CI中创建了RESTful API。移动应用发出的所有请求都是
POST
request。我面临的问题是,由于启用了CSRF保护,并且从移动设备发出的POST请求没有携带任何“CSRF令牌”,因此它会抛出
500内部服务器错误
。但是,如果禁用CSRF保护,则一切正常。正确的实施方法是什么?我应该在手机上生成代币吗?或者我应该为CSRF保护添加例外情况?如果是的话,我该怎么做?因为我不想禁用CSRF保护

我希望这能解决你的问题。 如果实现正确,请在config.php中编写此代码

if (isset($_SERVER["REQUEST_URI"])) 
{
    if(stripos($_SERVER["REQUEST_URI"],'/mypage') === FALSE)
    {
        $config['csrf_protection'] = TRUE;
    }
    else
    {
        $config['csrf_protection'] = FALSE;
    } 
} 
else 
{
    $config['csrf_protection'] = TRUE;
} 

谢谢,但我需要帮助创建异常以禁用某些请求的CSRF,生成CSRF不是问题。请仔细阅读问题。确保您的API文件和web前端之间的通信不使用相同的API。它会暴露这些页面,进行CSRF攻击。