记录一次网站漏洞修复过程:第二轮处理(拦截SQL注入跨站脚本攻击XSS)

Posted 理论家

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记录一次网站漏洞修复过程:第二轮处理(拦截SQL注入跨站脚本攻击XSS)相关的知识,希望对你有一定的参考价值。

在程序编写的时候采用参数化的SQL语句可以有效的防止SQL注入,但是当程序一旦成型,再去修改大量的数据库执行语句并不是太现实,对网页表单上输入进行校验是易于实现的方法。在webForm 页面中开启校验属性:

ValidateRequest="true"
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Line.aspx.cs" Inherits="EcospSite.Line" ValidateRequest="true" %>

 但是有的时候也不太好使,只能自己编写代码检查用户的输入,如果直接在页面上添加校验,工作量比较大,并且需要很多测试工作,在global.asax 中 添加拦截方法还是比较合适的。

 void Application_BeginRequest(object sender, EventArgs e)
    {
        string path = this.Request.Path.ToLower();
       
        System.Collections.Generic.List<string> group_sql = new System.Collections.Generic.List<string>();
group_sql.AddRange(new string[] { "a.aspx", "b.aspx", "c.aspx", "d.aspx","e.aspx","f.aspx" });
foreach (string item in group_sql) { if (path.EndsWith(item)) { SQLCheck.CheckQueryParamRequest(this.Request, this.Response); // 检查URL中是否有非法语句 SQLCheck.CheckFormParamRequest(this.Request, this.Response); // 检查表单中是否有非法语句 break; } } }

如果输入没有校验通过,程序丢出异常,跳转到异常处理页面

 对于处理 跨站脚本攻击XSS也可以采用同样的处理方式,不过校验的格式可能有所不同,一个是防止执行恶意SQL语句,一个是防止执行恶意脚本。另外在关键页面显示用户输入的地方,最好对内容进行转义处理,保证恶意嵌入的html、SCRITP无法执行。

 





以上是关于记录一次网站漏洞修复过程:第二轮处理(拦截SQL注入跨站脚本攻击XSS)的主要内容,如果未能解决你的问题,请参考以下文章

网站代码sql注入攻击漏洞修复加固防护措施

记一次网站渗透的漏洞挖掘记录

网站有漏洞怎么修复啊,我的网站被挂马了,怎么办?

关于ECSHOP中sql注入漏洞修复

关于ECSHOP中sql注入漏洞修复

discuzX3.2 X3.4网站漏洞修复 SQL注入与请求伪造***利用与修复