Web漏洞检测及修复

本文详细介绍了Web漏洞的检测与修复,包括注入漏洞(如SQL、XSS、命令、HTTP响应头注入)、信息泄露漏洞(如PHPInfo、测试页面、备份文件、版本管理工具文件泄露)、请求伪造漏洞(CSRF、JSON-hijacking)以及权限控制漏洞(文件上传、crossdomain.xml配置不当、Flash标签配置不当、并发漏洞、Cookie安全性、Frame-proxy攻击)。提供了检测方法和修复建议,旨在提高Web应用的安全性。
摘要由CSDN通过智能技术生成

Web漏洞检测及修复


Web漏洞是指以各种语言(PHP、JSP、C++等)开发的CGI/Web Service中存在的安全漏洞。
下面是漏洞的定义,检测方法以及修复方案。

1. 注入漏洞

1.1 SQL注入漏洞

名称: SQL注入漏洞(SQL Injection)

**描述:**Web程序代码中对于用户提交的参数未做过滤就直接放到SQL语句中执行,导致参数中的特殊字符打破了SQL语句原有逻辑,黑客可以利用该漏洞执行任意SQL语句。

**检测方法:**通过修改参数来判断是否存在漏洞。

修复方案:

  1. 针对ASP.NET的防XSS库,Microsoft有提供统一的方法,具体可以参见如下链接:http://www.cnblogs.com/hcmfys/archive/2008/07/11/1240809.html
  2. 针对其它语言如下细分:

在代码级对带入SQL语句中的外部参数进行转义或过滤:
(1)对于整数,判断变量是否符合[0-9]的值;其他限定值,也可以进行合法性校验
(2)对于字符串,对SQL语句特殊字符进行转义(单引号转成两个单引号,双引号转成两个双引号)。关于这点,PHP有类似的转义函数mysql_escape_string和mysql_real_escape_string。
建议:
(1)使用腾讯CMEM存储方案;
(2)对与数据库进行交互的用户请求数据,要先做过滤,防止SQL注入。

1.2 XSS漏洞

**名称:**XSS注入漏洞(Cross-site Scripting)

**描述:**Web程序代码中把用户提交的参数未做过滤就直接输出到页面,参数中的特殊字符打破了HTML页面的原有逻辑,黑客可以利用该漏洞执行恶意HTML/JS代码、构造蠕虫传播、篡改页面实施钓鱼攻击等。

**检测方法:**通过修改参数来判断是否存在漏洞。
比如用户输入内容:’a”的时候,合法的显示是: ’a” ,合法的显示的源码是:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0jd1Zomg-1689818018820)(D:\BaiduSyncdisk\工作\assets\Xss_1.jpg)]

而存在漏洞的页面显示却是:’a”

源码是:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UDMkodHn-1689818018820)(D:\BaiduSyncdisk\工作\assets\Xss_2.jpg)]

修复方案:

  1. 开发者应该严格按照openid和openkey的校验规则判断openid和openkey是否合法,且判断其它参数的合法性,不合法不返回任何内容。

  2. 严格限制URL参数输入值的格式,不能包含不必要的特殊字符( %0d、%0a、%0D 、%0A 等)。

  3. 针对ASP.NET的防XSS库,Microsoft有提供统一的库,具体可以参见如下链接

微软官网:http://msdn.microsoft.com/en-us/library/aa973813.aspx

  1. 具体的js方法如下:

(1)对于用户输入的参数值展现在HTML正文中或者属性值中的情况,例如:
展现在html正文中:Un-trusted input
展现在属性值中:
此时需要将红色的不可信内容中做如下的转码(即将< > ‘ “ ` 转成html实体):

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9inExzjh-1689818018821)(D:\BaiduSyncdisk\工作\assets\sec_hole_10.png)]

(2)对于用户输入落在

需要将红色的不可信内容中做如下的转码: [a-zA-Z0-9.-_,]以及ASC值大于0x80之外的所有字符转化为\x**这种形式,例如:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值