
实际项目部署到公网上,为防止恶意的操作,后端对数据已进行一系列的验证,有效的提高网站安全性。
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);评论
暂无评论
评论(0)