• 김재원님 첫글쓰기뱃지획득

  • 김재원님 회원가입뱃지획득

  • 나의택님 첫글쓰기뱃지획득

  • 정성연님 회원가입뱃지획득

  • 정선진님 첫글쓰기뱃지획득

  • 정선진님 회원가입뱃지획득

  • Alexey님 첫글쓰기뱃지획득

  • Alexey님 회원가입뱃지획득

  • 조용준님 회원가입뱃지획득

  • TedKim님 첫글쓰기뱃지획득

  • TedKim님 회원가입뱃지획득

  • Sangbom님 첫글쓰기뱃지획득

  • 님 첫글쓰기뱃지획득

  • 님 회원가입뱃지획득

  • 님 첫글쓰기뱃지획득

CSRF 공격 방지 (사이트 간 요청 위조 방지법)

2013-07-13 09:02:58    댓글 2    조회 3,388    신고

CSRF 공격을 방지하려면 GET요청은 데이터 검색에만 허용하고 서버의 어떠한 데이터를 변경하지 말아야 합니다.


POST 요청 내용은 폼에 의한 요청을 보내는 사람과 서버가 결과를 처리할 상대가 동일임을 인식할 수 있도록 하기 위해 몇가지 임의의 값을 보내줍니다.


Yii는 POST에서 CSRF 공격을 방지하는 스키마를 구현하고 있습니다.


임의의 값을 쿠키에 저장하고 POST요청에서 전송된 값과 비교하는 것입니다.


초기상태에는 CSRF 방어는 비활성화되어 있습니다.


사용하려면 config 파일에 아래와 같이 설정하세요.



return array(
    'components'=>array(
        'request'=>array(
	        'enableCsrfValidation'=>true, 
        ),
    ),
);



그리고 폼 작성시 HTML form태그를 직접 쓰는 대신에 CHtml::form 으로 사용하여야 CSRF 검증을 사용할 수 있습니다.


CHtml::form 메서드는 hidden 필드에 임의의 값을 포함하여 전송하게 됩니다.