问题描述:
算是一个最简单的dwr的入门demo.也是按照dwr的入门demo写的..但是在运行的时候却出现了下面的问题.
前台页面跳出session error的对话框
而控制台则输出:
2007-5-29 11:58:53 org.directwebremoting.util.CommonsLoggingOutput error
严重: A request has been denied as a potential CSRF attack.
的错误信息.
请求被拒绝因为可能存在csrf(cross-site request forgeries,跨站请求伪造)攻击.
也就是说页面URL可能被跨站了的服务所调用.
例如:自己页面的一个图片.可能被其他站直接通过[img]....[/img]来引用.
页面则显示
后来上网找到了解决方法:
在web.xml配置文件中..
dwr的配置:
<servlet>
<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>
<init-param>
<param-name>crossDomainSessionSecurity</param-name>
<param-value>false</param-value>
</init-param>
</servlet>
加入corssDomainSessionSecurity这个配置选项..这个参数是在dwr版本2.0才有的.默认值为true,也就是
禁止其他域发送请求.
corssDomainSessionSecurity:设置成false能够从其他域进行请求.注意这样做会在安全性上有一些冒险.
分享到:
相关推荐
8. **Error Handling**:DWR提供了一套错误处理机制,包括在JavaScript中处理服务器端抛出的异常。 这个基础教程可能涵盖了如何设置DWR环境、创建Callee对象、配置DWR引擎、在HTML页面中引入Caller库、调用Java方法...
5. **Session Management**:DWR能够识别和管理用户会话,这在推送技术中尤其重要,因为推送通常需要基于用户身份来定向消息。 6. **Error Handling**:正确处理错误是任何应用的关键,DWR也不例外。开发者需要配置...
在解决Session Error的过程中,我们需要了解Session的工作机制和Session的安全机制。 Session是JavaWeb项目中的一个核心组件,它用于存储用户的会话信息。Session的工作机制是基于Cookie的, когда用户访问...
6. **Security and Session Handling**: DWR提供了一套安全机制,包括基于会话的认证和权限控制,确保只有合法用户能订阅和接收推送消息。 7. **Error Handling**: 在实现推送时,错误处理非常重要。DWR提供了错误...
error: function(error) { // 处理错误的回调 } }); ``` 5. **安全与优化**:为了防止跨站脚本攻击(XSS)和跨站请求伪造(CSRF),DWR提供了安全机制,如设置session ID和跨域限制。同时,通过缓存和批处理等...
<creator id="new" class="uk.ltd.getahead.dwr.create.NewCreator"/>DWR已经将这配置到了内置的dwr.xml文件中,并不需要进行额外的配置. Creator通过调用类的默认的构造方法创建实例.应用new creator有以下几个优点:...
对于DWR的配置,我们需要在Web应用的web.xml中配置DWR的Servlet。这里需要设置`dwr-engine-filter`和`dwr-filter`,以及DWR的Servlet `dwr-invoker`。同时,创建DWR的配置文件dwr.xml,其中声明允许与JavaScript交互...
error: function() { // 错误处理 } }); ``` 这里的“二级联动”通常是指在两个或多个下拉框之间,根据用户在一个下拉框中的选择自动更新另一个下拉框的内容。例如,一个省份列表和对应的城市列表。在DWR的帮助...
在DWR.xml中,主要包含以下几个关键部分: 1. **允许访问的Java类和方法:** DWR允许开发者指定哪些Java类和方法可以暴露给JavaScript调用。这通过`<allow>`标签来实现。例如: ```xml ``` 上述配置...
比如,服务器生成一个唯一的令牌,将其存储在session中,并发送给客户端。客户端在提交请求时携带该令牌,服务器检查令牌的有效性,确保请求的唯一性。 2. **Oracle分页语句**:Oracle中常用ROWNUM配合子查询进行...
### 整合中常见的问题及解决方法 #### 使用Myeclipse整合时在工程中加入各框架的顺序 **步骤1**: 添加Spring框架的依赖。 **步骤2**: 添加Hibernate框架的依赖。 **步骤3**: 添加Struts框架的依赖。 **步骤4**:...
如何配置自定义错误页面(Custom Error Pages) 配置Jetty Statistics(统计) 配置Jetty Statistics教程 配置Request Log教程 Java-monitor 故障排除 如何使用Jetty Dump Feature(特性) Webtide Blog–Jetty ...
// 分解客户端发来的控制信息中的命令和参数 string command = receiveString; string param = string.Empty; int index = receiveString.IndexOf(' '); if (index != -1) { command = receiveString....