22.4.3 Web应用漏洞防护

2025-06-23 10:34:30 更新

(一)漏洞防护


漏洞防护

说明

1

SQL注入漏洞分析与防护

①对输入进行安全过滤。

对输入变量安全过滤与参数验证,禁止非预期参数传递给后台数据库

建立黑名单。拒绝己知恶意输入,如insert、update、delete、or、drop等

建立白名单。只接收已知正常输入,如表单只允许数字和大、小写字母等

②设置应用程序最小化权限

最小化设置数据库和Web程序执行权限,阻止SQL执行

建立数据库独立账号,使用最小权限执行数据库操作

③屏蔽应用程序错误提示信息。

SQL注入攻击属于尝试攻击技术,出错时默认会显示错误信息,包括ODBC类型、数据库引擎、数据库名称、表名称、变量、错误类型等诸多内容

④对开源Web程序做安全适应性改造。

避免攻击者无须猜测就能知道后台数据库类型及各种表结构

2

文件上传漏洞分析与防护

文件上传漏洞:由于Web应用程序代码未对用户提交文件严格分析和检查,攻击者可以执行上传文件,从而获取网站控制权限,如建立Web Shell

①将上传目录设置为不可执行,避免上传文件远程触发执行

②检查上传文件安全性,阻断恶意文件上传

3

跨站脚本攻击

跨站脚本攻击(Cross-Site Scripting Attacks):利用网站漏洞,在URL注入一些恶意脚本,欺骗用户。

典型攻击方式:

①HTML内容替换

http://mybank.com/ebanking?URL=http://levilsite.com/phishing/fakepage.html

②嵌入脚本内容

http://mybank.com/ebanking?page=1&client=<SCRIPT>evilcode...

③强制网页加载外部脚本

http://mybank.com/ebanking?page=1&response=evilsite.com%21evilcode.js&go=2

(二)SQL注入

http://duck/index.asp?category=food

(1)后台对应程序

v_cat=request("category")

sqlstr="SELECT * FROM product WHERE Category='" & v_cat & """

set rs=conn.execute(sqlstr)

(2)正常请求

SELECT * FROM product WHERE Category='food'

(3)恶意请求

http://duck/index.asp?category=food' or 1=1--

(4)数据库执行

SELECT * FROM product WHERE Category= 'food' or 1=1--'

查询得到product表所有信息