数据库系统的交互页面控制装置的制作方法

文档序号:6582060阅读:157来源:国知局
专利名称:数据库系统的交互页面控制装置的制作方法
技术领域
本发明涉及数据库系统的安全技术,尤其涉及数据库系统的交互页面控制装置。
背景技术
随着计算机技术的发展,攻击数据库系统的手段也越来越高明。有时,攻击者会仔 细分析数据库系统设计中的一些小细节,从中发现系统存在的漏洞并发起攻击。目前,经常被利用的漏洞包括如下的几种1)包含有详细错误信息的错误页面开发人员关注于实现功能,而攻击者关注于错误条件。通过向数据库系统输入各 种非预期信息,攻击者尝试引发某些类型的错误行为,往往这些错误行为的报错页面中会 包含很多的详细错误信息,由此攻击者获得更多关于数据库系统的内部工作信息,并最终 帮助他们发现安全漏洞。例如,ASP. NET每次出现未处理的错误时,就会生成显示详细错误信息的页面。页 面包括非常敏感的数据。尽管这些信息在开发过程中非常有用,但开发人员绝对不能,也不 希望在最终产品中把这些信息暴露给客户端。2)脚本注入和脚本攻击本质上所有的脚本注入和跨站点脚本攻击都是由输入验证的缺陷导致。假若验证 所有来自非信任源的数据,则所有的这些攻击都是可预防的。

发明内容
针对上述的问题,本发明提出一种数据库系统的交互页面控制装置。该数据库系统的交互页面控制装置包括交互页面产生模块和后台处理模块,其 中交互页面产生模块产生数据库系统的交互页面,交互页面包括输入接收页面和输 出响应页面,输入接收页面提供输入接口接收输入数据,输入数据经后台处理模块进行安 全验证和处理后提供给数据库系统进行处理,输出响应页面根据后台处理模块或者数据库 系统处理的结果而产生;后台处理模块包括格式验证模块、代码替换模块、代码编码模块和错误页面产生 模块,其中,格式验证模块验证输入数据的格式,对于符合格式规定的输入数据产生通过信 号,对于不符合格式规定的输入数据产生拒绝信号并提供给错误页面产生模块;代码替换模块扫描输入数据,将规定的代码替换成替换符;代码编码模块连接到代码替换模块,对经过代码替换模块处理的数据数据进行代 码编码,将能够执行代码编码后输入数据提供给数据库系统,将不能执行代码编码的数据 数据提供给错误页面产生模块;错误页面产生模块连接到格式验证模块和代码编码模块,产生统一的错误页面提供给交互页面产生模块,作为输出响应页面。在一个实施例中,代码替换模块替换的规定的代码包括“ {”、“} ”、“ [”、“] ”和“&”,替换符为空格。采用本发明的技术方案,提供统一的错误页面,避免了在错误页面中透露过多的 敏感信息,同时,通过格式验证、代码替换和代码编码,有效防止了脚本注入和脚本攻击带 来的威胁。


