2017-03-09 47 views
0

當我們用下面的代碼如何呈現複選框沒有隱藏字段中的Struts 2

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

它給下面的HTML表示(我指的是https://www.mkyong.com/struts2/struts-2-scheckbox-checkbox-example/)創建Struts2的複選框

<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> 

反正是有以消除創建隱藏的參數,因爲它導致我的應用程序的安全漏洞

+1

隱藏參數是一個特性,它被Checkbox攔截器使用。你認爲它創造了哪種安全漏洞? –

+0

@AndreaLigios MongoDB NOSQL注入。工具能夠將特殊字符附加到該隱藏參數並傳遞到後端。 – Kiran

+0

這只是一個隱藏的輸入。輸入但隱藏。只需輸入。您的*工具*可以爲任何輸入添加特殊字符。你需要清理你的輸入,而不是刪除隱藏的字段。 –

回答

1

它使用freemarker模板checkbox.ftl生成html輸出。您可以從源歸檔複製並修改此模板,然後使用templatetemplateDir屬性指向自定義模板。

或使用歸檔模板,但需要添加velocityvelocity-tools依賴關係。

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

謝謝你的幫助。 – Kiran

+0

@Kiran你也可以贊成接受的答案。 –