WEB开发网
开发学院网络安全安全技术 关于web应用程序安全的思考(序) 阅读

关于web应用程序安全的思考(序)

 2008-11-26 13:36:02 来源:WEB开发网   
核心提示: 1:每个页面都需要写权限管控代码(即使能将这样的类似代码封装成一个方法,由于涉及到具体页面的具体控件,关于web应用程序安全的思考(序)(10),所以在aspx中还是少不了这样的权限管控代码),2:权限代码与业务逻辑本质上是彼此无关,删除,修改和查看用户信息,勉强放在一起会违反低耦合原则,

1:每个页面都需要写权限管控代码(即使能将这样的类似代码封装成一个方法,由于涉及到具体页面的具体控件,所以在aspx中还是少不了这样的权限管控代码)。

2:权限代码与业务逻辑本质上是彼此无关,勉强放在一起会违反低耦合原则,因此在权限变动或修改时(例如增加一种角色,增加一个按钮)都可能会 影响到这些代码。

3:IsAdmin,IsManager等都属于硬编码(hardcode)方式,这样一是在角色或权限变动时要重新修改代码,更重要的是无法动态管理权限(如动态分配角色的权限)。

4:适用范围有限,基本上只适用于aspx文件,而如果系统需要管控xml,jpg,ashx,web service等其它文件或程序的权限时,又要进行权限设计了。

5:权限管控代码无法重用,每个新系统开发时都要重新考虑权限管控。

要解决上面的这些问题,关键就是权限管控观念的转变:

避免在业务程序中直接或间接加入权限判断,角色管控等代码(原因见上述第2,3点)。

具体来讲,就是程序员在开发每一支程序时,就应该想到,user在操作这支程序时,他就应该已通过安全管控,而程序员在写这支程序时,也只要考虑如何实现这支程序要完成的功能就行。

例如上面这个例子,权限管控与程序本身的显示,修改,删除逻辑纠缠在一起,耦合度过大,使得这两者在有变化时互相影响,增加程序的复杂性。如果转成这支程序只处理与业务逻辑有关的功能,成为上节中所讲的一种权限对象—系统功能,这样就可以像普通的厂别权限一样进行统一的权限判断和管理了。

从用户需求得知,有四个这样的系统功能需要实现,分别是新增,删除,修改和查看用户信息。

那可能首先就会写四支程序,分别实现四个功能:

上一页  5 6 7 8 9 10 

Tags:关于 web 应用程序

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接