PHP防止sql注入,XSS攻击简单方法

实际项目部署到公网上,为防止恶意的操作,后端对数据已进行一系列的验证,有效的提高网站安全性。

PHP防止sql注入,XSS攻击简单方法

实际项目部署到公网上,为防止恶意的操作,后端对数据已进行一系列的验证,有效的提高网站安全性。

sql注入,xss攻击常见的攻击防止,本文章介绍防止sql注入,xss攻击,废话不多说,直接上代码

(代码尽供参考,各有各的想法)

/**
 * [actionClean xss攻击]
 * @Author   My
 * @DateTime 2018-09-19T10:47:15+0800
 * @param    [type]                   $str [description]
 * @return   [type]                        [description]
 */
public function clearXSS($str){
    $str = trim($str);
    $str = strip_tags($str);//剥去字符串中的 HTML、XML 以及 PHP 的标签。
    $str = stripslashes($str);//由 addslashes() 函数添加的反斜杠。
    $str = addslashes($str);//在预定义字符之前添加反斜杠的字符串。
    $str = rawurldecode($str);//对已编码的 URL 字符串进行解码
    $str = quotemeta($str);//在预定义字符前添加反斜杠:
    $str = htmlspecialchars($str);//预定义的字符 "<" (小于)和 ">" (大于)转换为 HTML 实体:
    
    return $str;
}
/**
 * [clearFilterWords 清除sql关键字 特殊字符等]
 * @Author   My
 * @DateTime 2018-09-19T12:15:37+0800
 * @param    [type]                   $str [description]
 * @return   [type]                        [description]
 */
public function clearFilterWords($str){
    $farr = array(
      "/<(\\/?)(script|i?frame|style|html|body|title|link|meta|object|\\?|\\%)([^>]*?)>/isU",
      "/(<[^>]*)on[a-zA-Z]+\s*=([^>]*>)/isU",
      "/select|insert|update|delete|drop|\'|\/\*|\*|\+|\-|\"|\.\.\/|\.\/|union|into|load_file|outfile|dump/is",
      "/\/|\~|\!|\@|\#|\\$|\%|\^|\&|\*|\(|\)|\_|\+|\{|\}|\:|\<|\>|\?|\[|\]|\,|\.|\/|\;|\'|\`|\-|\=|\\\|\|/",
      "/\s/",
    );
    $str = preg_replace($farr, '', $str);//去除特殊字符
    $str = $this->clearXSS($str);
    return $str;
}

调用方法:

/**
 * [checkXSSSqlInject 防止注入 xss攻击调用方法]
 * @Author   My
 * @DateTime 2018-09-19T12:15:05+0800
 * @param    [type]                   $params [description]
 * @return   [type]                           [description]
 */
public function checkXSSSqlInject(&$params){
    if(is_array($params)){
      foreach($params as $k => $v){
        $params[$k] = $this->clearFilterWords($v);
      }
    }else{
      $params = $this->clearFilterWords($params);
    }
    return $params;
}
//调用
$this->checkXSSSqlInject($params);
上一篇:《MongoDB权威指南》之MongoDB初探 下一篇:Win系统下配置PHP链接Oracle

评论

评论(0)

暂无评论