当前位置: 首页 > news >正文

专业建站网站北京seo公司公司

专业建站网站,北京seo公司公司,黄骅港赶海推荐个好地方,wordpress菜单教程点击星标,即时接收最新推文 本文选自《web安全攻防渗透测试实战指南(第2版)》 点击图片五折购书 SQL注入漏洞修复建议 常用的SQL注入漏洞的修复方法有两种。 1.过滤危险字符 多数CMS都采用过滤危险字符的方式,例如&…

点击星标,即时接收最新推文

82eff4e07b8de5dcddd63dd694d79fe2.png

本文选自《web安全攻防渗透测试实战指南(第2版)》

点击图片五折购书

b87472e56ffa55de99b139bbea892a18.gif

SQL注入漏洞修复建议

常用的SQL注入漏洞的修复方法有两种。

1.过滤危险字符

多数CMS都采用过滤危险字符的方式,例如,用正则表达式匹配union、sleep、load_file等关键字。如果匹配到,则退出程序。例如,80sec的防注入代码如下:

functionCheckSql($db_string,$querytype='select'){global$cfg_cookie_encode;$clean='';$error='';$old_pos= 0;$pos= -1;$log_file= DEDEINC.'/../data/'.md5($cfg_cookie_encode).'_safe.txt';$userIP= GetIP();$getUrl= GetCurUrl();//如果是普通查询语句,则直接过滤一些特殊语法if($querytype=='select'){$notallow1="[^0-9a-z@\._-]{1,}(union|sleep|benchmark|load_file|outfile)[^0-9a-z@\.-]{1,}"; //$notallow2 = "--|/\*";if(preg_match("/".$notallow1."/i",$db_string)){
fputs(fopen($log_file,'a+'),"$userIP||$getUrl||$db_string||SelectBreak\r\n");exit("<font size='5' color='red'>Safe Alert: Request Error step 1 !</font>");}}//完整的SQL检查while(TRUE){$pos=strpos($db_string,'\'',$pos+ 1);if($pos=== FALSE){break;}$clean.=substr($db_string,$old_pos,$pos-$old_pos);while(TRUE){$pos1=strpos($db_string,'\'',$pos+ 1);$pos2=strpos($db_string,'\\',$pos+ 1);if($pos1=== FALSE){break;}elseif($pos2== FALSE ||$pos2>$pos1){$pos=$pos1;break;}$pos=$pos2+ 1;}$clean.='$s$';$old_pos=$pos+ 1;}$clean.=substr($db_string,$old_pos);$clean= trim(strtolower(preg_replace(array('~\s+~s'),array(' '),$clean)));//老版本的MySQL不支持Union,常用的程序里也不使用Union,但是一些黑客使用它,所以要检查它if(strpos($clean,'union') !== FALSE && preg_match('~(^|[^a-z])union($|[^[a-z])~s',$clean) != 0){$fail= TRUE;$error="union detect";}//发布版本的程序可能不包括“--”“#”这样的注释,但是黑客经常使用它们elseif(strpos($clean,'/*') > 2 ||strpos($clean,'--') !== FALSE ||strpos($clean,'#') !== FALSE){$fail= TRUE;$error="comment detect";}//这些函数不会被使用,但是黑客会用它来操作文件elseif(strpos($clean,'sleep') !== FALSE && preg_match('~(^|[^a-z])sleep($|[^[a-z])~s',$clean) != 0){$fail= TRUE;$error="slown down detect";}elseif(strpos($clean,'benchmark') !== FALSE && preg_match('~(^|[^a-z])benchmark($|[^[a-z])~s',$clean) != 0){$fail= TRUE;$error="slown down detect";}elseif(strpos($clean,'load_file') !== FALSE && preg_match('~(^|[^a-z])load_file($|[^[a-z])~s',$clean) != 0){$fail= TRUE;$error="file fun detect";}elseif(strpos($clean,'into outfile') !== FALSE && preg_match('~(^|[^a-z])into\s+outfile($|[^[a-z])~s',$clean) != 0){$fail= TRUE;$error="file fun detect";}//老版本的MySQL不支持子查询,程序里可能也用得少,但是黑客可以使用它查询数据库敏感信息elseif(preg_match('~\([^)]*?select~s',$clean) != 0){$fail= TRUE;$error="sub select detect";}if(!empty($fail)){fputs(fopen($log_file,'a+'),"$userIP||$getUrl||$db_string||$error\r\n");exit("<font size='5' color='red'>Safe Alert: Request Error step 2!</font>");}else{return$db_string;}}

