博客

安全编码指南是如何演变的

September 15, 2017
Pieter De Cremer
世界地图显示来自意大利、美国和巴西的黑客活动分子正在攻击欧洲的 Code Snippets 应用程序。

上周我正在研究 Java Spring 中的漏洞,以便更新我们的安全编码指南。在查看平台现有的挑战时,我注意到一些关于通过在 JSP 页面中显示 URL 参数引发 XSS 的问题。错误的代码示例如下:

   <input type="text" name="username" value="${param.username}">

正确的解决方案是完全移除 URL 参数,描述中也提到,以正确方式对 URL 参数进行转义同样是安全的。

现在,我的工作是以一种对开发人员清晰明了的方式制定安全编码指南,在确保代码安全的同时,尽可能减少对他们的限制。在这种情况下,我倾向于让开发人员保留预期的功能,并建议他们通过转义 URL 参数来安全地实现。这样,代码就不再包含 XSS 漏洞。上述示例可以这样进行安全加固:

   <input type="text" name="username" value="${fn:escapeXml(param.username)}">

这就是我们维持了几天的安全编码指南,直到我偶然发现了 OWASP 关于表达式语言注入的页面。该页面描述了 Spring 表达式语言 (SpEL) 如何被滥用进行注入,并造成严重影响,包括远程代码执行。我需要确定是否会出现符合我们安全编码指南的代码仍受此漏洞影响的情况。因此,我编写了一个快速测试应用程序来评估 SpEL 表达式,并测试了带有和不带有 Xml 转义的输入,看看能否找到无法被捕获的场景。结果确实如此,有些恶意表达式不包含任何会被 XmlEscape 捕获的字符。我已将可运行的演示发布在我们的 GitHub 上,您可以点击 此处 查看。

当然,我更新了我们的安全编码指南,现在内容为:“请勿使用 Spring 表达式语言 (SpEL) 显示或评估 URL 参数。”

此问题的总体影响为高,原因如下: - 攻击者可以修改并调用应用程序服务器上的功能。 - 未经授权访问数据和功能,以及账户劫持和远程代码执行。 - 攻击成功会引发机密性和完整性问题。

https://www.owasp.org/index.php/Expression_Language_Injection

标语

在 AI 驱动的开发成果发布前实现有效治理

评估 AI 辅助风险,在提交代码时强制执行安全编码策略,并加速整个软件开发生命周期的安全交付。

预约演示
资源库

探索更多博客

获取有关安全编码、人工智能治理和软件风险管理的专家内容。

浏览全部
案例研究
筛选标签
这是 div 块中的一段文本。

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.

了解更多
案例研究
筛选标签
这是 div 块中的一段文本。

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

了解更多
案例研究
筛选标签
这是 div 块中的一段文本。

统一的安全文化:Sage 如何打造其安全倡导者项目

了解 Sage 如何通过灵活且以关系为导向的方法提升安全性,成功培养了 200 多名安全倡导者,并实现了显著的风险降低。

了解更多
博客
筛选标签
这是 div 块中的一段文本。

2026年网络安全意识月:理解人工智能安全对企业防御至关重要

目前,大多数顶级人工智能公司已公开呼吁全球放缓人工智能的发展速度,以便安全防护措施能够跟上步伐。然而事实是,严重的安全问题已经显现。随着人工智能实施带来的经济成本和风险不断累积,无数安全领导者和高管团队正处于紧迫的境地。

了解更多
博客
筛选标签
这是 div 块中的一段文本。

赋能要素 8:打造项目品牌

成功的安全编码项目不仅需要优质的内容。赋能要素 8 展示了如何通过品牌化将参与过程转变为一种令人向往、以地位为驱动的体验。

了解更多
博客
筛选标签
这是 div 块中的一段文本。

每一位员工现在都处于 AI 网络安全的最前线

企业技术格局正以一种鲜有人预料到的速度发生剧变,直到为时已晚。我们已正式跨越了从人工编写代码和基础辅助编程,进入“智能体开发生命周期”(ADLC)的时代。虽然自主 AI 智能体有望在多个职能领域实现前所未有的效率,但它们也带来了全新的安全和监管风险。

了解更多

在产品发布前确保 AI 驱动的开发安全

洞察开发风险,执行安全策略,并在整个软件开发生命周期中预防漏洞。

预约演示
未找到相关项目。