首页 理论教育 PHP+SQLServer项目开发中防止CSRF攻击

PHP+SQLServer项目开发中防止CSRF攻击

时间:2023-11-02 理论教育 版权反馈
【摘要】:CSRF跨站请求伪造cross site request forgery。伪造的请求可以很多方面,发邮件、改密码、返回用户信息、交易等等,所以相对于xss攻击来说csrf危害更严重。当然对于用户体验来说这是不可取的,可以优化的是判断到一些网址是安全直接可以显示,而可疑的才提示或禁止。防止csrf也可以用防xss的方法。

PHP+SQLServer项目开发中防止CSRF攻击

CSRF跨站请求伪造cross site request forgery。

1.CSRF原理

(1)A登录Site1(如现在网民常上的淘宝、微博、QQ等),产生一些信息,session、cookies等等,且一直保持没退出。

(2)A再登录Site2(如一些成人网等,至于怎么跑到Site2,多数是Site通过些手段,邮件欺骗等),打开site2的浏览器和打开site1的一样,否则无效

(3)Site2站中伪造了Site1的http请求(如修改密码,买东西,转账等),Site1的服务器误以为A在site1的正常操作(因为同浏览器且A还没登出),然后就运行了请求,那么csrf已成功操作。

csrf和xss很相似。xss也能伪造请求,csrf也能制造脚本。

伪造的请求可以很多方面,发邮件、改密码、返回用户信息、交易等等,所以相对于xss攻击来说csrf危害更严重。

2.防范方法(www.xing528.com)

(1)严密操控执行入口

执行一些敏感操作比如改密码这些操作前判断请求来源,只有本站服务器发的请求才可以执行。判断方法可以判断ip来源。非本站服务器ip不会执行。

(2)本站有外链的话做些必要操作

一般site2的hacker会在site1(比如论坛里)里发欺骗连接,因为在site1诱骗的相关人员一般都登录site1了,满足csrf气体条件之一。

如当你点击QQ邮件里面的长外链时候,回跳转到一个页面提示“有风险”之类,这样不仅可以减低跳出率,一些不懂的人看到这样的提示,若不是非必要而是处于好奇点击的连接一般不会继续点击访问;还有是QQ邮件正文里的图片在加载内容时是不加载图片的,要点击“显示图片”按钮才显示图片,这里一个原因之一就是避免攻击。

当然对于用户体验来说这是不可取的,可以优化的是判断到一些网址(如QQ本身网址)是安全直接可以显示(不用提示),而可疑的才提示或禁止。

(3)防止csrf也可以用防xss的方法。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