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