제목 | csrf_protection 옵션 질문입니다 | ||
---|---|---|---|
카테고리 | CI 2, 3 | ||
글쓴이 | damian | 작성시각 | 2017/06/13 09:04:23 |
|
|||
안녕하세요, 코드이그나이터 고수님들! 여기에 질문은 처음 올려보는 것 같네요! 반갑습니다^^
CSRF 기능을 사용중인데 한가지 불편사항이 있어서 질문남겨봅니다!
$config['csrf_protection'] = TRUE; $config['csrf_expire'] = 7200; $config['csrf_regenerate'] = TRUE;
이렇게 현재 사용중인데, 브라우저 뒤로가기를 실행하면 CSRF HASH 값이 재갱신되지 못해 403 에러가 뜨는것 같습니다.
1. 옵션중 regenerate를 FALSE 처리하면 해당 문제가 발생하진 않지만... 이왕이면 요청마다 재갱신시켜주는게 좀더 보안에 좋을 것 같아 TRUE 값을 쓰고싶은데ㅜㅜ 그러면 뒤로가기가 안먹고... 이런 경우 어떤 방식으로 처리하는게 좋을까요? 아니면 다른 보안책이 있을까요?
2. csrf_regenerate 값을 TRUE한것과 FALSE 한것의 차이가 큰가요?
두서없이 답답함을 써내려가느라 정리가 안된 글인데 읽어주셔서 감사하며, 작은 조언이라도 부탁드립니다^^ 감사합니다. |
|||
다음글 | $_SESSION으로 세션 설정이 안되요 (4) | ||
이전글 | sql 인젝션 질문 드립니다. (1) | ||
변종원(웅파)
/
2017/06/13 09:41:26 /
추천
0
|
매뉴얼에 나와있다시피 두마리 토끼를 다 잡을 수 없습니다.
토근은 매 서브밋 때마다 재생성할 수 있습니다. 또는 하나의 CSRF 쿠기 값을 통해 계속 같은 값을 유지할 수 있습니다. 토큰 재생성을 기본으로 할 시 더 강력한 보안을 유지합니다. 그러나 유효하지 못한 토근값이 되버릴 수 있습니다(뒤로가기, 앞으로이동, 여러 탭/윈도우 사용, 비동기화 작업, 등).. 다음 구성 매개변수를 변경하여 동작을 변경할 수 있습니다
아래 글 참고해보세요. 에러를 노출하는게 아니라 화면을 갱신하도록 하고 있습니다.
보안수위를 조금 낮추면서 추가작업없이 사용할지, 보안수위를 유지하면서 추가작업(갱신시 데이터 보존)을 할지는
정책결정이 필요하겠네요.
http://www.johnkieken.com/how-to-handle-an-expired-csrf-token-after-a-page-is-left-open/