Skip to content

CSRF 보호

CSRF 보호 미들웨어는 요청 헤더를 검사하여 CSRF 공격을 방지한다.

이 미들웨어는 폼 엘리먼트를 통해 제출되는 CSRF 공격을 방어한다. Origin 헤더의 값을 요청된 URL과 비교하여 검증한다.

Origin 헤더를 보내지 않는 오래된 브라우저나, Origin 헤더를 제거하는 리버스 프록시를 사용하는 환경에서는 제대로 동작하지 않을 수 있다. 이러한 환경에서는 다른 CSRF 토큰 방식을 사용해야 한다.

Import

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[] | Function

오리진을 지정한다.

Released under the MIT License.