Skip to content

CSRF 保护

CSRF 保护中间件通过检查请求头来防止 CSRF 攻击。

该中间件通过将 Origin 头的值与请求的 URL 进行比较,来保护免受诸如通过表单元素提交的 CSRF 攻击。

不发送 Origin 头的旧浏览器,或使用反向代理来移除 Origin 头的环境,可能无法正常工作。在这种环境中,请使用其他 CSRF 令牌方法。

导入

ts
import { Hono } from 'hono'
import { csrf } from 'hono/csrf'

用法

ts
const app = new Hono()

app.use(csrf())

// 使用 `origin` 选项指定来源
// string
app.use(csrf({ origin: 'myapp.example.com' }))

// string[]
app.use(
  csrf({
    origin: ['myapp.example.com', 'development.myapp.example.com'],
  })
)

// 函数
// 强烈建议验证协议以确保与 `$` 匹配。
// 你*绝不*应该进行前向匹配。
app.use(
  '*',
  csrf({
    origin: (origin) =>
      /https:\/\/(\w+\.)?myapp\.example\.com$/.test(origin),
  })
)

Options

可选 origin: string | string[] | Function

指定来源。

根据 MIT 许可证发布。