2011-09-30 26 views
0

我需要通过cron调用Kohana动作。我可以使用此代码仅限于服务器IP:Cron Kohana动作和防止CSRF

$allowedIps = array('127.0.0.1','::1'); 
if(in_array($_SERVER['REMOTE_ADDR'],$allowedIps)) 

我需要CSRF预防,如令牌吗?该服务器是一个Parallel的VPS。我不认为网络上会有任何用户浏览其他页面,使他们易受CSRF影响。

如果需要,我可以想到的防止这种情况的唯一方法是在Kohana外部创建一个不可访问的PHP脚本,由cron调用,生成一个令牌并保存到平面文件,然后将该令牌传递给Kohana外界包括使用该

http://forum.kohanaframework.org/discussion/1255/load-kohana-from-external-scriptapp/p1

回答

0

如果脚本将通过本地计算机(它是根据您的代码示例)被调用,然后你可以简化通过确保代码通过CLI称为。

if (Kohana::$is_cli) 
{ 
    // Run function 
} 

对于CSRF令牌,您不需要它们。 CSRF通过利用某人点击代表他们发起行动的链接进行工作。由于您无法通过浏览器访问cron控制器/操作(您应该无法),因此您无需担心。

0

我很确定你想为任何CLI相关的任务使用this module。从3.3版本开始,它可能会被纳入官方Kohana模块,因为它非常受欢迎和支持。