当我允许用户使用s:textfield
输入文字时,他可以输入<b>Name</b>
或类似\Me/
之类的内容。我希望在将它们保存到数据库之前应将它们转义。当我们检索它们时,转义是自动完成的,但我希望它也能在我们保存时发生。
我试图从我的动作类返回json
输出,但由于我的数据库中存储了名称\a/
,因此形成了错误的json。如果名称在保存到数据库之前已被转义,则可以避免这种情况。
答案 0 :(得分:2)
您可以使用StringEscapeUtils。您可以在操作中调用escapeJavascript(textfield)
,然后将其存储到数据库中。
答案 1 :(得分:1)
@Daud,您解释的问题称为 跨站点脚本 或XSS。 我认为您应该使用过滤器来清理请求参数。这是最复杂的方式。您可以为通过请求发布某些参数的操作调用这些过滤器。
访问 my blog ,了解如何使用过滤方式避免XSS威胁。
当我们的项目由专门从事安全测试的知名公司进行测试时,我也遇到了这个问题,他们提出了这种过滤方法。
你可以尝试一下。