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

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

 2008-11-26 13:35:59 来源:WEB开发网   
核心提示: 由上可知﹐web服务器对于请求方的识别能力是很低的,因此作为web应用程序安全管控的唯一依据就只能是request的url了﹐因为只有它才是真实的﹐而我们进行安全管控的最终目的也就是判断这个请求方是否拥有这个url的权限(即授权)这就是我抽象出来的web安全管控的本质﹐依据这点﹐我们就可以

由上可知﹐web服务器对于请求方的识别能力是很低的。因此作为web应用程序安全管控的唯一依据就只能是request的url了﹐因为只有它才是真实的﹐而我们进行安全管控的最终目的也就是

判断这个请求方是否拥有这个url的权限(即授权)

这就是我抽象出来的web安全管控的本质﹐依据这点﹐我们就可以把web安全管控和业务系统进行解耦。即在request到达其请求的url之前﹐先对这个url和请求方进行权限验证﹐如果通过﹐我们就放它过去﹐什么都不做﹐如果不通过﹐我们就可以向客户端发送相关的拒绝信息﹐并不让web服务器真正执行到那个url﹐完成安全管控。

在web安全管控中﹐授权的除了要识别授权的客体(URL)之外﹐我们还必须识别授权的主体﹐即请求方的认定﹐也就是常说的认证机制。

由于http协议无状态的特点﹐每次request时﹐web服务器都无法识别这个请求是否和上次的请求是否相同。因此认证机制在某种程度上来说其实相当困难。

曾经遇到过通过IP来认证的﹐先不说这种机制对于web可以anywhere访问是一种倒退﹐单是那种IP更改﹐欺骗或通过Proxy访问就无法适用了。

现在最多的做法还是通过cookie和session来完成的。

不过最好还是清楚一下cookie和session的原理﹕

Cookie﹕cookie其实也是http request header的一部分﹐我们可以把任何值当作cookie发给web服务器。

至于Session,不知道大家有没有看过.net的session实现机制﹐每次请求后﹐.net会写入一个session_id的cookie到客户端﹐这样在下次客户再请求时﹐提取这个cookie来识别。剩下的就和cookie一样了。

大家可以看一下我上面这个例子﹐在那支request请求的程式中加入相关的session_id的cookie﹐你会发现程式是无法识别是不是真正的session的

上一页  1 2 3 4 5  下一页

Tags:关于 web 应用程序

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