方法如下:
漏洞修复。(输入过滤,输出转义)
1、在连接数据库时,在接收参数后进行转义,$id = mysql_real_escape_string($id);
2、在网页源码中在接收参数后可用htmlspecialchars(变量名);转义特别的字符为HTML实体。(xss)
3、$result =mysqi_query($sql);不打印错误描述,即使存在注入,也不好判断。$sql为查询语句
4、if(is_numeric($id)){}else{} 判断提交的是否是数字
5、使用unset($_session[‘token’]);,销毁变量,刷新session会话,防暴力破解。
6、使用过滤(黑名单):str_replace(“%”,””,$_POST[‘username’]); 替换’ “ = 等特殊符号。
7、正则表达式:var xss=str.replace(/\=/g,’’); 使用=+等特殊字符,前要用转义符号\,g代表字符串中全部替换。
8、If Stristr(“hello word”,”WORD”); 在前一个字符串中查找后面的字符串,不区分大小写,stristr 中的i,去掉就区分大小写。
例:if(strist($_GET[‘message’]),’http’)==false{}else{}
9、文件上传:
a、限制上传文件大小、格式、后缀名等。
b、对上传文件不返回路径,并且有规则的重命名。
c、对上传文件所在目录进行权限限制(禁止执行)。
10、修复xxe
删除语句中LIBXML_NOENT 意为关闭外部实体解析
例:$data = @simplexml_load_string($xml,'SimpleXMLElement',LIBXML_NOENT); 有红函数里面改。
以上修复是基于网页源代码修复,如有不当之处请多多指教!!!
本人在网络、运维、网页渗透、linux、windows软硬件,均有建树,后期会不断和大家分享学习资料、选择方向和方法技巧,并且也会在不断地学习中,将积累的经验分享出来,敬请期待!!!!