首先看一个 CSRF 的栗子:

    代码 12.1.1 CSRF 攻击栗子

    代码 12.1.1直接保存为一个 html,用 chrome 打开即可测试。

    同时留意到代码中有一个 iframe 标签,而且是被隐藏的,由于我们使用表单来提交数据,但是正常情况下表单提交完成后网页会跳转,所以为了不露馅,我们将表单跳转后的网页导向到这个 iframe 中。

    点击 告诉美女 按钮,然后在开发者工具中查看 iframe 的 html 内容,会发现里面显示 403,这是由于我们使用了 csurf 这个包来防御扩展攻击。我们来看看关键代码:

    代码 12.1.2 文件 csrf_filter.js

    代码 12.1.3

    同时,我们在 jquery 中做一个 ajax 全局配置:

    代码 12.1.4

    如果想做一个对比测试的话,将代码 app.js 中的第49行 注释掉,我们点击 告诉美女 之后就会在数据库中插入一条记录。