这个认知也是我前段时间总结的,本来也可以以此为题写篇paper,但出于惰性搁置了。
如果想用英文装bi,可以这么写:
The requirement itself has no fault, the problem is whether the implementation is secure enough.
我认为需求是应该要尽量满足的,不应该说需求错了,有需求就有合理性。
问题往往出在需求的实现上,实现是会出错的,有可能会存在安全问题。
r,讲到的就是一个这样的问题。
window.location 对于浏览器的开发者来说,他们可能会认为子窗口对父窗口,或者父窗口对子窗口的互写(包括跨域)是允许的操作,是浏览器的一种功能(feature),是需求,不能算作是漏洞。
我要说的是,这个需求是应该被满足的,但是实现上可以考虑如何让这个需求变得安全起来。
关于这个例子,比较典型的是应该要限制写伪协议(javascript)。
但是在这里尽管是禁止了写伪协议,也可能带来类似钓鱼的问题,因为还是允许跨域写。
那么,这就涉及到一个是否应该放宽这个需求的问题了。
我认为,在实现上存在技术难度的地方,可以适当调整需求以满足实现的需要。
但是,这并不是说需求本身有问题,而是因为在现有的技术条件下,难以实现该需求,或者出于成本考虑,才调整该需求。
安全技术也是技术的一种,需求才是技术发展的动力。安全技术在实现安全需求上,与技术实现需求的关系是类似的。
另外一个例子, CSS History Hacking( 可以参考sirdarckcat,Gareth Heyes 的blog , anehta中也实现过扫描历史记录), 浏览器开发者也认为这是浏览器的功能,从某种意义上来说,确实是这样的,但是安全问题也存在,因为这种功能易于被利用,所以说是实现上的问题。
大家有同感的也可以跟帖再举一些类似的例子。
阅读(1024) | 评论(0) | 转发(0) |