Stripes框架:如何在表单中禁用字符串转义

时间:2011-02-11 08:25:13

标签: java web-applications stripes

我正在使用条带框架来实现Web应用程序。为了避免各种攻击,文本被存储在数据库中,并且清理过程包括HTML实体的编码。

当我制作带条纹的表格时,我的问题就出现了。当表格开始时,一切都很好。但是,当用户先前输入的内容是此表单,并且现有值是从DB中提取的,在操作bean中设置然后由条带表单标签显示,条带再次将其转义。这会导致我的字符串双重转义。

无论如何,我可以告诉条纹,我知道我在做什么,我给你的字符串已经逃脱了?

2 个答案:

答案 0 :(得分:2)

似乎最好的解决方案就是不要在有问题的字段中使用条纹。如果在你的jsp中你替换,例如:

<stripes:textarea name="userEntryComment"/>

<textarea name="userEntryComment">${actionBean.userEntryComment}</textarea>

根本不调用thenexcept条带来生成第二个版本的HTML。此外,因为在这种情况下我们不使用&lt; c:out&gt;标签,字符串不会重新转义。

答案 1 :(得分:0)

HTML实体的编码解码由Stripes处理,因此实际上不需要在数据库中存储编码的HTML实体。只需从清理过程中删除HTML实体的编码,Stripes就会安全地处理数据。

还有另一点要做:以HTML等表示格式存储模型数据(MVC model!)可能被视为不良做法。 HTML实体当然也是HTML格式的数据。他们会在做各种其他事情时限制/阻碍您对数据的使用,例如搜索,发送文本电子邮件等等。