【问题标题】:Restrict Access to DWR(Easy Ajax for Java) from URL bar限制从 URL 栏访问 DWR(Java 的 Easy Ajax)
【发布时间】:2015-03-10 13:26:30
【问题描述】:

我使用的是DWR,也就是俗称的Easy Ajax for Java。

但是可以像这样通过URL bar直接访问

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

从这里我可以执行每一个Ajax Call,这被认为是对应用程序安全的威胁,

有没有办法限制这个?

【问题讨论】:

    标签: java ajax dwr


    【解决方案1】:

    我不确定您要完成什么,但这里有一些建议:

    在web.xml 中的 servlet 声明中。将 param-value 设置为 false,http://localhost:8080/myProjectName/dwr/ 将返回 404(找不到页面)。

    • 即使您禁用调试模式,仍然可以运行您的函数。这就是为什么您可以在drw.xml 中限制哪些类以及这些类的哪些功能可从网络获得。有关dwr.xml 的详细信息,请查看DWR documentation

    • 请记住,每个公开可用的功能都应检查是否允许用户运行它。我通常会创建这样的函数:

      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 发布的每个函数中,首先确保允许用户运行它,然后检查用户可能传递的任何参数是否有效。

    • 更新:还可以使用 filters 限制对函数的访问。

    【讨论】:

    • 谢谢,正是我需要的!!
    猜你喜欢
    • 2015-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-17
    • 2019-02-15
    • 2016-10-19
    • 2014-02-05
    • 1970-01-01
    相关资源
    最近更新 更多