TP5框架 《防sql注入、防xss攻击》

TP框架中有自带的防止xss(跨站脚步攻击)、sql注入,在 application/config.php 中有个配置选项:

框架默认没有设置任何过滤规则,你可以是配置文件中设置全局的过滤规则:

// 默认全局过滤方法 用逗号分隔多个
'default_filter' => 'htmlspecialchars,addslashes,strip_tags',

htmlspecialchars:防XSS攻击,尖括号等转义过滤

addslashes:防SQL注入,在每个双引号(")前添加反斜杠

strip_tags:剥去字符串中的 HTML 标签

把这些参数加上后,每次请求后端的接口中,框架就会对请求的变量进行自动过滤了。

也可以在获取变量的时候添加过滤方法,例如:

Request::instance()->get('name','','htmlspecialchars'); // 获取get变量 并用htmlspecialchars函数过滤

Request::instance()->param('username','','strip_tags'); // 获取param变量 并用strip_tags函数过滤

Request::instance()->post('name','','org\Filter::safeHtml'); // 获取post变量 并用org\Filter类的safeHtml方法过滤

可以支持传入多个过滤规则,例如:

Request::instance()->param('username','','strip_tags,strtolower'); // 获取param变量 并依次调用strip_tags、strtolower函数过滤

如果当前不需要进行任何过滤的话,可以使用(V5.0.3+版本) ps: 这个方法测试了下,好像没有起作用,你们也可以试下

Request::instance()->get('name','',false); // 获取get变量 并且不进行任何过滤 即使设置了全局过滤

如果有用到富文本编辑器或其他类似的提交html标签的变量,可以使用:

 htmlspecialchars() 函数把预定义的字符转换为 HTML 实体。

预定义的字符是:

& (和号)成为 &
" (双引号)成为 "
' (单引号)成为 '
< (小于)成为 <
> (大于)成为 >
htmlspecialchars_decode() 函数把预定义的 HTML 实体转换为字符。

会被解码的 HTML 实体是:

& 解码成 & (和号)
" 解码成 " (双引号)
' 解码成 ' (单引号)
< 解码成 < (小于)
> 解码成 > (大于)
htmlspecialchars_decode() 函数是 htmlspecialchars() 函数的反函数。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 概述 可以通过Request对象完成全局输入变量的检测、获取和安全过滤,支持包括$_GET、$_POST、$_RE...
    进击的PHPer阅读 450评论 0 0
  • 对网站发动XSS攻击的方式有很多种,仅仅使用php的一些内置过滤函数是对付不了的,即使你将filter_var,m...
    dreamer_lk阅读 7,778评论 0 6
  • 对网站发动XSS攻击的方式有很多种,仅仅使用php的一些内置过滤函数是对付不了的,即使你将filter_var,m...
    薛延祥阅读 477评论 0 0
  • 在 application/config.php 中有个配置选项框架默认没有设置任何过滤规则,你可以是配置文件中设...
    dongdog阅读 1,423评论 0 0
  • 控制器 新建控制器的定义 1/声明命名空间 app\模块\controller 2/控制器文件名首字母大写,采用驼...
    机器不能学习阅读 1,651评论 0 4

友情链接更多精彩内容