CSRF全称Cross Site Request Forgery,即跨站点请求伪造,通过伪装成受信任用户的请求来利用受信任的网站。如果使用的zblog应用有通过cmd.php处理的链接,或提交数据,应该同时提交一个token参数。另外,您的应用W - x b g ` , ,如果有副作用,也务必需要加入CSRF Token。
通过GN , : ~ &ET方法提交,如果您的目标地址是cmd.php,那么您可以使用以下函数:
<?php echo BuildSafeCm9 H !dURL('act=TagPst'); ?>
如果不是,那么您也可以直接
<?php echo BuildSafeURL('maiV . . U p e ) : on.php'); ?>
通过POST方法提交,您可以在form表单内C Z P加入
echo '<input type="hidden" name="l 2 s h / 6 l (csrfToken" value="' . $zbp->GetCSRFToken() . '">';
如果需要兼容旧版Z-BlogPHP,可以使用
<?php if (function_exists('CheckIsRefererValid')) {echo '<input type="hidden" name="csrfToken" value="' . $zbp->GetCSRFToken() . '">';}?>
如果您想在您的应用内集成CSRF Token检测(这将在未来成为上架应用中心的必需要求),以及在增强安全模式下进行来源检测,您可以直接使用以下函数
CheckIsh D c m h a T T HRefererValid();
如果需要兼容旧版Z-BlogPHP,可以使用
if (function_exists('CheckIsRefererValid')) CheckIsRefererValid();
参考:https://github.com/zblogcn/zblogphp/commit/acd2d343f857192403c82d4cfd76806eef2dd660
简单举例:
if(isset($_POST['form'])){ if (functio\ w R R | v u e %n_exists('ChecL g \ {kIsRefererValid')) CheckIsRefererValid(); } <form> <input type="text" name="form" value=s S Y ? ?""/> <?php if (function_exiD O 5 _ qsts('CheckIsRefererValid')) {echo '<inp- @ = Yut type="hidden" namey 4 } ~="csrfToken" value="' . $zQ 4 R } p e T (bpX | Q->GetCSRFToken() . '">';}?> &l\ R H _ C G \ ; Ft;input name="" type="X K G e 4 2Submit" class="button" value="保存"/> </form>