ASP.NET中的EntryDate属性

我并没有对前一节中的EntryDate属性进行编码。这里存在两个原因说明当在一个页面中显示这个EntryDate属性时我们不需要对这个属性进行编码。

我们提供的服务有:成都网站建设、网站设计、微信公众号开发、网站优化、网站认证、红安ssl等。为上千余家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的红安网站制作公司

首先,一个网站访问者没有输入这个EntryDate属性的值。该EntryDate属性的值是通过你的代码创建的。在这种情况下,一个黑客是不能输入恶意的代码。

假定一个网站访问者的确输入了该EntryDate属性的值。因为该EntryDate是作为一个DateTime类型存储于SQL Server数据库中的,所以,一个黑客也不能把恶意的代码加入到此EntryDate属性中。因此,当你显示它时你不需要担心对这个属性进行编码的问题。

一般来说,当一个用户通过表单上的文本框输入待提交的内容时才是你应该真正担心JavaScript注入式攻击的时候。例如,这样情况下你应该担心用户名称的显示问题。如果你允许一个用户创建他们自己的用户名,那么,一个用户有可能会潜在地把一个恶意的JavaScript字符串加入到他们的用户名(或添加一个指向一个色情图像的图像标签)。

此外,你还应该担心超级链接的问题。因为大多数博客应用程序都支持匿名用户把一个超级链接提交到他们的网站—当他们对一个博客提交相应的注释信息时。这种情况下,一个黑客就有可能把恶意的JavaScript加入到该链接中。下面是一个简单的示例:

 
 
 
  1.  href="javascript:alert('Something Evil!')">Mr. Hacker a> 

当你点击这个链接时,即执行JavaScript代码。当然,在本文示例中不会发生任何恶意的事情。然而,你能够从页面上执行的确可以窃取表单数据或cookies的代码。

你可以使用JavaScript注入式攻击来窃取cookies数据。例如,如果你把某一个用户的信用卡号存储在一个浏览器端的cookie中,那么,你可以把JavaScript注入到该页面,然后通过使用document.cookie DOM属性获取信用卡号。

请注意,ASP.NET表单认证和ASP.NET会话状态技术都使用了浏览器端的cookies数据。其中,表单认证依赖于一个存储在一个名字为.ASPXAUTH的cookie中的认证标识,而会话状态则使用了一个名字为ASP.NET_SessionId的cookie。如果你能够窃取这些cookies数据,那么你就有能够模仿合法的网站用户而窃取用户会话状态信息.

幸好,微软已经预先采取了必要的预防措施使得很难窃取此表单认证和会话状态cookies数据。这两种cookie都是属于HttpOnly类型的 cookie。一个HttpOnly cookie是指一个特殊类型的cookie,你通过客户端代码是不能访问这样的数据的,而仅可以从web服务器端读取此HttpOnly cookies数据。

微软Internet Explorer、Firefox和Opera这样浏览器都提供了对于HttpOnly类型cookie的支持。遗憾的是,Safari和一些老式的浏览器还没有提供这种支持。因此,你仍然必须十分仔细地对所有的用户输入的数据进行HTML编码;否则,一个恶意黑客便有可能窃取表单认证和会话状态 cookie数据。

本文的目的是在于强调在进行基于ASP.NET MVC框架开发时必须重视安全问题。正如在本文中所介绍的,JavaScript注入式攻击是使用最为频繁的安全攻击类型。大多数web开发者都不曾花上足够的时间来考虑这个问题。因此,我希望本文能够提醒您,当把数据显示在一个MVC视图时应该总是对你的用户收集数据进行必要的编码。以上是介绍ASP.NET中的EntryDate属性。

网页标题:ASP.NET中的EntryDate属性
文章地址:http://www.gawzjz.com/qtweb/news21/191471.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联