問題描述:
算是一個最簡單的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能夠從其他域進行請求.注意這樣做會在安全性上有一些冒險.