簡體   English   中英

限制從URL欄訪問DWR(Easy Ajax for Java)

[英]Restrict Access to DWR(Easy Ajax for Java) from URL bar

我正在使用DWR ,通常稱為Easy Ajax for Java

但是可以像這樣通過URL bar直接訪問它

http://localhost:8080/myProjectName/dwr/

從這里我可以執行每個Ajax Call ,這被認為是對應用程序安全的威脅,

有沒有辦法限制這一點?

我不確定您要完成什么,但是這里有一些建議:

web.xml中的servlet聲明中。 將param-value設置為false,並且http:// localhost:8080 / myProjectName / dwr /將返回404(找不到頁面)。

  • 即使禁用調試模式,仍然可以運行功能。 這就是為什么您可以在drw.xml從Web上限制哪些類以及這些類的哪些功能。 有關dwr.xml詳細信息,請參閱DWR文檔。

  • 請記住,每個可用的公共功能都應檢查是否允許用戶運行它。 我通常創建一個這樣的函數:

     private void getLoggedInUser(){ WebContext ctx = WebContextFactory.get(); HttpSession session=ctx.getSession(); if(session.getAttribute("loggedIn")!=null && (Boolean)session.getAttribute("loggedIn")==true){ if(session.getAttribute("user")!=null){ try{ return (Person)session.getAttribute("user"); }catch (ClassCastException ex){ return null; } }else{ return null; } }else{ return null; } } 

然后在通過網絡提供的每個功能的開頭,我都會做類似的事情

    Person user=getLoggedInUser();
    if(user)==null return null;
  • 切記,您的網站訪問者可以操縱javascript。 如果通過dwr發布函數,請假定任何人都可以調用它。 我對此不太強調:在通過dwr發布的每個函數中,首先要確保允許用戶運行它,然后檢查用戶可能傳遞的任何參數是否有效。

  • 更新:也可以使用過濾器限制對功能的訪問。

暫無
暫無

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

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