跳至内容

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())

// Specifying origins with using `origin` option
// string
app.use(csrf({ origin: 'myapp.example.com' }))

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

// Function
// It is strongly recommended that the protocol be verified to ensure a match to `$`.
// You should *never* do a forward match.
app.use(
  '*',
  csrf({
    origin: (origin) =>
      /https:\/\/(\w+\.)?myapp\.example\.com$/.test(origin),
  })
)

选项

可选 origin: string | string[] | Function

指定来源。

根据 MIT 许可发布。