【问题标题】:Hiding param of struts.xml values in Struts 2在 Struts 2 中隐藏 struts.xml 值的参数
【发布时间】:2015-08-24 04:31:07
【问题描述】:

有什么方法可以隐藏struts.xml 中的param 值,因为当我将它们从一个操作传递到另一个操作时它们在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 个属性的命名空间管理器中:User_IdPassword

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

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

有什么办法可以隐藏这些值或者网址可以设置为

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

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

【问题讨论】:

    标签: java url struts2 passwords url-parameters


    【解决方案1】:

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

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

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

    然后黑客会尝试使用彩虹表,哈希密码字典,为了防止这种情况,你会在哈希中添加一些盐。

    阅读更多:


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

    在登录页面中运行一个使用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>
    

    【讨论】:

      【解决方案2】:

      redirectAction 结果类型中包含的参数会反映在 URL 中。要从 URL 中删除它们,您需要从结果配置中删除它们。

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

      重定向后的另一个动作应该从会话中获取参数。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-10-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-23
        • 2018-09-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多