ASP.Net--成员资格、授权和安全性(一)

安全性,无趣却极其重要。。。。。

asp.net mvc不像asp.net web form那样提供了很多自动保护机制来保护页面不受恶意用户的攻击,例如:

①服务器组件对显示的值和特性进行html编码,以帮助阻止xss攻击(跨站脚本攻击,注入恶意的script代码)

②加密和验证视图状态,从而帮助阻止篡改提交的表单。

③请求验证(<% @page validaterequest="true" %>)截获看起来像恶意的数据,并给出警告(这是asp.net mvc 框架默认开启的保护)。

④事件验证帮助阻止注入攻击和提交无效值。

转向 asp.net mvc 意味着这些事情要落到程序员的肩膀上,,,,,,,我的天呐,能不能愉快地玩耍了,,,,,asp.net mvc 对标记和程序的运行提供了更多控制,这意味着程序员要承担更多的责任(责任越大能力越大,自我安慰一下)


程序存在安全隐患,追根溯源还是因为开发人员缺乏足够的信息和理解。但是人无完人,难免会有疏忽的时候,鉴于此,请记住这句话:永远不要相信用户提供的任何数据,永远不要相信用户提供的任何数据,永远不要相信用户提供的任何数据。。。重要的事情说三遍

举一些实际的例子:

①每当渲染作为用户输入而引入数据时,请对其进行编码最常见的做法是使用html编码,但是如果数据作为 特性值显示,就应对其进行html特性编码,如果数据用在JavaScript代

码段中,就应对其进行JavaScript编码。有些时候,需要进行多层编码,如html页面中的JavaScript代码段。

②考虑好网站的那些部分需要匿名访问,那些部分需要认证访问。

③不要试图自己净化用户的html输入,(使用正则表达式或者其他方式)——否则就会失败

④在不需要客户端脚本访问(大部分情况下)cookie时,使用HTTP-only cookie

⑤请记住外部输入不只是显示的表单域,还有url字符串,隐藏的表单域,ajax请求以及我们使用的外部服务等。

⑥建议使用 AntiXss编码器


本 节首先介绍如何使用asp.net mvc 中的安全性来执行像授权这样的应用功能,然后介绍如何处理常见的安全威胁。使用 Authorize特性登录,保护应用程序的第一步,也是最简单的一步,就是登录访问应用程序。authorize attribute是asp.net mvc自带的默认授权过滤器,可以限制用户对操作方法的访问。将该特性应用于控制器上,就能将其快速的应用到改控制器的每个方法上了。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值