
编码员征服安全。分享与学习系列。不安全的直接对象引用
URL是浏览我们所知道和喜爱的所有网站和网络应用程序的关键。它们的基本功能是识别资源的位置以及如何检索它们。虽然URL对于万维网的运行是必要的,但如果不适当地保护,它们也会构成安全风险。
在这篇文章中,我们将学习。
- 什么是IDOR以及攻击者如何使用IDOR
- 为什么IDOR是危险的
- 可以修复这一漏洞的技术
了解IDOR
直接对象引用是指在一个应用程序中引用一个特定的记录("对象")。它通常采用唯一标识符的形式,并可能出现在一个URL中。
例如,你可能会注意到在一个URL的末尾有类似"?id=12345 "的东西。这个数字,12345,是对一个特定记录的参考。当个别记录的访问控制不存在时,安全漏洞就会悄然出现。这允许用户访问他们不应该看到的记录和数据。这是一种需要较低技术水平的攻击。
在这个例子中,我们假设攻击者将URL中的ID改为12344。在一个容易受到IDOR影响的应用程序中,攻击者将能够看到与该记录有关的数据。
这种类型的漏洞到底能造成多大的损害?
知道为什么IDOR是危险的
当开发人员不小心时,他们可以设计一个系统,在不同的地方显示和泄露应用记录。这种程度的漏洞可能是重大的,特别是涉及敏感数据或PII时。
澳大利亚税务局建立了一个网站 ,以帮助企业征收新税。不幸的是,它被包装成一个IDOR漏洞的不受欢迎的功能。一个好奇的用户意识到,网站内的URL包含了他的澳大利亚商业号码,或ABN。碰巧的是,这是一个任何注册企业都容易发现的号码。这位用户决定将其他公司的号码放入URL。他得到了他们的银行账户信息和个人详细资料!这是他的天赋。
苹果最近成为一个IDOR漏洞的受害者。当iPad首次发布时,11.4万个客户的电子邮件地址被泄露。公平地说,这更像是AT&T方面的一个错误)。
你看,AT&T建立了一项服务,支持iPad的3G连接。iPad向AT&T的服务发送存储在SIM卡上的标识符。该服务随后返回用户的电子邮件地址。
不幸的是,这些标识符只是连续的整数,因此很容易被猜到。攻击者通过标识符进行迭代并窃取电子邮件地址。
另一个错误是,AT&T的服务试图 "保护 "服务,只在请求的user-agent头显示来自iPad时才返回电子邮件地址。用户代理只是一个字符串值,可以很容易地被操纵。
IDOR漏洞可能是微妙的、偷偷摸摸的。让我们来讨论如何战胜它们。
打败IDOR
访问控制是解决IDOR的关键。当一个用户请求一个特定的记录时,要确保他们被授权查看所请求的记录。
使用集中的授权模块是最好的方法。像Spring Security这样的工具为应用程序提供了强大的、可定制的认证和授权。
一句话:有一个模块,所有其他代码都依赖它来执行授权检查。
另一个常见的缓解措施是使用代用参考。与其在你的URL中使用实际的数据库记录标识符,你可以创建随机数字来映射到实际记录。
使用代理引用可以确保攻击者不能仅仅通过猜测下一个有效的标识符来获得一条记录。
最后,不要依赖用户可以操作的任何东西来提供授权。AT&T试图使用用户代理头来授权他们的服务。不要依赖HTTP头、cookies、或GET和POST参数。
随着这些缓解措施的到位,IDOR将成为过去。
确保你的推荐人
不安全的直接对象引用是最容易被利用的漏洞之一。不要让它们在你最不期望的时候悄悄出现在你面前。总是检查用户是否被授权。不要使用真实的数据库标识符。不要依赖用户控制的数据进行授权。
通过查看我们的学习资源来建立你的掌握能力。通过练习如何在你选择的语言中减轻IDOR漏洞,你将在你的生产代码库中找到并修复这个问题。你还可以通过Secure Code Warrior 平台的免费演示来检验你新发现的防御知识,该平台可以培训网络安全团队成为最终的网络战士。要了解更多关于击败这个漏洞以及其他威胁的流氓画廊,请访问Secure Code Warrior 博客。
准备好现在就抵御IDOR的攻击了吗?前往平台,免费挑战自己。[从这里开始]
Jaap Karan Singh是一位安全编码布道者,首席辛格和Secure Code Warrior 的共同创始人。

Secure Code Warrior 我们在这里为您的组织提供服务,帮助您在整个软件开发生命周期中确保代码安全,并创造一种将网络安全放在首位的文化。无论您是应用安全经理、开发人员、CISO或任何涉及安全的人,我们都可以帮助您的组织减少与不安全代码有关的风险。
预定一个演示Jaap Karan Singh是一位安全编码布道者,首席辛格和Secure Code Warrior 的共同创始人。


