程序员征服安全:分享与学习系列 - 信息泄露

“言多必失”这句谚语在二战时期的美国广为流传。在英国,人们则常说“大意失荆棘”。这些话的核心含义是:随意谈论敏感信息可能会被间谍窃听,从而导致严重后果。
构建 Web 应用时,同样的原则也适用。当您的 Web 应用泄露过多信息时,攻击者便能更轻易地入侵系统。
本文将探讨什么是信息泄露、其危害性以及如何进行防范。
了解信息泄露
信息泄露是指 Web 应用将内部信息暴露给了不该看到的人。这还包括通过日志文件或用户界面泄露敏感的客户信息。无论哪种情况,攻击者都能利用这些信息来攻击您的系统或用户。
攻击者的第一步通常是尝试在您的应用中制造错误。糟糕的错误处理和 Web 应用配置会导致错误消息泄露信息。如果攻击者在您的应用中触发了错误,会发生什么?如果页面显示了包含堆栈跟踪等技术细节的错误消息,那么您就已经泄露了过多信息。这些细节可能包括您正在使用的数据库类型或应用服务器的版本号。
敏感信息还可能通过其他方式泄露。表单中是否包含存储敏感信息的隐藏字段?攻击者只需查看页面源代码即可获取这些值。
简而言之,当本应仅限特定人员知晓的信息变得过于容易获取时,就会发生信息泄露。
了解信息泄露的危害
攻击者能利用应用泄露的信息做什么?如果信息涉及敏感内容,攻击者可能会窃取身份或用户凭据。这可能导致经济损失、隐私侵犯以及监管罚款。
如果攻击者利用错误消息获取应用信息,这些信息可能会被用于后续攻击。事实上,OWASP 测试指南中有一个专门的章节讨论信息收集。
OWASP 测试指南建议使用搜索引擎来查找您可能无意中暴露的网站信息。例如,您的管理页面是否被搜索引擎收录了?请使用 robots.txt 文件告知搜索引擎不要索引特定页面。同时,robots.txt 文件本身也可能泄露信息。敏感的 URL 有时会出现在 robots.txt 文件中。攻击者下载该文件后,便能开始了解网站的部分目录结构。
Google 提供了高级搜索选项,可以对网站进行深度检查。例如,您可以使用“site:<domain>”语法搜索特定站点。您还可以查看可能已被删除但仍保留在缓存中的页面。使用 Bing 和 DuckDuckGo 等不同的搜索引擎可能会得到不同的结果,因此请在每个搜索引擎上测试您的 Web 应用泄露了哪些信息。
HTTP 标头、网站横幅,甚至是 HTML 和 JavaScript 代码中的注释,都可能包含攻击者不应看到的信息。HTTP 标头可能会泄露应用服务器及其版本号。攻击者可以利用这些信息寻找针对特定版本的漏洞。请务必了解攻击者可能获取信息的各个渠道,并妥善隐藏这些信息。
防范信息泄露
信息泄露通常是 Web 应用配置不当导致的。许多应用服务器默认会在错误消息中返回堆栈跟踪。请务必在生产环境中更改此设置,将其重定向到通用的错误页面,同时将错误记录在日志中以便排查问题。绝不应将详细的错误消息返回给用户的浏览器。
如果应用中包含存储敏感信息的必要文件,请确保通过适当的访问控制,仅允许应用本身读取这些文件。禁用服务器上的目录列表功能,并将这些文件移至 Web 根目录之外。这可以防止攻击者通过浏览器利用目录遍历攻击来访问这些文件。
如果配置不当,日志可能会泄露信息。发生错误时,切勿记录密码、会话令牌或个人身份信息 (PII) 等敏感数据。如果攻击者能够访问日志文件,他们便能从中窃取大量敏感信息。记录的内容应适可而止,通常仅需包含账户标识符、详细错误信息,以及发生错误的方法或正在执行的操作即可。请假设日志文件并非机密,这样你就不会在其中记录敏感信息了。
别让你的 Web 应用“沉没”
你是否真的会因为与朋友交谈时泄露信息,而直接导致二战中一艘战舰的沉没?或许不会。但为什么要冒这个险呢?这就是“祸从口出,船沉人亡”这句谚语的教训。
同样,没有理由向外界暴露 Web 应用的内部运作机制。没有理由查看完整的信用卡号或密码。没有理由在日志文件中包含 PII 数据。所以,请务必避免这些行为。查看我们的学习资源,深入了解信息泄露问题。
让应用的内部运作机制保持在应有的位置。别让你的 Web 应用“沉没”。
你认为自己现在就能阻止信息泄露吗?勇士,接受挑战吧: [立即开始]
在 AI 驱动的开发成果发布前实现有效治理
评估 AI 辅助风险,在提交代码时强制执行安全编码策略,并加速整个软件开发生命周期的安全交付。
探索更多博客
获取有关安全编码、人工智能治理和软件风险管理的专家内容。
%252520%252520(3).avif)
Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Security as culture: How Blue Prism cultivates world-class secure developers
Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed
在产品发布前确保 AI 驱动的开发安全
洞察开发风险,执行安全策略,并在整个软件开发生命周期中预防漏洞。



.avif)