如何在jsp中隐藏href中的参数值?

时间:2017-04-30 17:57:57

标签: java jsp

这是我的问题。我怎么能从网址隐藏参数的值?因为我不知道如何隐藏它。它继续像这样出现(http://localhost:8084/YIP/MentorServlet?action=peribadi&mentorid=951218-02-5598

<div id="mySidenav" class="sidenav">
  <a href="javascript:void(0)" class="closebtn" onclick="closeNav()">&times;
</a>
  <% String id=request.getParameter("mentorid");%>
  <li>
      <a href="MentorView.jsp">Utama</a>
  </li>
  <li>
      <a href="MentorServlet?action=peribadi&mentorid=<%=id%>">Peribadi</a>
  </li>

2 个答案:

答案 0 :(得分:1)

一些选项:

  • 什么也不做:这是最好的,因为没有安全隐藏HTML内容的东西。无论是谁查看页面源,都将看到如何调用有问题的servlet
  • 切换到表单和提交按钮,@alayor显示的内容。如果您使用POST,则参数不会显示在URL
  • 切换到表单,但保留锚点的外观并从JavaScript提交表单(some docs some overcomplicated examples
  • 从目标网页(docs1docs2
  • 操纵浏览器历史记录
  • 将mentorid保留在服务器端的会话变量中:黑客永远不会看到它
  • 将mentorid保存在加密的cookie中:黑客看到它,但无法解码。但是,他们可以稍后重试(replay attack
  • 我忘记和/或从未听说过的其他各种

答案 1 :(得分:0)

您可以创建HTML而不是锚点。

<div id="mySidenav" class="sidenav">
  <a href="javascript:void(0)" class="closebtn" onclick="closeNav()">&times;
</a>
  <% String id=request.getParameter("mentorid");%>
  <li>
      <a href="MentorView.jsp">Utama</a>
  </li>
  <li>
     <form action="/MentorServlet" method="POST">
       <input type="hidden" name="action" value="peribadi" />
       <input type="hidden" name="mentorid" value="<%=id%>" />
       <button>Peribadi</button>
     </form>
  </li>

通过这种方式,您可以避免在URL中发送参数,而是将其发送到HTTP请求正文中。