asp中一段防SQL注入的通用脚本
'屏蔽通过地址栏攻击
url=Request.ServerVariables("QUERY_STRING")
if instr(url,";")>=1 then
url=Replace(url,";",";") : Response.Redirect("?" & url)
end if
'屏蔽通过表单攻击
for each item in request.form
stritem=lcase(server.HTMLEncode(Request.form(item)))
if instr(stritem,"select ")>=1 or instr(stritem,"insert ")>=1 or instr(stritem,"update ")>=1 or instr(stritem,"delete ")>=1 or instr(stritem,"exec ")>=1 or instr(stritem,"declare ")>=1 then
response.write ("对不起,请不要输入非法字符!")
response.end
end if
next
相关推荐
-
asp.net 预防SQL注入攻击之我见
1. SQL注入攻击的本质:让客户端传递过去的字符串变成SQL语句,而且能够被执行. 2. 每个程序员都必须肩负起防止SQL注入攻击的责任. 说起防止SQL注入攻击,感觉很郁闷,这么多年了大家一直在讨论,也一直在争论,可是到了现在似乎还是没有定论.当不知道注入原理的时候会觉得很神奇,怎么就被注入了呢?会觉得很难预防.但是当知道了注入原理之后预防不就是很简单的事情了吗? 第一次听说SQL注入攻击的时候还是在2004年(好像得知的比较晚),那是还是在写asp呢.在一次写代码的时候,有同事问我,你的这
-
asp.net利用HttpModule实现防sql注入
1.新建一个类,实现IHttpModule接口 代码 复制代码 代码如下: public class SqlHttpModule : IHttpModule { public void Dispose() { } public void Init(HttpApplication context) { context.AcquireRequestState += new EventHandler(context_AcquireRequestState); } } 在实现接口的Init方法时,我们选
-
防SQL注入 生成参数化的通用分页查询语句
使用这种通用的存储过程进行分页查询,想要防SQL注入,只能对输入的参数进行过滤,例如将一个单引号"'"转换成两个单引号"''",但这种做法是不安全的,厉害的黑客可以通过编码的方式绕过单引号的过滤,要想有效防SQL注入,只有参数化查询才是最终的解决方案.但问题就出在这种通用分页存储过程是在存储过程内部进行SQL语句拼接,根本无法修改为参数化的查询语句,因此这种通用分页存储过程是不可取的.但是如果不用通用的分页存储过程,则意味着必须为每个具体的分页查询写一个分页存储过程
-
在Global.asax文件里实现通用防SQL注入漏洞程序(适应于post/get请求)
首先,创建一个SQLInjectionHelper类完成恶意代码的检查 代码如下: 复制代码 代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Text.RegularExpressions; /// <summary> ///SQLInjectionHelper 的摘要说明 /// </summary> public cla
-
asp.net(C#)防sql注入组件的实现代码
在服务器安全栏目里我写过一篇<破解通用Sql防注入方法>的文章中说到,一些通用的防注入方法中没有对cookie数据进行过滤,会给黑客留下可乘之机.当然我的这段代码对提交过来的cookie数据也进行了过滤. 代码: 复制代码 代码如下: using System; using System.Configuration; using System.Web; using System.Globalization; namespace JNYW.StuM.SqlInject { public clas
-
asp中一段防SQL注入的通用脚本
'屏蔽通过地址栏攻击 url=Request.ServerVariables("QUERY_STRING") if instr(url,";")>=1 then url=Replace(url,";",":") : Response.Redirect("?" & url) end if '屏蔽通过表单攻击 for each item in request.form
-
C#防SQL注入代码的三种方法
对于网站的安全性,是每个网站开发者和运营者最关心的问题.网站一旦出现漏洞,那势必将造成很大的损失.为了提高网站的安全性,首先网站要防注入,最重要的是服务器的安全设施要做到位. 下面说下网站防注入的几点要素. 一:丢弃SQL语句直接拼接,虽然这个写起来很快很方便. 二:如果用SQL语句,那就使用参数化,添加Param 三:尽可能的使用存储过程,安全性能高而且处理速度也快 四:屏蔽SQL,javascript等注入(很是主要的),对于每个文件写是不太可能的.所以要找到对所有文件起作用的办法.我在网上
-
.Net防sql注入的几种方法
防sql注入的常用方法: 1.服务端对前端传过来的参数值进行类型验证: 2.服务端执行sql,使用参数化传值,而不要使用sql字符串拼接: 3.服务端对前端传过来的数据进行sql关键词过来与检测: 着重记录下服务端进行sql关键词检测: 1.sql关键词检测类: public class SqlInjectHelper:System.Web.UI.Page { private static string StrKeyWord = "select|insert|delete|from|count(
-
php mysql_real_escape_string addslashes及mysql绑定参数防SQL注入攻击
php mysql_real_escape_string addslashes及mysql绑定参数防SQL注入攻击 php防止SQL注入攻击一般有三种方法: 使用mysql_real_escape_string函数 使用addslashes函数 使用mysql bind_param() 本文章向大家详细介绍这三个方法在防止SQL注入攻击中的效果及区别. mysql_real_escape_string防sql注入攻击 mysql_real_escape_string() 函数转义 SQL 语句中
-
java 过滤器filter防sql注入的实现代码
实例如下: XSSFilter.java public void doFilter(ServletRequest servletrequest, ServletResponse servletresponse, FilterChain filterchain) throws IOException, ServletException { //flag = true 只做URL验证; flag = false 做所有字段的验证; boolean flag = true; if(flag){ //只
-
PHP实现表单提交数据的验证处理功能【防SQL注入和XSS攻击等】
本文实例讲述了PHP实现表单提交数据的验证处理功能.分享给大家供大家参考,具体如下: 防XSS攻击代码: /** * 安全过滤函数 * * @param $string * @return string */ function safe_replace($string) { $string = str_replace('%20','',$string); $string = str_replace('%27','',$string); $string = str_replace('%2527',
-
mybatis注解动态sql注入map和list方式(防sql注入攻击)
目录 网上的教程 我的教程(防sql注入攻击) 注入Map 注入List 封装foreach mybatis防止sql注入的循环map写法 网上的教程 配置xml 注解中写xml脚本@Select() 使用Java类中的Java方法拼写sql语句(不防sql注入攻击的纯字符串拼接) 我的教程(防sql注入攻击) 注入Map Mapper层代码 @Repository public interface ManageMapper { @SelectProvider(type = ManageProv
-
ADO.NET防SQL注入与使用参数增删改查
一.sql注入风险及解决方案 SQL注入是指在事先定义好的SQL语句中注入额外的SQL语句,从此来欺骗数据库服务器的行为. 示例:制作会员登录功能. 登录按钮代码如下: private void btLogin_Click(object sender, EventArgs e) { //1-定义连接字符串 string connStr = "server=.;database=DBTEST;uid=sa;pwd=123456"; //2-定义连接对象,打开连接 SqlConnectio
随机推荐
- mysql 删除操作(delete+TRUNCATE)
- 将MongoDB作为Redis式的内存数据库的使用方法
- jQuery链使用指南
- 轻松创建nodejs服务器(10):处理上传图片
- 配置iis6,iis7.5支持解析.json格式文件的方法
- Windows 2003 IIS 6.0 搭建可建虚拟机的asp+.net+php+jsp+mysql+mssql
- python实现微信接口(itchat)详细介绍
- 深入理解C++的对象模型
- Nodejs进阶:express+session实现简易登录身份认证
- Nginx搭建HTTPS服务器和强制使用HTTPS访问的方法
- 深入linux下遍历目录树的方法总结分析
- C#实现向指定文本文件添加内容的方法
- 利用JS对iframe父子(内外)页面进行操作的方法教程
- jQuery深拷贝Json对象简单示例
- 详解Spring配置事务的五种方式
- COCOON Counter统计程序后台写马
- Linux pidof命令使用总结
- 详解java中的PropertyChangeSupport与PropertyChangeListener
- Android实现记事本功能
- ASP.NET Core针对一个使用HttpClient对象的类编写单元测试详解