不安全直接对象参考的缓解技术

问题描述 投票:1回答:2

除了保护会话之外,还有什么缓解技术可以通过不安全的直接对象引用来防止水平特权升级?换句话说,我们如何实现水平访问控制,我的意思是功能,数据等在同一级别上的每个人都可以访问,如果我们违反了特权,我认为除了劫持会话外,唯一可行的方法是通过不安全的直接访问对象引用还是我不知道的其他方法?

owasp
2个回答
1
投票

可能在下面的链接中使用,以防止不安全的直接对象引用:http://owasp-esapi-java.googlecode.com/svn/trunk_doc/latest/org/owasp/esapi/AccessReferenceMap.html


1
投票

除了水平或垂直之外,当忘记了授权检查到达系统中的某个对象时,就会发生IDOR。至关重要的是,所到达的对象是否敏感,例如显示发票属于系统中的用户。

所以,我建议您使用randomly generated IDs or UUIDs来完全避免IDOR。攻击者必须找到属于另一个用户的有效随机ID值。

或者如果听起来很难应用,则有可能。即使您使用自动递增的对象ID,也可以将hash函数与salt一起应用,并放入诸如键值对之类的哈希映射中。然后,您将键值映射存储在会话中。

您可以使用相应ID的哈希值,而不是向用户公开自动递增ID。当您从用户那里获得值时,可以通过在会话中查找键值映射来找到实际的ID值。因此,即使攻击者欺骗了所产生的价值,它也不会在地图上存在。基本上,这意味着IDOR将不再可利用。

要阅读有关IDOR和缓解措施的全部信息,这是我写的一篇有关它的各个方面的文章:https://medium.com/@aysebilgegunduz/everything-you-need-to-know-about-idor-insecure-direct-object-references-375f83e03a87

© www.soinside.com 2019 - 2024. All rights reserved.