크로스 사이트 요청 위조 (CSRF)는 사이버 공격의 일반적인 방법입니다. 공격자는 로그인 된 웹 사이트에서 사용자 인증 정보를 이용하여 악의적 인 요청을 시작하도록합니다. CSRF 공격을 효과적으로 방지하기 위해 슬림 프레임 워크는 미들웨어를 사용하여 보호를위한 메커니즘을 제공합니다. 이 기사는 설치 단계, 미들웨어 생성, 응용 프로그램 구성 및 CSRF 토큰 확인을 포함하여 슬림 프레임 워크에서 CSRF 보호를 구현하는 방법에 대한 자세한 설명을 제공합니다.
먼저 작곡가를 통해 슬림 프레임 워크를 설치해야합니다. 새로운 슬림 프로젝트를 만들려면 터미널에서 다음 명령을 실행하십시오.
작곡가 생성 프로젝트 슬림/슬림 내 마이 아프
슬림 프레임 워크에서는 미들웨어 메커니즘을 통해 CSRF 보호를 처리 할 수 있습니다. 이렇게하려면 csrfmiddleware.php 라는 미들웨어 파일을 만들어야합니다. 먼저 Project Root 디렉토리에서 MiddleWares 라는 디렉토리를 작성하고 CSRFMiddleware.php 파일을 만듭니다.
다음은 CSRF Middleware의 코드 예입니다.
<?php namespace App\Middlewares; class CsrfMiddleware extends SlimMiddlewareAntiCsrf { public function call() { $this-> app-> hook ( 'slim.before', [$ this, 'check']); $ this-> next-> call (); } 공개 기능 validatestorage () { if (! $ this-> app-> view ()-> getData ( 'csrf_key') || ! $ this-> app-> view ()-> getData ( 'csrf_value')) { $ this-> app-> getLog ()-> error ( 'CSRF 유효성 검사 오류 : 누락 된 CSRF 키 및/또는 값'); $ this-> app-> pass (); } } }
다음으로 슬림 한 응용 프로그램에서 방금 만든 CSRF 미들웨어를 등록해야합니다. 미들웨어를 등록하려면 다음 코드를 index.php 파일에 추가하십시오.
$ app = new Slimapp (); ... $ app-> add (새 app \ middlewares \ csrfmiddleware ()); ... $ app-> run ();
CSRF 공격으로부터 양식을 보호하려면 CSRF 토큰을 양식에 추가해야합니다. 이것은 숨겨진 필드를 양식에 삽입하여 달성됩니다. 다음은 CSRF 토큰 추가를위한 샘플 코드입니다.
<form action="/submit" method="post"> <input type="hidden" name="csrf_key" value="{{ csrf_key }}"> <input type="hidden" name="csrf_value" value="{{ csrf_value }}"> <!-- 다른 형태의 필드 --> <button type="submit">제출하다</button> </form>
서버 측에서 제출 된 요청의 CSRF 토큰이 유효한지 확인해야합니다. 다음은 예제 라우팅 프로세서 코드입니다.
$ app-> post ( '/제출', function ($ request, $ responsk) { $ data = $ request-> getParsedBody (); // 요청 매개 변수 가져 오기 // csrf token $ csrf_key = $ data [ 'csrf_key']; $ csrf_value = $ data [ 'csrf_value']; if (! $ app-> csrf-> check ($ csrf_key, $ csrf_value)) { // CSRF 토큰 검증 실패 $ response-> getBody ()-> 쓰기 ( 'CSRF 유효성 검증 실패'); 반환 $ $ 응답-> Withstatus (403); } // 프로세스 양식 제출 // ... $ response-> getbody ()-> write ( '성공적으로 제출 된 양식'); 반환 $ 응답; });
슬림 프레임 워크에서 미들웨어를 사용하면 CSRF 보호를 쉽게 구현할 수 있습니다. 먼저 CSRF 미들웨어를 작성하여 토큰을 확인하고 처리 한 다음 CSRF 토큰을 양식에 추가하여 사용자 요청의 보안을 보장합니다. 이러한 방식으로 슬림 프레임 워크는 CSRF 공격을 효과적으로 방지하고 응용 프로그램의 보안을 향상시킬 수 있습니다.