在Struts2应用程序中,我使用JCription加密用户名和密码。当用户单击提交按钮时,我调用JavaScript函数,然后使用加密的用户名和密码提交表单。在这个JavaScript函数中,我将如下设置加密的用户名和密码,以便在操作类中检索它们并解密。
document.getElementsByName("user.login")[0].value=encryptedValue;
以下是用户名和密码所在的JSP文件,
<s:textfield name="user.login" maxlength="20" size="20"/>
<s:fielderror>
<s:param value="%{'user.login'}" />
</s:fielderror>
上述做法的全部意思是消除黑客在发布时检查请求中的用户名和密码。
问题是,一旦用户点击提交按钮,登录名和密码字段将在登录名和密码字段中更改为加密的十六进制值,因为我的上述分配。如何通过更改用户最初在UI中输入的非加密用户名和密码来实现相同的目的?
答案 0 :(得分:1)
您应该将文本字段保留在您提交的表单之外。它应该阻止提交此字段,并且用户可以输入未更改的值。在您提交的表单中,保留每个文本字段的隐藏字段,并在提交之前将加密值放在那里。您可以执行oncklick
或onsubmit
个事件。