使用内置函数 htmlspecialchars()
// 获取表单数据
$data = input('post.');
// 遍历表单数据并过滤 XSS 攻击代码
foreach ($data as $key => $value) {
$data[$key] = htmlspecialchars($value);
}
// 将过滤后的数据入库
Model::create($data);
使用第三方库 HTMLPurifier
// 引入 HTMLPurifier 库
use HTMLPurifier\\HTMLPurifier;
// 创建 HTMLPurifier 对象
$purifier = new HTMLPurifier();
// 获取表单数据
$data = input('post.');
// 遍历表单数据并过滤 XSS 攻击代码
foreach ($data as $key => $value) {
$data[$key] = $purifier->purify($value);
}
// 将过滤后的数据入库
Model::create($data);
使用 ThinkPHP8 的内置过滤器
在 ThinkPHP8 中,可以使用内置过滤器来过滤表单数据。例如:
// 获取表单数据
$data = input('post.', '', 'trim,strip_tags');
// 将过滤后的数据入库
Model::create($data);
上面的代码将对表单数据应用 trim
和 strip_tags
过滤器,从而过滤掉空格和 HTML 标签。
注意:
- 这些方法只能过滤已知的 XSS 攻击代码,并不保证能防御所有类型的攻击。
- 建议使用多层防御措施,例如输入验证、代码审计和定期更新软件。