CI 묻고 답하기

제목 post 로 값 넘길 때 #이 들어가면 403 에러가 납니다.
카테고리 CI 2, 3
글쓴이 perfume 작성시각 2021/04/15 07:32:52
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 8796   RSS

ajax를 이용해 FormData로 처리하고 있는 로직이 있습니다.

환경설정은

global_xss_filtering = TRUE,

csrf_protection = FALSE

이렇게 되어 있는 상태로 지금까지 작업해오던 사이트에서 url 인풋값을 넘길 때 값에 #이 들어가면 403 에러가 납니다.

$this->input->post('url', false));

식으로 해봤는데 근본적으로 403 에러가 나버리니 저 문제는 아닌거 같구요.

csrf를 사용해야 하나 했는데 그러면 이전 코드를 모두 수정해야 하는거 같아서 안될거 같구요.

 

다른 특수기호(!, @ 등)는 괜찮은데 #만 포함되면 403에러가 나는건 왜일까요? 어떻게 해결해야 할까요?

 다음글 세션 시간때 문제 (3)
 이전글 일반 쿼리 $this->db->query()... (3)

댓글

변종원(웅파) / 2021/04/15 07:56:04 / 추천 0

global_xss_filtering 끄고 테스트해보시고 

뷰와 컨트롤러 소스를 올리셔야 정확한 답변이 가능할 것 같네요.

perfume / 2021/04/15 08:07:59 / 추천 0

변종원님 답변 감사드립니다.

global_xss_filtering 는 끄고 테스트해봤는데 마찬가지이구요,

그리고 컨트롤러에 코드 모두 지우고 ajax로 넘겨도 403에러가 납니다.

그래서 컨트롤단 코드는 문제가 아닌거 같구요,

보니까 인풋값의 제일 마지막에 #이 붙으면 생깁니다.

아래는 뷰단 코드입니다.

 

for( var i=0; i<count; i++ ){
   ...

   formData.append( 'b_link[]',  $('.INPUT-b_link').eq(i).val() );
   ...
}
$.ajax({
  url           : url_link,
  type          : 'POST',
  cache         : false,
  contentType   : false,
  processData   : false,
  async		    : false,
  data          : formData,
  dataType	    : 'html',
  success       : function(data) {
    ...
  }
});

 

 

변종원(웅파) / 2021/04/15 08:42:53 / 추천 0
웹서버 로그, ci 로그도 참고하세요