sql문 글쓰기 폼 406 에러 질문드립니다.

sql문 글쓰기 폼 406 에러 질문드립니다.

QA

sql문 글쓰기 폼 406 에러 질문드립니다.

본문

아까 너무 두서없이 올려서 정말 죄송합니다.

 

ckeditor4로 만들어진 글쓰기 폼에

select * from TABLE명 을 쓰고 난뒤 전송을 누르면 406에러가 발생합니다.

(자바스크립트 jsonPost방식으로 보내고 있습니다.)

 

일반적인 문장이나, php, html등의 코드를 넣어도 문제없이 보내지지만

쿼리문을 쓰면 전송이 안됩니다.

 

완벽하지 않은 쿼리문 (select * fro  // select *)  불안전한 쿼리문은 보내집니다..

도저히 이유를 몰라 다시 올립니다. 말솜씨가 없어서 죄송합니다.

이 질문에 댓글 쓰기 :

답변 1

에디터폼에 쿼리문을 입력하면 해당 쿼리문이 실행되도록 짜셨나요??

그누보드에 ckeditor4를 넣으신건가요?

에디터폼에 쿼리문을 넣어봤자 다른처리를안하는이상 거기서 오류가 발생될일은 전혀없을텐데... 이상하네요

에디터 폼에 어떤 코드가 들어와도 그냥 db에 들어가도록 되어있고 코드 또한 실행관련 문제가 없는데.. 저도 너무 이해가 안되서 올렸습니다 ㅜㅜ

그누보드나 그런것 보단 그냥 게시판을 만들던 중에 ckeditor를 사용하던 중 발생한 오류입니다..

아아 그렇다면 이해가 조금가네요
쉽게 설명하자면 db입력시에 아마 값안에 엔터도 들어갈거고 각종값들이 내용으로 입력되는곳이 에디터 폼이잖아요
여기서 처리를 조금해서 넘기는게 좋습니다 쿼리문을 입력하게되면 이게 실행되는 쿼리문이면 insert단에서 해당 쿼리문이 실행되버릴수가있습니다
지금의 경우엔 insert에서 content(에디터내용)이 입력될때 본래라면 그냥 텍스트로 인식하고 들어가야할테지만 엔터라든지 특수문자 '나 "가 앞에 입력되어있고 이 특수문자를 따로 처리안했을경우에 query문으로 인식해버려서 아마 입려되지않고 오류가 발생할겁니다

php에서 addslashes를 사용해서 특수문자 처리를 해줘야하고
(참고 : https://zzaps.tistory.com/45)
html_purifier를 통해서 내용필터를 한번 해주는것도 좋습니다(사용자가 입력한값이 화면에 그대로 실행된다면(html태그,javscript,쿼리문등등) 이것은 XSS공격에 매우 취약함을 의미합니다)
그누보드에는 저장시에 이러한 내용값에 대한 처리들이 다되어있는데요
그누보드 글쓰기엔 태그처리관련 xss 관련 태그 제거 함수인 clean_xss_tags도 있고 html_purifier도 당연히 포함하고있구요

아 기본적인 태그 제거는 strip_tags로도 가능은합니다
(참고 : https://www.codingfactory.net/10073)

이것저것 설명한다고 길었긴한데... 결론은 addslashes써서 에디터값을 감싸주시면 일단 처리가 가능할것같네요 다만 앞서말씀드린것들은 데이터저장할때 여러모로 도움이 될것같습니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 2

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT