CSRF 保护
CSRF 保护中间件通过检查请求头来防止 CSRF 攻击。
这个中间件通过比较 Origin
请求头的值和请求的 URL,来防御 CSRF 攻击,例如通过表单元素提交的攻击。
不发送 Origin
请求头的旧浏览器,或者使用反向代理移除 Origin
请求头的环境,可能无法很好地工作。在这些环境中,请使用其他的 CSRF token 方法。
导入
ts
import { Hono } from 'hono'
import { csrf } from 'hono/csrf'
用法
ts
const app = new Hono()
app.use(csrf())
// 使用 `origin` 选项指定来源
// 字符串
app.use(csrf({ origin: 'myapp.example.com' }))
// 字符串数组
app.use(
csrf({
origin: ['myapp.example.com', 'development.myapp.example.com'],
})
)
// 函数
// 强烈建议验证协议以确保与 `$` 匹配。
// 你*绝不*应该进行前向匹配。
app.use(
'*',
csrf({
origin: (origin) =>
/https:\/\/(\w+\.)?myapp\.example\.com$/.test(origin),
})
)
选项
optional origin: string
| string[]
| 函数
指定来源。