SQL 인젝션은 어떻게 막을수 있나요? > 그누보드5 팁자료실

그누보드5 팁자료실

SQL 인젝션은 어떻게 막을수 있나요? 정보

SQL 인젝션은 어떻게 막을수 있나요?

본문

1. pdo의 bind parameter,  pdo의 quota 함수,  mysql_real_eacape_string 함수 등을 이용
  - pdo  bind 를 쓰는게 가장 바람직합니다. 그냥 bind는 의미 없구요. order by 구문은 bind가 안되는 부분임으로
    코드에서 order by value 를 꼭 확인해야 합니다. url 에 온 파라메타 그대로 order by에 쓰면 안돼요!!

2. url 파라메타에 select, update, union, and, or 구문 사용금지(그외 웹용 특수문자 입력금지)
    - 게시판은 이게 좀 곤란하죠... 게시판의 제목과, 본문, 코멘트는 그누보드 필터 함수를 꼭 쓰셔야 해요.(그누보드 함수 좋아요)

3. 웹서버에 웹방화벽 모듈 설치 mod_security or webknight, naxsi, dot depeder 등등..
  - sql injection 공격이 한번 들어온곳은 계속 들어옴으로, 웹방화벽에서 추가를 해야 해요.. 개인적으로 nginx 모듈인 naxsi 를 추천합니다. 이건 다시한번 정리해서 올릴 예정입니다.

4. 웹방화벽 기능이 있는 cdn 서비스 이용 (클라우드 플레어 등)
  - 클라우드 플레어의 프로 플랜 이상이면 사용이 가능합니다. 정상적인걸 막는 경우도 있음으로 룰셋을 잘 관리해야 합니다.
    (그런데 클라우드플레어 국내에선 너무 느려서.... 공격들어올때 잠깐 켰다가 끄는 방법을 추천)

5. 웹소스로 된 방화벽 코드 추가(kisa 캐슬.. 성능은 예전에 안 좋았는데, 요즘은 어떤지 모르겠음.). github 에도 좀 있을듯.
  - 경험삼아 한번씩 설치해보세요. 접속자가 많지 않은곳은 성능 이슈가 없어서 괜찮습니다.

지금 사이트와 개발자 상황에 맞춰서 5가지중에 가능한걸 적용하시면 됩니다.(2개 이상 적용하면 더 좋습니다.)
(옆동네에 답변 달아둔건데,,, 조금더 정리해서 올립니다.)
추천
2

댓글 4개

언제 한번 공유할 기회가 있을거에요. 국내에선 많이 쓰지 않는것 같은데, 개인적으로 좋게 평가하고 있습니다.
전체 30 |RSS
그누보드5 팁자료실 내용 검색

회원로그인

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