웹 보안관련 질문

Extra Form
PHP PHP 7.0

안녕하세요 웹쪽 공부하고 있는 학생입니다.

처음에는 그누보드로 웹에 발을 담갔다가 xe로 가고 rhymix까지 오게되었습니다.

그리고 라이믹스로 사이트를 개설하다보니 자연스레 없던 기능을 제가 만들어보고 싶게 되었고

vps를 통해 개인적인 테스트 용도의 사이트를 만들게 되면서 문듯 든 생각이 있습니다.

'과연 내 사이트는 안전할까?'

저는 리눅스 계열에 대해 잘 알지 못하니 그저 인터넷에 나와있는 보안설정만 했습니다.

물론 서버 자체에 대한 보안보다는 저의 제대로된 궁금점은

코드에 대한 보안이었습니다.

아무래도 학생이다보니 보안에 대해 문외한입니다.

그래서 친구들이랑 만들려고 계획하는 사이트도 있지만.

과연 그게 실제로 공개될경우 어떠한 문제가 생길지 모르겠습니다.

물론 모든 사이트가 완벽한것은 없는건 알지만 저의 걱정은

'과연 문제가 발생해도 내가 찾고 해결할수 있을까?'였습니다.

 

죄송합니다, 너무 글이 산으로 간것 같습니다.

요점은 혹시 이런 보안관련해서 참고해야할 인터넷 강의같은게 있을까 추천을 받고 싶어 글을 남깁니다.

(서적같은거는 제가 이미 찾아보아서;; 사서 읽고 있는 책도 있습니다.)

  • profile

    서버 보안보다 어플리케이션(PHP 코드)의 보안이 압도적으로 더 중요합니다. 어플리케이션을 해킹하는 편이 훨씬 쉽기 때문의 대부분의 공격자들은 어플리케이션을 노립니다.

     

    서버는 비교적 최근 버전의 데비안/우분투 계열 운영체제를 인터넷에 나오는 튜토리얼대로 설치하고, 꼬박꼬박 업데이트하고, 너무 쉬운 비번을 사용하지만 않아도 웬만하면 털리지 않습니다. 단, 문제가 발생했을 때 찾아서 해결하려면 무엇보다도 로그를 많이 남겨놓는 것이 좋습니다. 에러 로그, 슬로우 로그, 접속 시도한 IP 등등... 서버 문제 파악은 로그 분석 능력이 절반이라고 해도 과언이 아닙니다.

     

    라이믹스를 비롯해서 최근에 나오는 CMS나 프레임워크를 사용한다면 공식적으로 권장하는 구조를 벗어나지 않는 것이 가장 중요합니다. 보안성을 높이기 위한 특별한 방법이 있는 것이 아니라, 가장 정석적인 코딩 방식이 곧 가장 안전한 방식입니다. 바꿔 말하면 코어의 제한을 벗어나기 위해 부리는 꼼수들이 가장 위험하다는 뜻이기도 하지요. 모듈/액션 구조를 따르기 귀찮다고 별도로 php 파일을 만들어 DB를 직접 조작한다거나, 스킨 html 파일에서 장문의 자바스크립트를 작성하며 각종 변수를 그대로 때려박는다거나...

     

    라이믹스 기준으로 CSRF 방어는 기본 기능이고, XML 쿼리만 사용한다면 SQL 인젝션도 불가능하며, 쉘 명령 호출이나 eval 따위는 그냥 안 쓰면 장땡이고, 파일 경로 관련 문제가 발생할 가능성도 낮고, 관리자와 다른 회원들의 접근 권한 관리도 비번만 잘 관리하면 문제가 되지 않으므로 웬만한 공격에는 이미 면역력이 있는 셈입니다. 커스텀 개발시 신경써야 하는 것은 현실적으로 XSS뿐입니다. 사용자나 외부에서 넘어온 값은 하나도 빠짐없이 intval, escape, removeHackTag 이 세 함수 중 하나를 적용하는 습관을 들이는 것이 좋습니다. 그러나 심지어 이걸 좀 게을리하더라도 스킨에서 autoescape를 켜면 상당한 방어력을 갖게 됩니다.

  • profile profile
    그렇군요 장문의 답변 감사합니다 ㅠ
    좋은 지식이 된것 같습니다.