在输入框中写入script脚本
达到攻击的效果
防范:
thinkphp方式 1 原生方法
指定的某一个或几个
在controller中获取值时,写入 htmlentities 函数, 把输入的文本转化成html实体,即 <> 转化成lt,gt
$data = input('post.');
'name' => htmlentities($data['name']),
thinkphp方式2
表单所有的值
在获取值是进行过滤 , 所有的值
input():
参数1 — 获取方式
参数2 — 默认值
参数3 — 过滤方式
demo
$data = input('post.',‘’,htmlentities);
'name' => $data['name'],
但是这样子把所有的都转化了, 文本编辑器本身转化了一次,这样子直接在视图输出时只反转化1次,所以视图中需要这样子写
<td> {$data.content | html_entity_decode} </td>
这样子文本编辑器中反转化1次,达到恢复成输入时的样子
thinkphp方式 3
在config.php中有一个全局过滤
'default_filter' => 'htmlentities'