前言

今天帮妹子搞毕设的时候,运行程序,登录账号是报session error这个错误。 查看后台控制信息,有个报错:

严重: A request has been denied as a potential CSRF attack.

然后百度搜索相关资料,得知报错是因为跨域?!我不知道这个说发对不对… 具体是请求被拒绝因为可能存在csrf(cross-site request forgeries,跨站请求伪造)攻击. 也就是说页面URL可能被跨站了的服务所调用.

解决

解决方案也很好解决了,在web.xml配置文件中dwr的配置中,修改如下:

    <servlet-name>dwr-invoker</servlet-name>
    <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
    <init-param>
      <param-name>debug</param-name>
      <param-value>true</param-value>
    </init-param>
    <!-- 新加corssDomainSessionSecurity参数 --> 
    <init-param>  
      <param-name>crossDomainSessionSecurity</param-name>  
      <param-value>false</param-value>  
    </init-param>

加入crossDomainSessionSecurity这个配置选项..这个参数是在dwr版本2.0才有的.默认值为true,也就是禁止其他域发送请求crossDomainSessionSecurity:设置成false能够从其他域进行请求.注意这样做会在安全性上有一些危险。

本博客所有内容采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可

转载文章请声明:DWR中的session error问题解决 : https://iiong.com/dwr-session-error-notes.html

分类: 编程技术

淮城一只猫

永远年轻,永远热泪盈眶

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*