gpt4 book ai didi

java - 在 Struts 2 中隐藏 struts.xml 值的参数

转载 作者:行者123 更新时间:2023-11-30 08:11:58 26 4
gpt4 key购买 nike

有什么方法可以隐藏 struts.xml 中的 param 值,因为当我将它们从一个 Action 传递到另一个 Action 时它们在 URL 上可见?

<action name="BackToManagerIndex" class="Action.LoginAction" method="ManagerList">         
<result type="redirectAction">
<param name="actionName">login</param>
<param name="namespace">../Manager</param>
<param name="User_Id">%{User_Id} </param>
<param name="Password">%{Password}</param>
</result>

在这里,每当 BackToManagerIndex 操作完成时,我会将其重定向到另一个名为 login 的操作,该操作位于具有 2 个属性的 namespace 管理器中:User_Id密码

一切都很好,但两个属性的值在 URL 上都可见

http://localhost:8084/MEMS/Manager/login.action?User_Id=abc%40gmail.com&Password=1234

有什么方法可以隐藏这些值或者可以将 URL 设置为

http://localhost:8084/MEMS/Manager/login.action ?

(我仍然应该在其他操作中获取值)

最佳答案

你永远不应该携带这样的密码,事实上你甚至不应该将它存储在 session 中。甚至不在数据库中。

您应该对其进行散列并将散列存储在数据库中,然后当用户输入密码登录时,您对插入的密码进行散列并将其与数据库中的散列进行比较。

这样,即使是您,系统和数据库管理员,也不知道用户的密码。

然后黑客将尝试使用彩虹表、散列密码字典,为了防止这种情况,您将向散列中添加一些盐。

阅读更多:


除了密码讨论之外,如果您想重定向时避免 url 中的参数出于用户体验原因(并且不是安全原因),除了将它们放在 Session 中你还可以

run a script in the landing page that make use of HTML5 History API:

<script>
// BEFORE:
// http://localhost:8084/MEMS/Manager/login.action?User_Id=abc%40gmail.com&Password=1234
window.history.pushState("","",window.location.pathname);
// LATER:
// http://localhost:8084/MEMS/Manager/login.action
</script>

关于java - 在 Struts 2 中隐藏 struts.xml 值的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30730639/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com