安全测试之不安全的直接对象引用
2016-01-28 13:37
316 查看
一、不安全的直接对象引用的概念
不安全的对象直接引用(Insecure direct object references),指一个已经授权的用户,通过更改访问时的一个参数,从而访问到了原本其并没有得到授权的对象。二、不安全的直接对象引用出现的原因
Web应用往往在生成Web页面时会用它的真实名字,且并不会对所有的目标对象访问时来检查用户权限,所以这就造成了不安全的对象直接引用的漏洞。服务器上的具体文件名、路径或数据库关键字等内部资源被暴露在URL或网页中,攻击者可以尝试直接访问其他资源。
三、不安全的直接对象引用的实例
某网站的新闻检索功能可搜索指定日期的新闻,但其返回的URL中包含了指定日期新闻页面的文件名:http://example.test/online/news.asp?item=28Jan2016.html。攻击者可以尝试不同的目录层次来获得系统文件win.ini,例如,http://example.test/ online/news.asp? item=../../ winnt/win.ini。
澳大利亚税务局网站曾发生一位用户通过修改网站URL中的ABNID号而获得直接访问17000家公司税务信息的事件。
三、不安全的直接对象引用的防御措施
对于此安全风险的防御,主要从使用非直接的对象引用和检查权限来考虑,具体包括以下:避免在URL或网页中直接引用内部文件名或数据库关键字。
可使用自定义的映射名称来取代直接对象名,例如, http://example.test/online/news.asp?item=0245等
锁定网站服务器上的所有目录和文件夹,设置访问权限。
验证用户输入和URL请求,拒绝包含./或../的请求。
相关文章推荐
- 多线程——线程的生命周期
- 多线程——线程的生命周期
- mac下的secureCRT破解方案
- Contiki packetbuf原理
- JAVA中最常用的十个快捷键
- bundle安装方法
- IOS开发:UIAlertView使用
- Mac OSX 调用 JNI
- 303. Range Sum Query - Immutable [Leetcode]
- mysql 日期默认系统时间 mysql 默认值不支持函数
- Android 之采用execSQL和rawQuery方法完成数据的添删改查操作
- 第一章链表
- 简单工厂模式-计算器控制台程序
- 6.3 Controllers -- Managing Dependencies Between Controllers
- Collection
- window下的netstat
- Swift语法_字符和字符串
- Android面试题(1)
- IONIC 竖屏显示(屏幕不旋转)
- PostgreSQL COPY 导入/导出数据