簡體   English   中英

如何在java中保護URL參數

[英]How to secure URL parameters in java

示例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瀏覽器。

如何保護參數值。

給我任何一個合適的例子。 因為我不知道java概念和google-app-engine概念。

真的我不知道SSL。 所以我需要用Example詳細解釋SSL。

我正在使用eclipse來開發我的應用程序。 請幫我。 謝謝。

您的代碼是可以訪問CSS(跨站點腳本)攻擊的頁面的典型示例。 使用HTTPS不會減輕這種影響。 相反,您需要在將任何輸入添加到頁面之前將其轉義。

例如,通過使用Apache Commons Lang庫中的StringEscapeUtils.escapeHtml()StringEscapeUtils.escapeJavaScript()

使用https不會以任何方式保護url參數。 如果要使參數安全,則必須將參數放在標題或正文中。 但是,如果你直接從瀏覽器撥打電話,你就不能把它放在標題中,因為它是一個GET請求。 +1到nfechner,用於在代碼中突出顯示XSS問題。

對於您的問題,這里有https可能的解決方法:

  • 而不是GEt調用使用POST調用,將此搜索以單獨的形式放在頁面中,並在其上使用HTTPS。
  • 如果你想使用GET請求,你必須將參數放在Headers中,創建一個搜索頁面,當用戶點擊搜索按鈕時,通過使用https調用將其傳入標題,對上面的資源進行ajax調用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM