| 제목 | csrf ajax사용시 403 (forbidden) error | ||
|---|---|---|---|
| 카테고리 | CI 2, 3 | ||
| 글쓴이 | 테스티드 | 작성시각 | 2017/08/06 18:18:24 |
|
|
|||
|
안녕하세요. codeigniter3로 웹 개발을 하고있는 사람입니다. 보안을 위하여 config.php에서 $config['csrf_protection'] = TRUE; 로 하였습니다. 그리고 모든 form을 form_open 으로 변경 하던 중, 심각한 오류를 확인하였습니다. 바로 ajax가 작동하지 않는 오류였습니다. 웹 요소검사에서 [Error] Failed to load resource: the server responded with a status of 403 (Forbidden) 오류가 ajax가 한번 작동 될 때마다 뜹니다. 제 ajax 구조입니다.
$(document).ready(function() {
updateAlram();
});
function updateAlram() {
$.ajax({
url : "<?php echo base_url(); ?>alram",
type : "post",
cache : false,
success : function(data) {
$('#tab1').html(data);
}
});
setTimeout("updateAlram()", 6000);
}
검색을 하여 data로 token값을 전달 해 주어야 한다는 것을 알았는데, 어떻게 전달해야 할지 도저히 이해가 안갑니다.
var post_data = {
'id' : id,
'<?php echo $this->security->get_csrf_token_name(); ?>' : '<?php echo $this->security->get_csrf_hash(); ?>'
};
이렇게 하고 ajax에 data: post_data로 넘기라는데 id에 무슨 값이 들어가야 될 지를 모르겠습니다. 이 방법이 맞는지 확신도 들지 않구요. 추가- 이 방법으로 하여 ajax 동작에 성공하였습니다. 하지만 $config['cookie_domain'] = '.localhost:8080'; 로 하면 ajax가 동작하고, 다른 form이 The action you have requested is not allowed. 오류가 나고, $config['cookie_domain'] = '.localhost' ; 로 하면 ajax가 동작하지 않고, 다른 form 이 정상 동작합니다. 이유가 뭘까요... 골치아픕니다, 선배님들의 조언을 구합니다. 읽어주셔서 감사합니다. |
|||
| 태그 | csrf,ajax | ||
| 다음글 | ci 2.x대에서는 쿼리문을 생성한후에 실행하지않고 쿼... (3) | ||
| 이전글 | 염치없지만 페이징 관련하여 또 질문드립니다.. (14) | ||
|
변종원(웅파)
/
2017/08/09 20:32:48 /
추천
1
참고하세요 http://cikorea.net/bbs/view/qna?idx=10582
|