关于web应用程序安全的思考(二)
2008-11-26 13:35:57 来源:WEB开发网想在我提出使用URL进行安全管控作为我的web应用程序安全的基础,一定有很多网友的不解,所以就先解释一下这个问题吧。
使用URL进行权限管控的意思是:
1.在上篇中我说过,web应用程序的本质其实就是Request。所以要让您的web应用程序安全,最直接最有效的手段就是让每一次Request都置于你的管控范围之内。这就好比您的web应用程式是一个大型游乐场,而您的安全模组就是这个游乐场的入口检票处。这样凡是要进行您的游乐场的人员,必须都已经通过了您的资格认定了,在web应用程序中它们是无法避开入口而翻墙进入的。
因此使用URL进行安全管控的关键不是判断URL,而是判断每次request,检查每次request是否合法,以防止安全漏洞。
作法我已经给出,就是上篇的HttpModule实现。
2.使用URL进行安全管控,是对web应用程序的安全的一次高度抽象。您可以在设计您的web应用程序时完全不管安全问题,该新增时调用新增方法,该审核时调用审核方法。而不用在调用这些方法之前在加入检查是否有调用这些方法的权限。因为在你的方法执行之前,用户的动作合法性已经经过验证,它是有效的。
这样安全管控就可以和业务逻辑脱耦,互不影响,相互独立。好处不言而喻:可以动态调整安全管控而不影响web应用程序本身;可以重用安全管控元件,而无须每开发一次新系统时重新考虑该问题。
在进行我的设计之前,先提提asp.net自带的安全管控方法吧。
asp.net通过在web.config中提供Location节来完成页面的授权动作,这和我的以URL进行安全管控本质上是完全一样的,都是让每一次的Request都需通过认证。
但其只是简单的将授权主体分为匿名用户,用户名和角色名,授权客体则是URL或资料夹,然后将所有的信息hardcode在配置文件中。这对于一个小型系统可能适合,但是对于开发像ERP等大型企业应用系统来说则远远不够。
赞助商链接