- 热门文章:
- · 关于ASP.Net中的时间处理
- · javascript实现的数据表格:冻结列、调整列宽和客户端排序
- · [常见问题]cookie使用1.Page与HttpContext的Request、Response
- · 怎样在页面和页面的用户控件进行交互
- · webform页面间传值的特殊方法
- · 怎么直接建立一个DataTable并且为之添加数据
- · 我的第一个Asp.Net程序
- · 如何把数据放到web不能访问的文件夹中并给用户下载?
- · How to handle the concurrency problems on ASP.Net Database
- · 后台动态设置前台标签内容和属性
- · ASP.NET中让同一个页面不同的文本框回车响应不同的事件
- · 认识ASP.NET配置文件Web.config
上一篇:枚举器模式(Enumerator pattern) >>
用ASP.NET 1.1 新特征防止Script攻击
以上的代码很简单,就是将用户输入的信息进行现实,运行以后是这样的:
以上我们输入一个简单的“Hello world”,可以看到,页面很正常的进行了显示,那么,如果我们输入“<script>alert("hello!")</script>”会怎样呢?现在就来看看运行结果:
很明显,是一个错误信息:“potentially dangerous Request.Form value was detected…”意思是用户提交的信息有潜在的危险,所以,不予提交。这就是Asp.NET的最新特征之一,将用户提交信息的潜在危险排除到最小,当然,要使用这个最新特征是很简单的,直接在页面中可以这样设定:
<%@ Page validateRequest="true" %>
或者,也可以在网站配置文件Web.config中设定:
<configuration>
<system.web>
<pages validateRequest="true" />
</system.web>
</configuration>
当然,要取消这个特征也是可以的,直接在以上设定中将False改为True就可以了。我们强烈建议将以上特征打开,设置为True,对每一个用户的输入进行检测。现在,我们看看如果用户现在关闭以上特征,页面运行会有怎样的结果:
可以看到,以上页面运行以后,出现了用户输入直接运行的结果:弹出一个提示信息。
那么,如果用户不希望使用Asp.NET1.1的以上新特征,而又希望可以比较好的实现程序的安全性,应该怎样做呢?可以直接使用Server.HtmlEncode(string)来现实,将所有用户的输入信息转换为HTML格式,也就是原封不动(现实出来和输入的一样)的现实用户输入的信息而不对恶意代码进行运行。现在,我们来看一个举例:
以上代码和前面提到的代码唯一的区别就是对用户输入进行了HTML编码,运行结果如下:
我们可以看到,用户带有潜在危险的输入,已经完全被避免了。以上方式和采用ASP.NET1.1的新特征相比,有什么不一样呢?以上方式依然接受用户输入,只是将危险代码进行了修改;而使用ASP.NET1.1的新特征,危险代码是完全拒之门外的,不会对数据进行处理。
以上我们试验了ASP.NET1.1的最新功能,并将它与别的技术进行了对比。编程中,我们建议直接使用ASP.NET1.1提供的新特征来实现危险排除,而不是采用HTML编码的方式。
下一篇:关于ASP.Net中的时间处理 >>
相关文章:
- · 将ArrayList中的ListItem绑定到DropDownList中去
- · 安全存放web项目数据库连接字符串
- · 分享:Project级别的权限控制
- · Solidworks二次开发—06—在装配体中添加配合
- · 在Repeater中嵌套使用Repeater
- · 一个简单的加密/解密方法
- · 加入身份验证信息的SMTP mail发送
- · webconfig的设置节点说明
- · 现有的Web打印控制技术分成几种方案
- · 一段实现DataGrid的“编辑”、“取消”功能脚本[无刷新]
- · WEB图片高清晰浏览同打印
- · Tangram与软件的组合构造
- · solidworks二次开发-04-修改数据
- · Solidworks二次开发-05-装配体中插入零部件
- · solidworks二次开发-03-访问特征数据
- · solidworks二次开发-02-用来访问特征的两个API
- · solidworks二次开发-01-录制一个宏
- · 有关于web播放器的列表播放问题
- · Microsoft User Interface Process Application Block 研究(3)
- · ASP.NET中使用IFRAME建立类Modal窗口
- · 挤压造型Extrusion的节点说明和应用实例
- · .net 里面 protected private 的变量也可以访问
- · 怎样得到一个系统盘的全名,不是字符,是全名,如:本地磁盘(C:)?
- · ASP.NET中新的代码编译功能(三)
- · ASP.NET中新的代码编译功能(二)
- · ASP.NET中新的代码编译功能(一)
- · asp.net里,一个小的自定义错误显示
- · ASP.NET编程中的十大技巧
- · 在ASP.NET中面向对象的编程思想
- · 有史以来最牛B的.NET程序集加密方法?
- · 在ASP.NET中实现多文件上传
- · (论坛答疑点滴)怎么给Table动态添加控件并且得到控件的值?
- · (论坛答疑点滴)有的时候DataGrid取值取不到?
- · (论坛答疑点滴)联合主键的情况怎么在DataGrid中利用DataKeys定位记录?
- · (论坛答疑点滴)__doPostBack()无效?
- · ASP.net生成文字图片
- · 自定义类(ASP.NET_VB)
- · 小技术(ASP.NET)
