我有一个使用codeigniter 2构建的web应用程序,我在其中启用了csrf保护。$config['csrf_protection'] = TRUE;我的朋友正在为同样的应用程序创建移动应用程序,因此他需要api来与web应用程序通信。我使用this tutorial在ci中创建了restful api。移动应用程序发出的所有请求都是POST请求。我面临的问题是,由于csrf保护已启用,而mobile发出的post请求没有任何“csrf令牌”,因此它正在抛出500 internal server error。不过,如果我禁用csrf保护,一切正常。正确的实施方法是什么?我要在移动设备上生成令牌吗?还是应该在CSRF保护中添加例外?如果是,那我怎么办?因为我不想禁用csrf保护。

最佳答案

net.tutsplus.com.
我希望这能解决你的问题。
如果实现正确,请在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;
}

09-25 23:29
查看更多