51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1654|回复: 0
打印 上一主题 下一主题

php 过滤特殊字符及sql防注入代码

[复制链接]
  • TA的每日心情
    无聊
    11 小时前
  • 签到天数: 523 天

    连续签到: 5 天

    [LV.9]测试副司令

    跳转到指定楼层
    1#
    发表于 2018-12-27 16:25:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    1. <?php
    2. //方法一
    3. //过滤',",sql语名
    4. addslashes();
    5. //方法二,去除所有html标签
    6. strip_tags();
    7. //方法三过滤可能产生代码
    8. function php_sava($str)
    9. {
    10.     $farr = array(
    11.         "/s /",                                                                                         
    12.         "/<(/?)(script|i?frame|style|html|body|title|link|meta|?|%)([^>]*?)>/isU",  
    13.         "/(<[^>]*)on[a-zA-Z] s*=([^>]*>)/isU",                                    
    14.      
    15.    );
    16.    $tarr = array(
    17.         " ",
    18.         "<\1\2\3>",           //如果要直接清除不安全的标签,这里可以留空
    19.         "\1\2",
    20.    );
    21. $str = preg_replace( $farr,$tarr,$str);
    22.    return $str;
    23. }
    24. //php sql防注入代码
    25. class sqlin
    26. {
    27. //dowith_sql($value)
    28. function dowith_sql($str)
    29. {
    30.    $str = str_replace("and","",$str);
    31.    $str = str_replace("execute","",$str);
    32.    $str = str_replace("update","",$str);
    33.    $str = str_replace("count","",$str);
    34.    $str = str_replace("chr","",$str);
    35.    $str = str_replace("mid","",$str);
    36.    $str = str_replace("master","",$str);
    37.    $str = str_replace("truncate","",$str);
    38.    $str = str_replace("char","",$str);
    39.    $str = str_replace("declare","",$str);
    40.    $str = str_replace("select","",$str);
    41.    $str = str_replace("create","",$str);
    42.    $str = str_replace("delete","",$str);
    43.    $str = str_replace("insert","",$str);
    44.    $str = str_replace("'","",$str);
    45.    $str = str_replace(""","",$str);
    46.    $str = str_replace(" ","",$str);
    47.    $str = str_replace("or","",$str);
    48.    $str = str_replace("=","",$str);
    49.    $str = str_replace(" ","",$str);
    50.    //echo $str;
    51.    return $str;
    52. }
    53. //aticle()防SQL注入函数//php教程
    54. function sqlin()
    55. {
    56.    foreach ($_GET as $key=>$value)
    57.    {
    58.        $_GET[$key]=$this->dowith_sql($value);
    59.    }
    60.    foreach ($_POST as $key=>$value)
    61.    {
    62.        $_POST[$key]=$this->dowith_sql($value);
    63.    }
    64. }
    65. }
    66. $dbsql=new sqlin();
    67. ?>
    复制代码

    ===================================================================================
    使用方式:
    将以上代码复制新建一个sqlin.php的文件,然后包含在有GET或者POST数据接收的页面
    原理:
    将所有的SQL关键字替换为空

    本代码在留言本中不能使用,若要在留言本中使用请替换其中的

    1. .......
    2. $str = str_replace("and","",$str);

    3. $str = str_replace(" ","",$str);
    4. ...
    5. 的代码为:
    6. $str = str_replace("and","and",$str);
    7. $str = str_replace("execute","execute",$str);
    8. $str = str_replace("update","update",$str);
    9. $str = str_replace("count","count",$str);
    10. $str = str_replace("chr","chr",$str);
    11. $str = str_replace("mid","mid",$str);
    12. $str = str_replace("master","master",$str);
    13. $str = str_replace("truncate","truncate",$str);
    14. $str = str_replace("char","char",$str);
    15. $str = str_replace("declare","declare",$str);
    16. $str = str_replace("select","select",$str);
    17. $str = str_replace("create","create",$str);
    18. $str = str_replace("delete","delete",$str);
    19. $str = str_replace("insert","insert",$str);
    20. $str = str_replace("'","'",$str);
    21. $str = str_replace(""",""",$str);
    复制代码



    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-8 20:26 , Processed in 0.057015 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表