使用过滤的方式,可以在一定程度上防止出现SQL注入漏洞,但仍然存在被绕过的可能。

2.使用预编译语句

使用PDO预编译语句时需要注意的是,不要将变量直接拼接到PDO语句中,而是使用占位符进行数据库中数据的增加、删除、修改、查询。示例代码如下:

<?php
$pdo=new PDO('mysql:host=127.0.0.1;dbname=test','root','root');
$stmt=$pdo->prepare('select * from user where id=:id');
$stmt->bindParam(':id',$_GET['id']);
$stmt->execute();
$result=$stmt->fetchAll(PDO::FETCH_ASSOC);
var_dump($result);
?>

43f13424f9322d07b696d29c6cc0c50e.gif

MS08067安全实验室视频号已上线

欢迎各位同学关注转发~

—  实验室旗下直播培训课程  —

5b056c36b6b6b7c101aa54131dc1afe9.png

d45f7516249b5cf8b3ea116cf3d19ec0.jpeg

2bf3d02ff59ed89cfcd57874fe97ae85.jpegd94cdb04328094f25666f64db6ad9b51.png

aa5793a229bcf438d8b5e5cb8e42a2b2.jpeg

4b529fc0b09d8424c5a9c703b99de4ae.jpeg

3ab2323e8c1fa8a1be4941473375efc5.jpeg

729c5320fc81076d79e1559440086b99.jpeg

35a15a1ad891410a8158464783540897.jpeg


和20000+位同学加入MS08067一起学习

9531962698d113bdc37a3baa8f605308.gif

http://www.hrbkazy.com/news/55363.html

相关文章:

  • 网站怎么建设?百度搜索风云榜小说
  • 企划做网站我的百度账号登录
  • 免费手机网站建设站长之家是什么
  • 中国企业有哪些厦门谷歌seo公司有哪些
  • 银川做网站的公司谷歌搜索引擎下载
  • 网站搭建的意义湖南长沙seo
  • php做的网站优缺点百度推广有效果吗?
  • 建设一个淘宝客网站seo站长工具
  • 长沙网站推广¥做下拉去118cr百度度小店申请入口
  • wordpress手机号注册广州seo服务
  • 查询数据的网站怎么做的学seo网络推广
  • 摄影网站采用照片做宣传_版权费是多少?百度一下你就知道官网网页
  • 网站建设 云南百度云超级会员试用1天
  • 有手机网站怎样做微信小程序企业站seo
  • 宁夏建设厅网站首页发布软文平台
  • 网站如何换服务器怎么制作链接网页
  • 制作微网站公司怎么找拉新推广平台
  • 怎么查看网站提交百度的度免费个人网站空间
  • 新建网站如何让百度收录成都网站推广经理
  • 网站底部代码特效太原seo软件
  • 郑州做网站推网络推广是做什么工作
  • 晋安福州网站建设西安网站搭建
  • 外贸免费建设网站制作赣州seo公司
  • 广告设计怎么接单湖北seo公司
  • 网站 免费 认证百度搜索引擎优化的方法
  • 使用wget对网站做镜像网络互联网推广
  • 网站排名所以关键词下降百度推广手机客户端
  • 程序员前端和后端的区别百度seo指南
  • 政府网站开发需求文档seo营销工具
  • 上海建筑建材业网官网徐州seo培训