소켓통신 프로그래밍에서 해킹을 막으려면 ?
글쓴이: ljh0431 / 작성시간: 토, 2010/10/30 - 4:11오전
설치 QnA에 글을 올려야 할지 이곳에 올려야 할지 잘 몰라서 여기다가도 글을 올려봅니다.
소켓 프로그래밍으로 네트워크 프로그램을 만들어서 서버를 구축할 경우,
제가 궁금한 점이 있습니다.
소켓 프로그래밍으로 만든 소켓통신 프로그램에서 다양한 크기의 메세지로 client와 대화를 나눌 경우,
해커가 client프로그램을 분석하여 서버쪽으로 인위적인 메세지를 보낼경우,
서버는 overflow등 다양한 에러가 유도될 수 있는 경우,
이러한 해킹에 대비해서 소켓프로그래밍을 어떻게 구현해야 하나요 ?
서버 앞에 패킷을 1단계로 분석하는 서버를 둬야 하나요 ?
아니면 소켓통신프로그램개발단계에서부터 이 부분을 염두에 두고 개발해야 하나요 ?
이 점이 제가 고민입니다.
단순히 소켓통신프로그램을 개발하는 것은 그다지 어려운 일은 아닌데, 해커가 무작위로 메세지를 교묘하게 보내서
서버를 다운시키거나 소켓통신프로그램이 엉망이 되게 할 경우 대처에 대한 지식이 없습니다.
어떻게 해야 할지 난감한데, 이 부분에 대해서 생각을 같이 해 주실분 있으시면 감사하겠습니다.
Forums:
openssl을 써 보시는 게
openssl을 써 보시는 게 어떨까 하네요.
--
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://www.cinsk.org/cfaqs/
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://cinsk.github.io/cfaqs/
서버/클라이언트
서버/클라이언트 간에 프로토콜을 명확히 하고, 정확히 처리하면 문제 없을 것 같네요.
동작을 우선하여 개발하다 보면 구멍이 생기기 마련입니다.
예외처리도 꼼꼼히 하세요.
...
> 아니면 소켓통신프로그램개발단계에서부터 이 부분을 염두에 두고 개발해야 하나요 ?
예. 서버는 클라이언트가 무슨 짓을 해도 죽으면 안됩니다. (클라이언트는 반드시 나중에 무슨 짓을 하게 되어 있습니다. 해킹을 안 당하더라도 버그라든지...)
댓글 달기