제목 | CI에 SameSite 적용 시 post 폼에서만 403에러가 발생하는 원인 | ||
---|---|---|---|
카테고리 | PHP | ||
글쓴이 | 정수리 | 작성시각 | 2024/07/15 14:22:38 |
|
|||
웹 취약점으로 '쿠키속성검사(Secure, httpOlny, Same Site), '로 발견되어 구글링과 포럼을 통해 http://ww.cikorea.net/bbs/view/qna?idx=22158&page=1&view_category=&lists_style=
$config['cookie_path'] = '/; SameSite=None;'; $config['cookie_secure'] = TRUE; $config['cookie_httponly'] = true;
위의 설정을 적용하고 페이지 전체적으로 기능 검사를 하고 있는데 post form의 경우 submit 시 403 에러가 발생합니다. get form의 경우 기능이 정상적으로 작동합니다.
위의 설정 경우 도메인 전체 쿠키에 대해 적용되는 것으로 알고 있습니다. 위의 cookie_path와 cookie_secure를 '/', false로 변경하면 post form도 정상적으로 작동합니다.
정확한 원인을 찾지 못해 글을 올리게 되었습니다. 테스트 환경이 https가 아니라서 그런거라고해도 get 폼도 작동을 안해야하는게 맞지 않을까요?
|
|||
다음글 | 코드이그나이터4 앱 설치후 안되요 (2) | ||
이전글 | CI4 쿼리빌더 질문입니다. (2) | ||
cilove
/
2024/07/16 09:14:02 /
추천
0
|
정수리
/
2024/07/16 10:12:14 /
추천
0
@cilove 답변감사합니다. ci3에서 csrf 옵션활성화했고 form헬퍼를 사용하면 자동으로 token값이 생성되고 같이 전송되는 상황입니다. $config['csrf_protection'] = TRUE; $config['csrf_token_name'] = 'csrf_token'; $config['csrf_cookie_name'] = 'csrf_cookie'; $config['csrf_expire'] = 7200; $config['csrf_regenerate'] = true; <?php echo form_open(current_url()); ?> ... ... <?php echo form_close(); ?>
|
cilove
/
2024/07/16 14:55:43 /
추천
0
아 제가 ci3는 안써봐서 ㅎㅎㅎ
csrf_regenerate를 false로 바꿔서 해봐도그런지 확인해보세요 |
darkninja
/
2024/07/17 22:52:05 /
추천
0
[Suggestion] same-site attribute for cookie #5791 https://github.com/bcit-ci/CodeIgniter/issues/5791 위 링크를 참고해 보세요 set_cookie 함수가 다르다면 최신버젼으로 바꾸면 해결될지도 모르겠네요. https://github.com/bcit-ci/CodeIgniter/blob/develop/system/core/Input.php |
해당 현상은 쿠키 문제가 아니라 csrf문제로 보입니다.
포스트 폼에 csrf 토큰을 포함 하도록 변경하세요.
http://ci4doc.cikorea.net/libraries/security.html?highlight=csrf#google_vignette