제목 | 외부서버에서 CI 컨트롤러 불러올때 | ||
---|---|---|---|
글쓴이 | 하하예에 | 작성시각 | 2016/07/28 14:59:29 |
|
|||
ci_site의 config 파일 $config['global_xss_filtering'] = TRUE; $config['csrf_protection'] = TRUE; $config['csrf_token_name'] = 'TK'; $config['csrf_cookie_name'] = 'CK'; $config['csrf_expire'] = 7200; $config['csrf_regenerate'] = FALSE; $config['csrf_exclude_uris'] = array( "http://www.php_site.com/brd_write.php" );
www.php_site.com/brd_write.php파일 include_once RATH.'/lib/class/CurlRequest.php'; try{ $params = array( 'url' => "http://www.ci_site.com/brd/api_brd_update", 'host' => '', 'header' => '', 'method' => 'POST', 'referer' => '', 'cookie' => '', 'post_fields' => array( 'mode' => 'create', 'title' => 'testtitle' ), 'timeout' => 20, ); $curl = new CurlRequest; $curl->init($params); $curl_result = $curl->exec(); if ($curl_result['curl_error']) throw new Exception($curl_result['curl_error']); if ($curl_result['http_code'] != '200') throw new Exception("HTTP Code = ".$curl_result['http_code']); if (!$curl_result['body']) throw new Exception("Body of file is empty"); echo $curl_result['body']; } catch (Exception $e) { print_r($e->getMessage()); print_r($curl_result); }
www.ci_site.com/brd/api_brd_update파일 public function api_brd_update() { $a_post = $this->input->post(); // print_r($a_post); // exit; }
안녕하세요 열심히 백단(?)을 공부하면서 프로젝트하는 1인입니다. 외부서버의 어드민에서 ci로 만든 서버에 데이터 컨트롤러에 접근해서 글을 저장시킬려고 이것저것 테스트해보고잇는데요. 막상해보니 403에러가 뜨길래 혹시몰라서 csrf_protection 를 false 를 해놓고 해보니 잘 넘어가더랍니다. true 한상태서 화이트리스트에도 등록했는데 왜 안될까요.. csrf를 사용하면서 외부서버와 통신은 힘든걸까요?
|
|||
다음글 | $this->load->view 인데 뷰는 ... (2) | ||
이전글 | 상단에 물음표라는 공백이 생기는대 검색도 해봤는대 저같... (6) | ||
변종원(웅파)
/
2016/07/28 16:36:53 /
추천
0
|
하하예에
/
2016/07/28 17:45:46 /
추천
0
그렇군요 감사합니다.^^
|
외부에서는 csrf값을 알수가 없으니 안될겁니다.
(외부에서 알 수 있다면 csrf protection 자체가 성립이 안되겠죠)
토큰 인증방식 검색해서 바꿔보세요. 대부분의 api는 토큰 인증방식 사용합니다.