如何防止CSRF
CSRF(Cross Site Request Forgeries):跨网站请求伪造攻击,也写为XSRF。攻击者伪造目标用户的HTTP请求,然后将此请求发送到有CSRF漏洞的网站,网站执行此请求后,引发跨站请求伪造攻击。攻击者利用隐蔽的HTTP连接,让目标用户在不注意的情况下单击这个链接,由于是用户自己点击的,而他又是合法用户拥有合法权限,所以目标用户能够在网站内执行特定的HTTP链接,从而达到攻击者的目的。
防范CSRF的方法:防范CSRF要比防范其他攻击更加困难,因为CSRF的HTTP请求虽然是攻击者伪造的,但是却是由目标用户发出的,一般常见的防范方法有如下几种:
1、检查网页的来源:检查$_SERVER[‘SERVER_NAME’]与 $_SERVER[‘HTTP_REFERER’]的主机名host是否相同。
2、检查内置的隐藏变量:例如:在表单中内置一个隐藏变量和一个session变量,然后检查这个隐藏变量和session变量是否相等,以此来判断是否同一个网页所调用。
3、使用POST,不要使用GET;传递表单字段时,一定要用POST,不要使用GET,处理变量也不要直接使用$_REQUEST。