【问题标题】:Struts 2 encription user name and passwordStruts 2 加密用户名和密码
【发布时间】:2013-06-17 10:16:30
【问题描述】:

在 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 中输入的未加密用户名和密码的情况下实现相同功能?

【问题讨论】:

  • 保持值不变的目的是什么?提交后的值就没用了。
  • 但是在后端处理请求时,用户可以看到他输入的原始值发生了变化
  • 那么您不应该更改用户输入的值,如果您在其他地方更改它,您已经从提交中删除了这些字段,因为您不想在网上发布未加密的字段,对吗?
  • 是的,我不想提交未加密的值,而是想提交加密的值。但我想阻止用户在后台看到这种情况

标签: java jsp encryption parameters struts2


【解决方案1】:

您应该将文本字段保留在您提交的表单之外。它应该阻止提交此字段,并且用户可以输入未更改的值。在您提交的表单中,保留每个文本字段的隐藏字段,并在提交之前将加密值放在那里。您可以在 oncklickonsubmit 事件中进行操作。

【讨论】:

  • 谢谢。在这种情况下,存在当前的 struts 2 验证,如果我将这两个字段移出表单,那么我必须手动进行这些验证,而不是使用 struts 2 验证知道。但是,如果您提出的方式是我的方案的唯一方式,那很好。
  • 真的我数不清这里有多少个场景,主要思想你不应该改变用户字段,那么你应该在操作表单之外输入用户字段而不提交它们,你可以制作另一个您在客户端上验证但不提交的表单。
  • 如果您想将所有内容保存在一个表单中,用户字段和隐藏字段,那么在提交之前您可以将用户字段标记为禁用,它也应该阻止他们提交。但它正在改变用户字段并且可能是值得注意的。
猜你喜欢
  • 2017-05-18
  • 2014-04-29
  • 2014-05-20
  • 2018-10-09
  • 2017-04-15
  • 2016-07-24
  • 2012-11-02
  • 2016-02-05
  • 1970-01-01
相关资源
最近更新 更多