360通用php防护代码
是一款简单易用且高效的防注入、防跨站、防XSS等攻击的php代码库。
该代码库基于白名单机制进行防护,且可以定制白名单规则,轻松应对不同的业务场景。
将代码库的lib
目录复制到项目中即可。
require_once('lib/360_safe3.php');
$safe360 = new Safe360();
$name = $_POST['name']; // 获取表单提交的数据
$name = $safe360->getVar($name); // 对数据进行过滤
使用 getVar
方法可以对变量进行防注入过滤,过滤后的变量可以直接用于数据库查询等操作,避免了 SQL 注入等攻击。
$safe360->setCheckReferer(true); // 开启referer验证
使用 setCheckReferer
方法可以开启 referer 验证功能。
$html = '<script>alert(1)</script>';
$html = $safe360->getHtml($html);
echo $html; // 输出:<script>alert(1)</script>
使用 getHtml
方法可以对 HTML 字符串进行 XSS 过滤,将所有危险的标签转义为实体。
假设有一个登录页面,用户需要输入用户名和密码,然后提交表单进行登录操作。为了防止 SQL 注入攻击,需要过滤用户名和密码,代码如下:
require_once('lib/360_safe3.php');
$safe360 = new Safe360();
$username = $_POST['username'];
$username = $safe360->getVar($username);
$password = $_POST['password'];
$password = $safe360->getVar($password);
// 使用 $username 和 $password 进行数据库查询等操作
假设有一个留言板页面,用户可以填写留言内容,然后提交表单进行留言操作。为了防止 XSS 攻击,需要对留言内容进行过滤,代码如下:
require_once('lib/360_safe3.php');
$safe360 = new Safe360();
$message = $_POST['message'];
$message = $safe360->getHtml($message);
// 将 $message 存入数据库等