zblog php添加Token防止CSRF攻擊

CSRF全稱Cross Site Request Forgery,即跨站點請求偽造,通過偽裝成受信任用戶的請求來利用受信任的網站。如果使用的zblog應用有通過cmd.php處理的鏈接,或提交數據,應該同時提交一個token參數。另外,您的應用如果有副作用,也務必需要加入CSRF Token。

通過GET方法提交,如果您的目標地址是cmd.php,那麼您可以使用以下函數:

1 
 echo BuildSafeCmdURL('act=TagPst'); ?>

如果不是,那麼您也可以直接

1 
 echo BuildSafeURL('main.php'); ?>

通過POST方法提交,您可以在form表單內加入

1 
echo '. $zbp->GetCSRFToken() . '">';

如果需要兼容舊版Z-BlogPHP,可以使用

1 
 if (function_exists('CheckIsRefererValid')) {echo '. $zbp->GetCSRFToken() . '">';}?>

如果您想在您的應用內集成CSRF Token檢測(這將在未來成為上架應用中心的必需要求),以及在增強安全模式下進行來源檢測,您可以直接使用以下函數

1 
CheckIsRefererValid();

如果需要兼容舊版Z-BlogPHP,可以使用

1 
if (function_exists('CheckIsRefererValid')) CheckIsRefererValid();

參考:https://github.com/zblogcn/zblogphp/commit/acd2d343f857192403c82d4cfd76806eef2dd660

簡單舉例:

1 2 3 4 5 6 7 8 9 
if(isset($_POST['form'])){ 	if (function_exists('CheckIsRefererValid')) CheckIsRefererValid(); }   
if (function_exists('CheckIsRefererValid')) {echo '. $zbp->GetCSRFToken() . '">';}?>

zblog wiki地址:https://wiki.zblogcn.com/doku.php?id=zblogphp:development:features:1.5.2:security


想在手機閱讀更多PHP資訊?下載【香港矽谷】Android應用
分享到Facebook
技術平台: Nasthon Systems