一、 前言
因为现代浏览器的工作机制原因,造成一种WEB攻击形态的存在, 这种攻击形式叫做CSRF攻击,以往我们是从攻击角度分析这种攻击的原理和操作。这次我们给出攻击原理同时,给出CSRF在服务器端的防御的解决方案。CSRF是现代WEB程序要面对的共通性问题,在很多流行的WEB框架中,都会将CSRF的问题直接在WEB框架层面解决。
我们先抛出CSRF这个问题,然后介绍基于时间与签名的防护手段,并且给出的这种防御手段的具体代码实现。过程中使用了Lua语言进行实现功能, LUA是一种容易理解的脚本语言,大家可以把Lua代码直接看成的伪语言描述工具,对于实现代码核心的加密函数,sha、base64这种函数,各大语言库都有支持, 如果各位老师想实践一下这种基于时间和签名的算法处理流程,本文最后给出了Lua平台上,各种对这些主要加密函数支持的库,老师们可以实际操作调试LUA代码,更深的体会防护处理流程。
二、 CSRF攻击原理
CSRF概念:CSRF跨站点请求伪造(Cross—Site Request Forgery),跟XSS攻击一样,存在巨大的危害性,你可以这样来理解:
攻击者盗用了你的身份,以你的名义发送恶