相信大家都或多或少的听过关于各种Web应用安全漏洞,诸如:跨site脚本攻击(XSS),SQL注入,上传漏洞…形形色色.。在这里我并不否认各种命名与归类方式,也不评价其命名的合理性与否,我想告诉大家的是,形形色色的安全漏洞中,其实所蕴含安全问题本质往往只有几个。 我个人把Web应用程序安全性本质问题归结以下三个部分:
1、输入/输出验证(Input/output validation)
2、角色验证或认证(Role authentication )
3、所有权验证(Ownership authentication)
说到这,读者一定想知道我这三种分类与形形色色的安全性问题有什么关系?下面我逐个给您概略解答:
输入/输出验证
这里的输入与输出其实都是发生在用户界面(User Interface)这一个层面上的,比如:你某一站点上提交一份注册信息,往往会收到诸多提示:“用户名非法”,“姓名不能使用英文“……其实这就是输入验证的一个实例。什么情况是输出呢? 比如说你成功提交一份注册信息后,系统会返回一个确认页(Registerred Confirmation),往往在这个页面上会显示你注册时提交的部分或全部信息,那么在这里显示的信息就是我所说的输出实例之一,输入需要做什么验证? 假如你在提交时,在Address那一栏输入:<script>alert("iwebsecurity");</script>, 当你到达注册的确认页时,会有什么发生?如果确认页没有做输出验证处理,那很显然会在到达确认页的时候出现一个Javascript打出的提示框。其实这就是跨site脚本攻击的一个小小的实例。当然了,单纯的输入/输出验证涉及的面可能够写一小本书了,努力在后续文章中给大家详解。
角色验证或认证
我们就拿CSDN来说吧,用户有这些角色:其一可以说是游客,就是浏览者没有登录时的角色;其二是免费的注册用户;或许将来CSDN深入发展了,业务有所更新,还会出现收费的注册用户。以上只是用户角色,那在CSDN公司内部还会有管理员角色,还有可能管理员又可以根据板块分为各种不同的角色。大家看到了吧,你天天访问的CSDN一共可能有多少角色? 接下来的问题就是权限问题了,为什么会有角色? 就是为了控制权限的。每种角色都有自己特定的与公共的权限,这些权限的逻辑关系是相当复杂的,如果一个Web应用在角色上没有一个详细的合理的设计,将会给开发人员带来无限痛苦和麻烦。那现在我要问几个问题:你能保证每种角色只能做其份内的事儿?你是如何去保证的呢?方法可靠吗?有没有漏洞?…… 这,就是我要说的角色验证或认证。BTW:为什么我会说验证或认证呢?你可以这么理解,角色性存在于两个阶段,其一进入阶段,比如你登录的那一瞬间,你进入了一个特定的角色;另一个阶段就是维持阶段,你如何确保你登录后总是以登录时的身份在操作呢?那前者可以说是:认证,后者就是验证了。(有点罗嗦不?)
给一个角色认证/验证方面的虚拟案例,比如:一个在线电影服务提供商,会免费给您开一个试用角色,如果这试用角色验证不当,可能会导致用户权限提升而成为一个合法的收费用户,而这个收费用户你往往却收不到他的任何费用。
所有权验证
这个问题的存在也是基于角色的,只不过它所关心的是同级别的角色之间的权限问题。就拿CSDN来说吧,我是CSDN的一个免费用户,你也是。现在的问题是:我可以替你操作吗,我可以替你发表文章吗?我能修改你的个性设置吗?如果不能,CSDN是如何实现的?虽然你和我都是普通用户,但是你有你的隐私我也有我的隐私,如何保证严格的所有权验证就显得尤为关键了。比较简单吧,这就是我所说的所有权验证。
我可以很自信的告诉你,只要是Web应用安全性问题,它逃不出在这三大部分,可能你还无法把形形色色的Web应用安全性问题与这三个部分对应并合理的解释清楚,但是确实只有这么简单的几个部分。如果您有疑问,可以以评论的方式提问。我可能会回复,也可能会以另一篇文章的形式出现,以供大家参考。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
安全11月谈:Web安全实用技巧集
在安全11月最受读者关注的技巧中,着重探讨了为保护Web安全,企业安全团队所需关注的点和可实施的措施,包括URL过滤的最佳实践、部署Web应用防火墙等,希望对读者能有所帮助。
-
为什么要部署Web应用防火墙?
大型的Web应用易受多种攻击,如SQL注入和跨站脚本攻击漏洞等,为保护Web应用程序,建议企业利用Web应用防火墙……
-
当我们谈Web应用安全的时候 主要谈哪些(下)
在本文中,主要介绍了业界几个需要被着重考虑的Web应用程序的安全问题:SQL注入、表格和脚本以及Cookies和会话管理。
-
当我们谈Web应用安全的时候 主要谈哪些(上)
在本文中,主要探讨Web应用程序的安全性,主要包括漏洞攻击者如何利用不安全的Web应用程序来危害整个服务器或者破坏一个网站、以及开发人员如何避免引入这些漏洞。