
Wie sich die Richtlinien für sichere Codierung entwickeln
上周,我正在研究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


Letzte Woche habe ich nach Sicherheitslücken in Java Spring gesucht, um unsere Richtlinien für sicheres Codieren auf den neuesten Stand zu bringen.
Forscher für Anwendungssicherheit - Forschungs- und Entwicklungsingenieur - Doktorand

Secure Code Warrior 您的Secure Code Warrior 帮助您在整个软件开发周期中保障代码安全,并建立将网络安全置于首位的企业文化。无论您是应用安全经理、开发人员、首席信息安全官,还是其他从事安全工作的人员,我们都能协助您的企业降低不安全代码带来的风险。
预约演示Forscher für Anwendungssicherheit - Forschungs- und Entwicklungsingenieur - Doktorand


上周,我正在研究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

上周,我正在研究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
上周,我正在研究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
入门资源
Trust Agent:AI - Secure and scale AI-Drive development
AI is writing code. Who’s governing it? With up to 50% of AI-generated code containing security weaknesses, managing AI risk is critical. Discover how SCW's Trust Agent: AI provides the real-time visibility, proactive governance, and targeted upskilling needed to scale AI-driven development securely.
OpenText 应用程序安全性的强大功能 + Secure Code Warrior
OpenText Application Security and Secure Code Warrior combine vulnerability detection with AI Software Governance and developer capability. Together, they help organizations reduce risk, strengthen secure coding practices, and confidently adopt AI-driven development.
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.




