2017-04-30 7 views
0

ここは私の問題です。 URLからパラメータの値を隠すにはどうすればよいですか?私はそれを隠す方法を知らないので。それは、あなたが代わりにアンカーのためのHTMLを作成することができ、このように(http://localhost:8084/YIP/MentorServlet?action=peribadi&mentorid=951218-02-5598jspのhrefでパラメータ値を非表示にするにはどうすればよいですか?

<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> 
+0

を聞いたことがない他のさまざまなもの

  • replay attack)後でそれを再利用してみてくださいGETメソッドの代わりにPOSTメソッドを使用しています。 htmlでそれを行うには、フォームを使用して、値を入力タイプとして非表示にしてください。 – Juan

  • +0

    "hide"を定義するURLに存在しないか、ユーザーがアクセスできないようにしますか? – njzk2

    +0

    ちょうどURLに存在しない –

    答えて

    0

    出現し続けます。

    <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リクエストボディで送信されます。

    +0

    私は試しましたが、値はまだそこにあります。 –

    1

    いくつかのオプションは:

    • 何もしない:これは、しっかりとHTMLで何かを隠してそのような事がないよう、最善の一つです。誰かがページソースを調べると、問題のサーブレットをどのように呼び出すことができるかがわかります。
    • フォームと送信ボタン、何か@alayorが示すものに切り替えることができます。あなたはPOSTを使用する場合、パラメータは、フォームにURLで
    • スイッチを表示されませんが、ターゲットページ(docs1から、ブラウザの履歴を操作
    • some docssome overcomplicated examples)アンカーのルックスを維持して、JavaScriptからフォームを送信しますdocs2
    • サーバー側のセッション変数にmentoridを保つ:ハッカーは
    • それを見たことがない暗号化されたCookieにmentoridを保つ:ハッカーはそれを見るが、解読することはできません。しかし、彼らは私があなたがURLに表示されないパラメータにreffer場合は、それを送信する必要が忘れおよび/または約
    関連する問題