교차 사이트 요청 위조(CSRF)는 악성 웹 사이트가 사용자를 대신하여 합법적인 웹 사이트에 요청을 보내는 공격 유형입니다. 인증된 사용자. 이를 통해 공격자는 비밀번호 변경, 사기 구매 등 사용자가 의도하지 않은 작업을 실행할 수 있습니다.
예방하는 데 사용할 수 있는 몇 가지 기술이 있습니다. 다음을 포함한 PHP의 CSRF 공격:
1. 쿠키뿐만 아니라 GET 및 POST 매개변수에도 인증 요구
이 조치는 GET 및 POST 매개변수 모두에 유효한 인증 토큰이 있어야 함을 통해 인증된 사용자를 대신하여 요청을 보내는 악의적인 웹사이트의 능력을 제한합니다. 요청의 POST 매개변수
2. HTTP Referer 헤더 확인
HTTP Referer 헤더에는 현재 페이지를 참조한 페이지의 URL이 포함되어 있습니다. Referer 헤더를 확인하면 요청이 합법적인 소스에서 왔는지 아니면 악의적인 웹사이트에서 왔는지 감지할 수 있습니다.
GET 및 POST 유효성 검사 매개변수
Kohana에서는 Valid::not_empty() 규칙을 사용하여 GET 및 POST를 검증할 수 있습니다. 비어 있지 않은지 확인하는 매개변수입니다. 예:
$rules = array( 'get_param' => array( array('not_empty') ), 'post_param' => array( array('not_empty') ) ); $validation = Validation::factory($request->query() + $request->post()) ->rules($rules); if (!$validation->check()) { // CSRF attack detected }
HTTP 리퍼러 헤더 확인
Kohana에서는 Request::referrer() 메소드를 사용하여 참조 URL을 가져올 수 있습니다. 페이지. Referer 헤더가 유효한지 확인하려면 예상 값과 비교할 수 있습니다.
$referrer = $request->referrer(); if ($referrer !== $expected_referrer) { // CSRF attack detected }
일회성 토큰 사용
가장 효과적인 방법 CSRF 공격을 방지하는 것은 일회성 토큰을 사용하는 것입니다. 이 토큰은 서버에서 생성되어 세션에 저장됩니다. 사용자가 양식을 제출하면 토큰이 요청에 포함됩니다. 그런 다음 서버는 토큰을 확인하고 토큰이 유효한 경우 요청을 완료합니다.
Kohana에서 일회성 토큰을 구현하려면 다음 단계를 사용할 수 있습니다.
위 내용은 PHP에서 CSRF(교차 사이트 요청 위조) 공격을 방지하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!