【问题标题】:How to render checkbox without hidden field in Struts 2如何在Struts 2中呈现没有隐藏字段的复选框
【发布时间】:2017-03-10 19:06:06
【问题描述】:

当我们使用下面的代码创建 Struts2 复选框时

<s:checkbox name="checkMe" fieldValue="true" label="Check Me for testing"/>

它给出了下面的 HTML 表示(我指的是https://www.mkyong.com/struts2/struts-2-scheckbox-checkbox-example/

<input type="checkbox" name="checkMe" value="true" id="xx_checkMe"/>
<input type="hidden" id="__checkbox_xx_checkMe" name="__checkbox_checkMe" value="true"/>
<label for="resultAction_checkMe" class="checkboxLabel">Check Me for testing</label>

是否有办法消除创建隐藏参数,因为它会导致我的应用程序存在安全漏洞

【问题讨论】:

  • 隐藏参数是一个特性,它被复选框拦截器使用。您认为它会造成什么样的安全漏洞?
  • @AndreaLigios MongoDB NOSQL 注入。工具能够将特殊字符附加到该隐藏参数并传递给后端。
  • 这只是一个隐藏的输入。输入但隐藏。只需输入。您的 工具 可以将特殊字符附加到任何输入。您需要清理输入,而不是删除隐藏字段。
  • @AleksandrM。由于它是由框架生成的,因此我无法对其进行任何清理
  • 它是为复选框创建的,在您的情况下为 checkMe。你能消毒一下吗?

标签: java jsp checkbox struts2 struts-tags


【解决方案1】:

它使用freemarker 模板checkbox.ftl 来生成html 输出。您可以从源存档中复制并修改此模板,然后使用templatetemplateDir 属性指向自定义模板。

或者使用归档模板,但需要添加velocityvelocity-tools依赖。

<s:checkbox name="checkme" template="checkbox.vm" templateDir="template/archive"/>

【讨论】:

  • 感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-30
  • 1970-01-01
  • 2016-09-06
  • 2018-09-01
  • 1970-01-01
  • 2020-08-30
相关资源
最近更新 更多