<form method="post" action="wmcjdjt/tx_mail.asp" id="form1" target="_blank">
     <textarea id="talk_text" class="talk_text" rows="8" cols="20" name="talk_text"></textarea>
            <input type="submit" value="提交">   
</form> 
在网站上有这么一个form表单提交,任何用户打开此网址就能写意见提交。   没有用户登录与注册。
别人给出安全评估报告是:存在跨站点请求伪造漏洞。这应该怎么解决啊 !谢谢各位大虾了!在线等

解决方案 »

  1.   

    CSRF如何防范呢?目前有两种思路。方案一:每个请求都带上一个由服务器生成的随机参数。然后在服务器端和对该参数,如果和下发的随机数不同,则可以认为有人在伪造请求。因为攻击者无法知道他本次攻击的http请求需要带什么样的随机数才是有效的。方案二:跨域伪造之所以能成功,主要决定因素是攻击者的页面和稍候被打开的目标页面共享session信息。受害者登录后,攻击者的页面通过ajax向被攻击网站的关键业务发起的请求便自动带上了合法的session信息。但是,根据javascript的同源策略可知,挂有A域名的窗口,不能获取挂有B域名窗口中的任何信息,不管B是如何被打开的。据此,我们有了另一套防范策略。在客户端的每个要保护的业务链接上增加一个参数sessionId,这个参数可以通过js从cookie中获得。然后,在务器端获取此参数,并同真正的sessionId做对比,如果不同,则认为请求是伪造的。因为攻击者的窗口无法从被攻击网站的窗口中取得这个sessionId。据说很多ajax框架都已经自带了此功能