【asp源码栏目提醒】:网学会员asp源码为您提供ASP防注入代码 - 新闻出版参考,解决您在ASP防注入代码 - 新闻出版学习中工作中的难题,参考学习。
这几天着实为 sql 注入漏洞伤了神,网上的代码好多不是很深奥就是麻烦。
终于找到了万能防注代码,分享了,呵呵 。
操作简单上手,只要来个包含或放入conn.
asp 中,搞定。
末了,估计还有一些危险字符没有放全,帮我补全一下,谢谢了! 程序代码 一般的 http 请求不外乎 get 和 post所以只要我们在文件中过滤所有 post或者 get 请求中的参数信息中非法字符即可所以我们实现 http 请求信息过滤就可以判断是是否受到 sql 注入攻击。
iis 传 递 给
asp.dll 的 get 请 求 是 是 以 字 符 串 的 形 式 当 传 递 给Request.QueryString 数据后
asp 解析器会分析 Request.QueryString 的信息然后根据,分出各个数组内的数据所以 get 的拦截如下首先我们定义请求中不能包含如下字符 ’andexecinsertselectdeleteupdatecountchrmidmastertruncatechardeclare 各个字符用隔开,,然后我们判断的得到的 Request.QueryString 具体代码如下程序代码: dim sql_injdataSQL_injdata ’andexecinsertselectdeleteupdatecountchrmidmastertruncatechardeclare SQL_inj splitSQL_Injdata If Request.QueryString Then For Each SQL_Get In Request.QueryString For SQL_Data0 To UboundSQL_inj if instrRequest.QueryStringSQL_GetSql_InjSql_DATA0 Then Response.Write Response.end end if next Next End If 这样我们就实现了 get 请求的注入的拦截,但是我们还要过滤 post 请求,所以我们还得继续考虑 request.form这个也是以数组形式存在的, ,我们只需要再进一次循环判断即可。
代码如下程序代码: If Request.Form Then For Each Sql_Post In Request.Form For SQL_Data0 To UboundSQL_inj if instrRequest.FormSql_PostSql_InjSql_DATA0 Then Response.Write Response.end end if next next end if 已经实现了 get 和 post 请求的信息拦截,只需要在 conn.
asp 之类的打开数据库文件之前引用这个页面即可。