it 언어 노트/ci3

ci3) The action you have requested is not allowed 해결책

윤비버 2024. 8. 24. 16:00
728x90

안녕하세요 비버팩토리입니다.

 

이번에 ci3로 작업을 하다가 보안을 신경 쓰려고 csrf를 활성화시켰습니다.

그러다가 The action you have requested is not allowed.  라고 발견 했습니다.

과정은 이렇습니다. 

관리자 페이지랑 프런트 페이지 둘 다 브라우저 창에 열어둔 상태인데, 어드민 페이지에서 설정 일부를 변경하고 폼 서브밋을 한 후에 프런트단에서 로그아웃을 합니다.

관리자 페이지 브라우저로 새로고침을 하면 The action you have requested is not allowed.라고 나옵니다.

혹시나 개발 모드 수정을 하면 증상이 없어지는가 하고 했는데  development => production 이것 또한 아니었습니다.

 

그렇다고 보안을 해제하면 안되고 해서 구글링을 통해서 ci 포럼에서 서치 했습니다.

https://forum.codeigniter.com/post-362426.html

 

$config['csrf_protection'] = FALSE; if true my website error

03-10-2019, 09:01 AM (This post was last modified: 03-10-2019, 09:02 AM by dave friend.) (03-10-2019, 08:37 AM)kelapamuda Wrote: Hello, I already have a website running well, but in order to make it securer , I do this : In config php, it comes   $config

forum.codeigniter.com

 

 

여기서 중간에 데이브 친구 라는분의 답변을 보면 아래 내용에서 힌트를 찾았습니다.

 

$config['csrf_regenerate'] = FALSE;

 

이건 자주 토큰을 변경 하지 않아야되서 false로 변경합니다.

 

그리고 나머지는 일부 페이지 제외를 하면됩니다.

$config['csrf_exclude_uris'] = array('your_controller/and_method');

 

저는 어드민만 제외시켰습니다.

그러고 다시 여러 번 테스트를 했는데 다시는 그런 증상이 나오지 않았습니다.

 

 

끝!

728x90