78模板网分享cms建站教程,提供网站模板、网站插件、办公模板等模板教程免费学习,找模板教程就上78模板网!

zblog php添加Token防止CSRF攻击

CSRF全称Cross Site Request Forgery,即跨站点请求伪造,通过伪装成受信任用户的请求来利用受信任的网站。如果使用的zblog应用有通过cmd.php处理的链接,或提交数据,应该同时提交一个token参数。另外,您的应用如果有副作用,也务必需要加入CSRF Token。

通过GET方法提交,如果您的目标地址是cmd.php,那么您可以使用以下函数:

<?php echo BuildSafeCmdURL('act=TagPst'); ?>

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

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

通过POST方法提交,您可以在form表单内加入

echo '<input type="hidden" name="csrfToken" value="' . $zbp->GetCSRFToken() . '">';

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

<?php if (function_exists('CheckIsRefererValid')) {echo '<input type="hidden" name="csrfToken" value="' . $zbp->GetCSRFToken() . '">';}?>

如果您想在您的应用内集成CSRF Token检测(这将在未来成为上架应用中心的必需要求),以及在增强安全模式下进行来源检测,您可以直接使用以下函数

CheckIsRefererValid();

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

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

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

简单举例:

if(isset($_POST['form'])){

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

}

<form>

<input type="text" name="form" value=""/>

<?php if (function_exists('CheckIsRefererValid')) {echo '<input type="hidden" name="csrfToken" value="' . $zbp->GetCSRFToken() . '">';}?>

<input name="" type="Submit" class="button" value="保存"/>

</form>

本文链接:http://78moban.cn/post/8916.html

版权声明:站内所有文章皆来自网络转载,只供模板演示使用,并无任何其它意义!

联系技术
文章删除 友链合作 技术交流群
1050177837
公众号
公众号
公众号
返回顶部