2011-09-30 54 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模塊,因爲它非常受歡迎和支持。