Code前端首页关于Code前端联系我们

zblog php添加token防止CSRF攻击

terry 2年前 (2023-09-28) 阅读数 105 #Web安全

CSRF的全称是Cross Site Request Forgery,即跨站请求伪造,通过屏蔽可信用户的请求来利用可信网站。如果使用的 zblog 应用程序具有通过 cmd.php 处理的链接或发送数据,则应同时发送 token 参数。此外,如果您的应用程序有副作用,您还必须添加 CSRF 令牌。

使用GET方式发送,如果您的目标地址是cmd.php,可以使用以下功能:

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

如果不是,也可以直接

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

使用POST方式发送,您可以在Added表单内

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

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

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

如果您想将CSRF令牌检测集成到您的应用程序中(将来它将成为包含在App中的强制要求) Center),并在增强安全模式下进行可以直接使用以下检测源码功能

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();
}
 
<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>

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

热门