0

サンプル URL http://dineshlingam.appspot.com/guestbook?name=xxx&skills=zzz

サンプルコード

public class GuestbookServlet extends HttpServlet 
{
    public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException 
    {
        String userName = req.getParameter("name");
        String userSkills = req.getParameter("skills");
        if(userName != null && userSkills != null)
        {
            res.setContentType("text/plain");
            res.getWriter().println("Name : " + userName + ", Skills : " + userSkills);
        }
        else
            res.sendRedirect(req.getRequestURI());
    }
}

この URL を Web ブラウザに手動で入力しています。

パラメータ値を確保する方法。

適切な例を 1 つ挙げてください。Javaの概念とgoogle-app-engineの概念を知らないからです。

実は私はSSLを知りません。そのため、例を使用して SSL の詳細な説明が必要です。

アプリケーションの開発にEclipseを使用しています。私を助けてください。ありがとう。

4

2 に答える 2

1

あなたのコードは、CSS (クロスサイトスクリプティング) 攻撃を受けやすいページの典型的な例です。HTTPS を使用してもそれは緩和されません。代わりに、入力をページに追加する前にエスケープする必要があります。

たとえば、Apache Commons Lang ライブラリを使用して、から取得しますStringEscapeUtils.escapeHtml()StringEscapeUtils.escapeJavaScript()

于 2012-08-29T07:25:23.973 に答える
1

https を使用しても、url パラメーターは決して保護されません。安全にしたい場合は、ヘッダーまたは本文にパラメーターを配置する必要があります。ただし、これをブラウザから直接呼び出す場合は、GET リクエストであるため、ヘッダーにもボディにも配置できません。コード内の XSS の問題を強調するために nfechner に +1。

あなたの問題について、httpsで可能な回避策は次のとおりです。

  • GET 呼び出しの代わりに、この検索をページ内の別のフォームに入れて POST 呼び出しを使用し、その上で HTTPS を使用します。
  • GET リクエストを使用する場合は、パラメーターをヘッダーに配置し、検索ページを作成する必要があります。ユーザーが検索ボタンを押したら、https 呼び出しを使用してヘッダーに渡すことにより、上記のリソースへの ajax 呼び出しを行います。
于 2012-08-29T07:47:28.873 に答える