zoukankan      html  css  js  c++  java
  • TP5框架 《防sql注入、防xss攻击》

    版权声明:本文为博主原创文章,转载请注明原文出处! https://blog.csdn.net/qq_23375733/article/details/86606630
    如题:tp5怎么防sql注入 xss跨站脚本攻击呢?
    其实很简单,TP框架中有自带的,在 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','','orgFilter::safeHtml'); // 获取post变量 并用orgFilter类的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() 函数的反函数。
    ---------------------
    版权声明:本文为CSDN博主「涛々」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/qq_23375733/article/details/86606630

  • 相关阅读:
    Oracle 的日期类型
    简单的同步Socket程序服务端
    MMORPG中的相机跟随算法
    使用了UnityEditor中的API,打包时却不能打包UnityEditor的问题
    C# 中的关键字整理
    Unity3D C#中使用LINQ查询(与 SQL的区别)
    C# 值类型与引用类型的异同
    Unity3D NGUI事件监听的综合管理
    Unity3D 动画状态机简单控制核心代码
    Unity3D判断触摸方向
  • 原文地址:https://www.cnblogs.com/2019gdiceboy/p/11337182.html
Copyright © 2011-2022 走看看