제목 | csrf 활성화 상태시 jquery 플러그인(filedrop) 이용 문제입니다. | ||
---|---|---|---|
카테고리 | CI 2, 3 | ||
글쓴이 | 꽈찌쭈 | 작성시각 | 2016/10/06 16:42:22 |
|
|||
php 에서 파일 업로드를 drag & drop을 이용한 개발 로직을 CI에서 구현하려고 합니다. 사용한 플러그인은 jquery filedrop : http://filedropjs.org/ 입니다. 해당 플러그인으로 구현한 view화면에서 upload 로직으로 넘길 시 csrf 관련 에러가 발생합니다. (csrf = TRUE로 사용중인데 form_open이 아닌 일반폼으로 넘길때 발생하는 에러) ajax 적용시 사용법을 찾아보니 hidden값을 직접 넣는 소스가 있어서 플러그인이 만든 form 이후에 스크립트를 이용하여 <input type="hidden" id="<?= $this->security->get_csrf_token_name() ?>" name="<?= $this->security->get_csrf_token_name() ?>" value="<?= $this->security->get_csrf_hash() ?>" /> 와 같이 소스에 넣었으나 되질 않네요. csrf를 FALSE로 설정하고 테스트 해보니 정상적으로 동작합니다.
config.php $config['csrf_protection'] = TRUE;
js fd.jQuery(); var options = { iframe: { url: 'files/upload' } } $("#dragFile").filedrop(options) .on('fdsend', function(e, files){ file.sendTo('files/upload'); }) .on('filedone', function(e, file, xhr){ DragFileUpload.Append(xhr.responseText); }) .on('fdiframedone', function(e, xhr){ DragFileUpload.Append(xhr.responseText); });
|
|||
다음글 | 디비에 값을 넣을 때 쌍따음표 처리를 어떻게 하나요? (4) | ||
이전글 | 페이지네이션에서 get파라미터 처리가 잘 안됩니다.. (4) | ||
꽈찌쭈
/
2016/10/06 17:46:26 /
추천
0
|
꽈찌쭈
/
2016/10/06 17:57:35 /
추천
0
@자문자답 특정 경로의 csrf를 off시켜야 할 것 같아서 검색을 해보았습니다. hook를 이용한 방법 : http://codeigniter-kr.org/bbs/view/tip?idx=13468&lists_style=
config에 추가하는 방법
if (stripos($_SERVER["REQUEST_URI"],'/controllers/method') === FALSE) { $config['csrf_protection'] = TRUE; }else{ $config['csrf_protection'] = FALSE; } |
계속 찾아보니 CI 3버전에서는
$config['csrf_exclude_uris'] 라는 옵션을 제공하네요
사용중인 버전은 2.x대라 사용할수가 없네요 ㅠㅠ