本文介绍了如何转义inbiz显示实体|中的字符XSS in Ofbiz的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
Ofbiz表单:需要从显示实体标签中的描述列中转义字符以避免XSS攻击:
display-entity entity-name =Tabledescription =$ {description}>
我尝试使用bsh,如下所示:
< display-entity entity-name =Tabledescription =$ {bsh:org.apache.commons.lang.StringEscapeUtils.escapeHtml(& quot; $ {description }&安培; QUOT;)}>
但是我收到这个错误:
错误渲染屏幕[组件://my/widget/CommonScreens.xml#GlobalDecorator]:java.lang.IllegalStateException:此对象已被标记为不可变(不可更改),可能是因为它来自一个实体引擎缓存。不能在不可变实体对象中设置值。
pre>
(该对象已被标记为不可变(不可更改),可能是因为它来自实体引擎缓存,无法在不可变实体对象中设置值。)
在这里有一个解决方案来解释描述中的字符?
解决方案我们最近为Scipio ERP(anbiz fork)的XSS漏洞提供了一个修补程序:
它可能值得一试(www.scipioerp.com)。
Ofbiz form: Need to escape characters from description column in a display-entity tag to avoid XSS attacks:
<display-entity entity-name="Table" description="${description}" >
I tried to use bsh, as following:
<display-entity entity-name="Table" description="${bsh: org.apache.commons.lang.StringEscapeUtils.escapeHtml("${description}")}">
But I get this error:
Error rendering screen [component://my/widget/CommonScreens.xml#GlobalDecorator]: java.lang.IllegalStateException: This object has been flagged as immutable (unchangeable), probably because it came from an Entity Engine cache. Cannot set a value in an immutable entity object. (This object has been flagged as immutable (unchangeable), probably because it came from an Entity Engine cache. Cannot set a value in an immutable entity object.)
Exists a solution here to escape chars in description?
解决方案We recently committed a patch for this XSS vulnerability to Scipio ERP (an ofbiz fork):
https://github.com/ilscipio/scipio-erp/commit/cf7e8ef40af06e2903fb50a3f708a455ffd88c2a
It may be worth checking it out (www.scipioerp.com).
这篇关于如何转义inbiz显示实体|中的字符XSS in Ofbiz的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!