CI 묻고 답하기

제목 외부서버에서 CI 컨트롤러 불러올때
글쓴이 하하예에 작성시각 2016/07/28 14:59:29
댓글 : 2 추천 : 0 스크랩 : 0 조회수 : 15965   RSS
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

외부에서는 csrf값을 알수가 없으니 안될겁니다.

(외부에서 알 수 있다면 csrf protection 자체가 성립이 안되겠죠)

토큰 인증방식 검색해서 바꿔보세요. 대부분의 api는 토큰 인증방식 사용합니다.

하하예에 / 2016/07/28 17:45:46 / 추천 0
그렇군요 감사합니다.^^