URL是浏览我们所知道和喜爱的所有网站和网络应用程序的关键。它们的基本功能是识别资源的位置以及如何检索它们。虽然URL对于万维网的运行是必要的,但如果不适当地保护,它们也会构成安全风险。
在这篇文章中,我们将学习。
- 什么是IDOR以及攻击者如何使用IDOR
- 为什么IDOR是危险的
- 可以修复这一漏洞的技术
了解IDOR
直接对象引用是指在一个应用程序中引用一个特定的记录("对象")。它通常采用唯一标识符的形式,并可能出现在一个URL中。
例如,你可能会注意到在一个URL的末尾有类似"?id=12345 "的东西。这个数字,12345,是对一个特定记录的参考。当个别记录的访问控制不存在时,安全漏洞就会悄然出现。这允许用户访问他们不应该看到的记录和数据。这是一种需要较低技术水平的攻击。
在这个例子中,我们假设攻击者将URL中的ID改为12344。在一个容易受到IDOR影响的应用程序中,攻击者将能够看到与该记录有关的数据。
这种类型的漏洞到底能造成多大的损害?
知道为什么IDOR是危险的
当开发人员不小心时,他们可以设计一个系统,在不同的地方显示和泄露应用记录。这种程度的漏洞可能是重大的,特别是涉及敏感数据或PII时。
澳大利亚税务局建立了一个网站 ,以帮助企业征收新税。不幸的是,它被包装成一个IDOR漏洞的不受欢迎的功能。一个好奇的用户意识到,网站内的URL包含了他的澳大利亚商业号码,或ABN。碰巧的是,这是一个任何注册企业都容易发现的号码。这位用户决定将其他公司的号码放入URL。他得到了他们的银行账户信息和个人详细资料!这是他的天赋。
苹果最近成为一个IDOR漏洞的受害者。当iPad首次发布时,11.4万个客户的电子邮件地址被泄露。公平地说,这更像是AT&T方面的一个错误)。
你看,AT&T建立了一项服务,支持iPad的3G连接。iPad向AT&T的服务发送存储在SIM卡上的标识符。该服务随后返回用户的电子邮件地址。
不幸的是,这些标识符只是连续的整数,因此很容易被猜到。攻击者通过标识符进行迭代并窃取电子邮件地址。
另一个错误是,AT&T的服务试图 "保护 "服务,只在请求的user-agent头显示来自iPad时才返回电子邮件地址。用户代理只是一个字符串值,可以很容易地被操纵。
IDOR漏洞可能是微妙的、偷偷摸摸的。让我们来讨论如何战胜它们。
打败IDOR
访问控制是解决IDOR的关键。当一个用户请求一个特定的记录时,要确保他们被授权查看所请求的记录。
使用集中的授权模块是最好的方法。像Spring Security这样的工具为应用程序提供了强大的、可定制的认证和授权。
一句话:有一个模块,所有其他代码都依赖它来执行授权检查。
另一个常见的缓解措施是使用代用参考。与其在你的URL中使用实际的数据库记录标识符,你可以创建随机数字来映射到实际记录。
使用代理引用可以确保攻击者不能仅仅通过猜测下一个有效的标识符来获得一条记录。
最后,不要依赖用户可以操作的任何东西来提供授权。AT&T试图使用用户代理头来授权他们的服务。不要依赖HTTP头、cookies、或GET和POST参数。
随着这些缓解措施的到位,IDOR将成为过去。
确保你的推荐人
不安全的直接对象引用是最容易被利用的漏洞之一。不要让它们在你最不期望的时候悄悄出现在你面前。总是检查用户是否被授权。不要使用真实的数据库标识符。不要依赖用户控制的数据进行授权。
通过查看我们的学习资源来建立你的掌握能力。通过练习如何在你选择的语言中减轻IDOR漏洞,你将在你的生产代码库中找到并修复这个问题。你还可以通过Secure Code Warrior 平台的免费演示来检验你新发现的防御知识,该平台可以培训网络安全团队成为最终的网络战士。要了解更多关于击败这个漏洞以及其他威胁的流氓画廊,请访问Secure Code Warrior 博客。
准备好现在就抵御IDOR的攻击了吗?前往平台,免费挑战自己。[从这里开始]

