- 정보공유
[씨아이보드팁] [씨아이보드] back-end 처리로 결과값을 받아야 하는경우
무조건 csrf_verify 를 호출하여 토큰값이 존재하지 않을경우 오류를 출력합니다.
그런데 back-end 로 결과값을 받아야하는경우 토큰값을 넘겨주지 않으므로 오류가 납니다.
/application/core/CB_Security.php 파일에서
토큰 유효성검사가 필요없는 클래스 또는 메소드를 비교대상에서 제외시킵니다.
if (!isset($_POST[$this->_csrf_token_name], $_COOKIE[$this->_csrf_cookie_name]) OR $_POST[$this->_csrf_token_name] !== $_COOKIE[$this->_csrf_cookie_name]) // Do the tokens match?
{
$this->csrf_show_error();
}
를
if ( $class != 'eximbay' && (!isset($_POST[$this->_csrf_token_name], $_COOKIE[$this->_csrf_cookie_name]) OR $_POST[$this->_csrf_token_name] !== $_COOKIE[$this->_csrf_cookie_name])) // Do the tokens match?
{
$this->csrf_show_error();
}
로 변경
가장 정상적인 방법.
리턴 url 을 application/config/config.php 에서 csrf 예외목록에 추가.
$config['csrf_exclude_uris']
The action you have requested is not allowed. 라는 메시지가 나올경우 위의 문제라고 보시면됩니다.