图1揭示了根据本发明的数据库系统的交互页面控制装置的结构图。
具体实施例方式本发明提出了一种数据库系统的交互页面控制装置,包括交互页面产生模块10 和后台处理模块20,其中交互页面产生模块10产生数据库系统的交互页面,交互页面包括输入接收页面 和输出响应页面,输入接收页面提供输入接口接收输入数据,输入数据经后台处理模块20 进行安全验证和处理后提供给数据库系统进行处理,输出响应页面根据后台处理模块或者 数据库系统处理的结果而产生。比如,正常处理的输入数据会由数据库处理系统处理之后 得到处理结果,该处理的结果作为输出响应页面,而被拒绝的输入数据则由后台处理模块 20中的错误页面产生模块204产生错误页面作为输出响应页面。后台处理模块20包括格式验证模块201、代码替换模块202、代码编码模块203和 错误页面产生模块204。格式验证模块201验证输入数据的格式,对于符合格式规定的输入数据产生通过 信号,对于不符合格式规定的输入数据产生拒绝信号并提供给错误页面产生模块204。在一 个实施例中,格式验证模块201实现如下通过正则表达式和RegularExpression Validator控件实现<asp:Label ID="Label4" runat="server"x/asp:Label> <asp:TextBox ID=、、TextBox3" runat="server"x/asp:TextBox><asp: RegularExpressionVaIidatorID="RegularExpressionValidatorl"runat="server" ControlToVaIidate=iTextBoxS"ErrorMessage=" 请输入 正确的 数据" VaIidationExpr的sion=、、\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularEx. pressionValidator><asp:Label ID=、、Labell" runat="server"x/asp:Label> <asp:TextBox ID=、、TextBox5" runat="server"x/asp:TextBox> <asp:RegularExpressionVaIidator ID="RegularExpressionValidator2runat="server" ControlToValidate="TextBox5"ErrorMessage="长度不 正确"ValidationExpression="(\(\d{3}\)|\d{3}-) \d{8}"x/asp:RegularExpressionValidator>当RegularExpression Validator控件验证用户的输入不符合正则表达式规定, 就会阻止用户的输入,并通过ErrorMessage告知用户错误信息。代码替换模块202扫描输入数据,将规定的代码替换成替换符。收到来自非信任 源的不恰当输入时,并不一定要拒绝该输入。在这种情况下,筛选输入是最好的办法。例如, 可以借此筛选出诸如“ {”、“}”、“ [”、“] ”和“&”这样的一些特殊字符。要实现筛选输入功 能,可以使用Mring对象的R印Iace方法。例如在一个实施例中,代码替换模块202实现如下string a = TextBox4.Text;a = a.Replace("{",""); a = a.Replace(">","");myGStudent.std_hobby = a;上面的代码淘汰了用户输入中的“{”和“}”字符,改用空格代替。在替他的实施 例中,可以使用空格代替“ {”、“} ”、“ [ ”、“ ],,或者“&,,。代码编码模块203连接到代码替换模块202,对经过代码替换模块202处理的数 据数据进行代码编码,将能够执行代码编码后输入数据提供给数据库系统,将不能执行代 码编码的数据数据提供给错误页面产生模块204。有时,经过格式验证模块201和代码替 换模块202处理的输入数据可能也包含非法的字符,因为验证不是对所有的用户输入都是 可行的。例如,在一个搜索字段中,用户可以键入所要查找的任何内容,包括脚本标记(例 如〈script 、脚本命令(例如alert)或HTML标记(例如<Β 。在这些情况之下就不能 总是执行验证模式。编码(encoding)是控制来自用户输入的有害数据的有效方法,因为编 码可以将有害字符翻译成它们的显示对应物。krver对象的HtmlEncode方法可以用来编 码有害字符。编码形成标记的字符可以防止执行这些标记,在一个实施例中,代码编码模块5203实现如下myGStudent. std_hobby = Server. HtmlEncode(TextBox4. Text);现在任何输入TextBoM的字符都不会被执行,而是被处理为一个不能被执行的字符字串。错误页面产生模块204连接到格式验证模块201和代码编码模块203,产生统一的 错误页面提供给交互页面产生模块10,作为输出响应页面。使用统一的错误页面替代原来 详细的错误信息列表,可以避免通过错误页面暴露系统内部设计的缺陷。在一个实施例中, 统一的错误页面实现如下创建Global, asax文件,在Application_Error ()函数中添加需要的代码,如下void Application—Error(object sender, EventArgs e) {Exception objErr = Server.GetLastError().GetBaseException(); Server. CIearErrorO;Applicationrerror"]=“页面中有错误,请与管理员联系"; Response. Redirect("~/error.aspx");}代码Response. Redirect (〃 /error, aspx")指定了系统出现未处理的错误时 将会跳转到指定页面“error, aspx”。创建自定义错误页“error, aspx”,在页面中显示错误信息。protected void Page—Load (object sender, EventArgs e) {La bell.Text = Application["error"]-ToString();>实现过程并不复杂。现在当系统出现未处理的错误时,就会调用指定页“error, aspx"显示给用户。这样系统就能避免遭到恶意错误信息的攻击。采用本发明的技术方案,提供统一的错误页面,避免了在错误页面中透露过多的 敏感信息,同时,通过格式验证、代码替换和代码编码,有效防止了脚本注入和脚本攻击带 来的威胁。
权利要求
1.一种数据库系统的交互页面控制装置,其特征在于,包括交互页面产生模块和后台 处理模块,其中交互页面产生模块产生数据库系统的交互页面,所述交互页面包括输入接收页面和输 出响应页面,所述输入接收页面提供输入接口接收输入数据,所述输入数据经后台处理模 块进行安全验证和处理后提供给数据库系统进行处理,所述输出响应页面根据后台处理模 块或者数据库系统处理的结果而产生;后台处理模块包括格式验证模块、代码替换模块、代码编码模块和错误页面产生模块, 其中,格式验证模块验证所述输入数据的格式,对于符合格式规定的输入数据产生通过信 号,对于不符合格式规定的输入数据产生拒绝信号并提供给错误页面产生模块; 代码替换模块扫描所述输入数据,将规定的代码替换成替换符; 代码编码模块连接到代码替换模块,对经过代码替换模块处理的数据数据进行代码编 码,将能够执行代码编码后输入数据提供给所述数据库系统,将不能执行代码编码的数据 数据提供给错误页面产生模块;错误页面产生模块连接到格式验证模块和代码编码模块,产生统一的错误页面提供给 交互页面产生模块,作为输出响应页面。
2.如权利要求1所述的数据库系统的交互页面控制装置,其特征在于,所述代码替换模块替换的规定的代码包括“ {”、“} ”、“ [”、“] ”和“&”,替换符为空格。
全文摘要
本发明提出一种数据库系统的交互页面控制装置,包括交互页面产生模块和后台处理模块,其中交互页面产生模块产生数据库系统的交互页面,交互页面包括输入接收页面和输出响应页面;后台处理模块包括格式验证模块、代码替换模块、代码编码模块和错误页面产生模块,其中,格式验证模块验证输入数据的格式,对于不符合格式规定的输入数据产生拒绝信号并提供给错误页面产生模块;代码替换模块扫描输入数据,将规定的代码替换成替换符;代码编码模块连接到代码替换模块,对经过代码替换模块处理的数据数据进行代码编码,将不能执行代码编码的数据数据提供给错误页面产生模块;错误页面产生模块产生统一的错误页面作为输出响应页面。
文档编号G06F3/048GK102054133SQ200910197758
公开日2011年5月11日 申请日期2009年10月27日 优先权日2009年10月27日
发明者沙洁, 钱立 申请人:上海杉达学院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1