URL是浏览我们所知道和喜爱的所有网站和网络应用程序的关键。它们的基本功能是识别资源的位置以及如何检索它们。虽然URL对于万维网的运行是必要的,但如果不适当地保护,它们也会构成安全风险。
在这篇文章中,我们将学习。
- 什么是IDOR以及攻击者如何使用IDOR
- 为什么IDOR是危险的
- 可以修复这一漏洞的技术
了解IDOR
直接对象引用是指在一个应用程序中引用一个特定的记录("对象")。它通常采用唯一标识符的形式,并可能出现在一个URL中。
例如,你可能会注意到在一个URL的末尾有类似"?id=12345 "的东西。这个数字,12345,是对一个特定记录的参考。当个别记录的访问控制不存在时,安全漏洞就会悄然出现。这允许用户访问他们不应该看到的记录和数据。这是一种需要较低技术水平的攻击。
在这个例子中,我们假设攻击者将URL中的ID改为12344。在一个容易受到IDOR影响的应用程序中,攻击者将能够看到与该记录有关的数据。
这种类型的漏洞到底能造成多大的损害?
知道为什么IDOR是危险的
当开发人员不小心时,他们可以设计一个系统,在不同的地方显示和泄露应用记录。这种程度的漏洞可能是重大的,特别是涉及敏感数据或PII时。
澳大利亚税务局建立了一个网站 ,以帮助企业征收新税。不幸的是,它被包装成一个IDOR漏洞的不受欢迎的功能。一个好奇的用户意识到,网站内的URL包含了他的澳大利亚商业号码,或ABN。碰巧的是,这是一个任何注册企业都容易发现的号码。这位用户决定将其他公司的号码放入URL。他得到了他们的银行账户信息和个人详细资料!这是他的天赋。
苹果最近成为一个IDOR漏洞的受害者。当iPad首次发布时,11.4万个客户的电子邮件地址被泄露。公平地说,这更像是AT&T方面的一个错误)。
你看,AT&T建立了一项服务,支持iPad的3G连接。iPad向AT&T的服务发送存储在SIM卡上的标识符。该服务随后返回用户的电子邮件地址。
不幸的是,这些标识符只是连续的整数,因此很容易被猜到。攻击者通过标识符进行迭代并窃取电子邮件地址。
另一个错误是,AT&T的服务试图 "保护 "服务,只在请求的user-agent头显示来自iPad时才返回电子邮件地址。用户代理只是一个字符串值,可以很容易地被操纵。
IDOR漏洞可能是微妙的、偷偷摸摸的。让我们来讨论如何战胜它们。
打败IDOR
访问控制是解决IDOR的关键。当一个用户请求一个特定的记录时,要确保他们被授权查看所请求的记录。
使用集中的授权模块是最好的方法。像Spring Security这样的工具为应用程序提供了强大的、可定制的认证和授权。
一句话:有一个模块,所有其他代码都依赖它来执行授权检查。
另一个常见的缓解措施是使用代用参考。与其在你的URL中使用实际的数据库记录标识符,你可以创建随机数字来映射到实际记录。
使用代理引用可以确保攻击者不能仅仅通过猜测下一个有效的标识符来获得一条记录。
最后,不要依赖用户可以操作的任何东西来提供授权。AT&T试图使用用户代理头来授权他们的服务。不要依赖HTTP头、cookies、或GET和POST参数。
随着这些缓解措施的到位,IDOR将成为过去。
确保你的推荐人
不安全的直接对象引用是最容易被利用的漏洞之一。不要让它们在你最不期望的时候悄悄出现在你面前。总是检查用户是否被授权。不要使用真实的数据库标识符。不要依赖用户控制的数据进行授权。
通过查看我们的学习资源来建立你的掌握能力。通过练习如何在你选择的语言中减轻IDOR漏洞,你将在你的生产代码库中找到并修复这个问题。你还可以通过Secure Code Warrior 平台的免费演示来检验你新发现的防御知识,该平台可以培训网络安全团队成为最终的网络战士。要了解更多关于击败这个漏洞以及其他威胁的流氓画廊,请访问Secure Code Warrior 博客。
准备好现在就抵御IDOR的攻击了吗?前往平台,免费挑战自己。[从这里开始]
URL是浏览我们所知道和喜爱的所有网站和网络应用程序的关键。它们的基本功能是识别资源的位置以及如何检索它们。虽然URL对于万维网的运行是必要的,但如果不适当地保护,它们也会构成安全风险。
在这篇文章中,我们将学习。
- 什么是IDOR以及攻击者如何使用IDOR
- 为什么IDOR是危险的
- 可以修复这一漏洞的技术
了解IDOR
直接对象引用是指在一个应用程序中引用一个特定的记录("对象")。它通常采用唯一标识符的形式,并可能出现在一个URL中。
例如,你可能会注意到在一个URL的末尾有类似"?id=12345 "的东西。这个数字,12345,是对一个特定记录的参考。当个别记录的访问控制不存在时,安全漏洞就会悄然出现。这允许用户访问他们不应该看到的记录和数据。这是一种需要较低技术水平的攻击。
在这个例子中,我们假设攻击者将URL中的ID改为12344。在一个容易受到IDOR影响的应用程序中,攻击者将能够看到与该记录有关的数据。
这种类型的漏洞到底能造成多大的损害?
知道为什么IDOR是危险的
当开发人员不小心时,他们可以设计一个系统,在不同的地方显示和泄露应用记录。这种程度的漏洞可能是重大的,特别是涉及敏感数据或PII时。
澳大利亚税务局建立了一个网站 ,以帮助企业征收新税。不幸的是,它被包装成一个IDOR漏洞的不受欢迎的功能。一个好奇的用户意识到,网站内的URL包含了他的澳大利亚商业号码,或ABN。碰巧的是,这是一个任何注册企业都容易发现的号码。这位用户决定将其他公司的号码放入URL。他得到了他们的银行账户信息和个人详细资料!这是他的天赋。
苹果最近成为一个IDOR漏洞的受害者。当iPad首次发布时,11.4万个客户的电子邮件地址被泄露。公平地说,这更像是AT&T方面的一个错误)。
你看,AT&T建立了一项服务,支持iPad的3G连接。iPad向AT&T的服务发送存储在SIM卡上的标识符。该服务随后返回用户的电子邮件地址。
不幸的是,这些标识符只是连续的整数,因此很容易被猜到。攻击者通过标识符进行迭代并窃取电子邮件地址。
另一个错误是,AT&T的服务试图 "保护 "服务,只在请求的user-agent头显示来自iPad时才返回电子邮件地址。用户代理只是一个字符串值,可以很容易地被操纵。
IDOR漏洞可能是微妙的、偷偷摸摸的。让我们来讨论如何战胜它们。
打败IDOR
访问控制是解决IDOR的关键。当一个用户请求一个特定的记录时,要确保他们被授权查看所请求的记录。
使用集中的授权模块是最好的方法。像Spring Security这样的工具为应用程序提供了强大的、可定制的认证和授权。
一句话:有一个模块,所有其他代码都依赖它来执行授权检查。
另一个常见的缓解措施是使用代用参考。与其在你的URL中使用实际的数据库记录标识符,你可以创建随机数字来映射到实际记录。
使用代理引用可以确保攻击者不能仅仅通过猜测下一个有效的标识符来获得一条记录。
最后,不要依赖用户可以操作的任何东西来提供授权。AT&T试图使用用户代理头来授权他们的服务。不要依赖HTTP头、cookies、或GET和POST参数。
随着这些缓解措施的到位,IDOR将成为过去。
确保你的推荐人
不安全的直接对象引用是最容易被利用的漏洞之一。不要让它们在你最不期望的时候悄悄出现在你面前。总是检查用户是否被授权。不要使用真实的数据库标识符。不要依赖用户控制的数据进行授权。
通过查看我们的学习资源来建立你的掌握能力。通过练习如何在你选择的语言中减轻IDOR漏洞,你将在你的生产代码库中找到并修复这个问题。你还可以通过Secure Code Warrior 平台的免费演示来检验你新发现的防御知识,该平台可以培训网络安全团队成为最终的网络战士。要了解更多关于击败这个漏洞以及其他威胁的流氓画廊,请访问Secure Code Warrior 博客。
准备好现在就抵御IDOR的攻击了吗?前往平台,免费挑战自己。[从这里开始]
资源
Secure Code Warrior corporate overview
Secure Code Warrior is an AI Software Governance platform designed to enable organizations to safely adopt AI-driven development by bridging the gap between development velocity and enterprise security. The platform addresses the "Visibility Gap," where security teams often lack insights into shadow AI coding tools and the origins of production code.
安全代码培训主题和内容
Our industry-leading content is always evolving to fit the ever changing software development landscape with your role in mind. Topics covering everything from AI to XQuery Injection, offered for a variety of roles from Architects and Engineers to Product Managers and QA. Get a sneak peek of what our content catalog has to offer by topic and role.
资源
Observe and Secure the ADLC: A Four-Point Framework for CISOs and Development Teams Using AI
While development teams look to make the most of GenAI’s undeniable benefits, we’d like to propose a four-point foundational framework that will allow security leaders to deploy AI coding tools and agents with a higher, more relevant standard of security best practices. It details exactly what enterprises can do to ensure safe, secure code development right now, and as agentic AI becomes an even bigger factor in the future.






