Django+Mysql+Apache2 보안대책

조회수 1484회

안녕하세요. 장고로 간단한 웹사이트를 만들어 운영중 입니다. 그런데 얼마전 sql 인젝션 공격을 받아 DB와 서버설정등이 모두 날아가고 리눅스의 관리자 권한마저 강탈 당했습니다. 그래서 어쩔수 없이 서버를 날려버리고 겨우겨우 다시 웹사이트를 만들었습니다.

해킹을 당할당시 form 작업 중 이었는데 login required를 하지 않았던 것이 원인인 듯 합니다.

그런데 다시 폼작업을 해야하는 것이 (비회원도 등록가능한 폼) 문제 입니다.

다시 해킹을 당하지 않을런지...

어떻게 해야 보안이 좀더 좋아질런지..

질문 드립니다.

  • (•́ ✖ •̀)
    알 수 없는 사용자
  • 우선은 가능하면 RAW sql을 안쓰는 방향으로 해결하고, 써야 하는 경우라면, sql을 만들 때, 문자열 치환으로 하지 말고, django에서 제공하는 parameter binding을 이용하여 SQL을 적용하세요. 허대영(소프트웨어융합대학) 2017.5.4 14:33

1 답변

  • 먼저 웹보안에 관한 서적을 한권이상 보시기 바랍니다. 그래야 어떤 이유로 리눅스 root 권한을 공격자가 얻을 수 있었는지 알 수 있고 막을 수 있습니다.

    sql 인잭션은 사실 session 문제라기 보다 form 데이터 체크등 개발자의 귀찮니즘으로 인한 문제가 더 큽니다.

    쿼리도 동적쿼리를 사용하면 안되고 바인딩 쿼리가 되어야 하며 모든 입력값은 서버측에서 validation 해야 합니다. 클라이언트즉에서만 하면 안됩니다.

    서적과 아울러 https://www.owasp.org/index.php/Main_Page 사이트를 참고하시기 바랍니다.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)