koownij
54
2021-11-25 17:50:20 작성 2021-11-25 17:51:07 수정됨
4
135

웹사이트 보안 관련 질문이 있습니다...



안녕하세요 

4년제 대학교에 재학중인 학생입니다.

저희 학생들을 대상으로한 웹사이트를 기획하고 있습니다. 


회원가입할 때 유저 아이디, 비밀번호, 이메일을 저장할 생각이고, 비밀번호와 이메일은 해싱할 예정입니다.

아무래도 개인정보를 저장하다보니, 웹 보안에 신경이 쓰입니다.


개인적인 생각으로는 XSS, CSRF, Sql Injection만 방어를 할 생각입니다.

xss와 Sql Injection의 경우 AWS WAF를 통해 방어하고 CSRF는 Referrer로 방어할 생각입니다.


여기서 고민은

1. 어차피 우리 학교 학생들만 사용하는 사이트이고, 비밀번호와 이메일의 경우 해싱해서 저장하므로 굳이 xss, csrf, sql injection 방어를 해야하는지 의문점이 생김

2. xss, csrf, sql injection 방어를 위해 AWS WAF와 Referrer만 사용해도 충분한지

3. AWS WAF의 비용이 어느정도 인지 예상이 안감 (대략 30달러의 비용이 드는 서버에서 WAF를 사용할 경우 드는 비용..?)

4. xss, csrf, sql injection 방어만 해도 괜찮은지... (추가로 더 방어할 건 없는지)


긴 글인데, 끝까지 읽어주셔서 감사합니다. 

코로나 확진자가 늘어나는 추세인데, 다들 마스크 잘 쓰시고 조심하시길 바래요.


ps. 비용이 들더라도 현업 개발자분들에게 조언을 구하고 싶은데, 조언을 구할만한 사이트도 알려주시면 정말 감사하겠습니다..


0
  • 답변 4

  • ruinnel
    605
    2021-11-25 17:58:03 작성 2021-11-25 18:00:33 수정됨

    AWS WAF .. 적용하면 좋지만 말씀하신 정도의 규모의 사이트에서 굳이? 싶기도 하네요.

    사이트 구현을 어떤 프레임워크로 하실지 모르겠지만..

    알려진 인지도 높은 웹프레임워크(ex: spring)를 사용하시고, 알려진 인지도 높은 DB 라이브러리(ex: mybatis, jpa) 사용하시고..

    프론트엔드도 프레임워크(ex: vue, react) 사용하시면..

    일단 xss, sql injection은 어느정도 막아집니다.


    CSRF는 "csrf rest api" 이런 키워드로 찾아보시면 막는 방법 많이 나옵니다.


    처음부터 AWS WAF 써야지 보다는 구현할때 알려진 보안이슈가 발생하지 않게 구현해 두는게 먼저입니다.


    일례로.... 

    제가 관리하는 서비스중에.. (최근에 만든..)

    서버는 spring boot이고 프론트엔드는 vuejs로 구현한 사이트가 하나있는데요.

    외부 업체 의뢰해서 보안검사 돌렸는데.. 걸린 항목이 거의 전무했습니다.

  • 오후
    3k
    2021-11-25 18:26:21

    xss와 Sql Injection의 경우 AWS WAF를 통해 방어

    >>>

    프로그램 로직상 방어가 기본 베이스입니다. 


  • koownij
    54
    2021-11-25 20:41:17

    ruinnel 오후

    답변 정말 감사합니다! 


    xss

    백엔드 - nodejs에서 sanitize-html로 방어

    리액트 - 백엔드에서 xss방어하므로 굳이 조치를 취하지 않음


    Sql Injection

    mySql 사용 - preparedstatement를 통해 방어


    CSRF

    csrf rest api 검색해 나온 방식으로 방어


    할 생각입니다!! 이정도면 충분.. 하겠죠?


    xss, Sql Injection, CSRF 외에 추가로 더 신경써야할게 있을까요?





  • 오후
    3k
    2021-11-29 13:07:08

    https://www.kisa.or.kr/public/laws/laws3.jsp


    시큐어코딩가이드 / 보안약점 진단 가이드 한번 읽어보시면 될거같습니다.

  • 로그인을 하시면 답변을 등록할 수 있습니다.