'글작성'에 해당되는 글 1건

  1. 2009.06.03 [META-보안기초1] 글 작성시 유의 사항(로그인 사용자 쿠키 검증)

[META-보안기초1] 글 작성시 유의 사항(로그인 사용자 쿠키 검증)

Legacy 2009. 6. 3. 14:57
이제 막 시작하는 초보 웹개발자분들에게 도움이 될지는 모르겠으나.. ㅋ
1년차 후배들을 가르치기 위해서 한번 시작해 보자..

일반적인 게시판을 예로 들어서 진행 하겠습니다.

1. 글 작성
로그인 유무 체크
우선 페이지 글 작성 페이지 접근 시 쿠키 정보를 읽어서 로그인 여부 값을 할당
isLogin
loginValid
등의 변수로 임의 세팅 하겠죠.
값 세팅 또는 페이지를 다이나믹 하게 구분해서 보여 줄 수도 있구요.

if ( isLogin ) {
// 로그인 했을 때 보여줄 화면
} else {
// 로그인 하지 않았을 때 보여줄 화면
}

이제 글 포스팅으로 넘어 가 보죠.

ㄱ. 로그인 인증 쿠키 유효성 체크 (login check)
    ㄱ.1 captcha 라는 걸 이용해서 포스팅 시 유효성을 한번 더 확인 할 수도 있으나 좀 사용자들을 불편하게 하죠.
ㄴ. 사용자가 입력한 값 체크 (input validation check)
    ㄴ.1. input validation
    ㄴ.2. spam filtering
    ㄴ.3. sql injection
    ㄴ.4. xss
    ㄴ.5 기타 (보통 위에 4가지 정도를 많이 하죠..)
ㄷ. 글 등록

어째 로그인 사용자 쿠키 검증 이라 해놓고는 좀 포인트가 많이 벗어났내요.
암튼..
쿠키는 조작이 가능 하죠.
쉽게 얘기 해서 브라우저에 쿠키를 생성해 놓고.. input parameters 에 대해서 값을 조작해서 posting target url 로 변조된 값들을 넘기게 되면 해당 서비스 페이지에서 작성할 필요 없이 쉽게 포스팅을 할 수가 있습니다.
이건 아주 초보적인 거죠...

쿠키나 세션 기반의 인증을 사용하는 서비스들에 대해서는 참 취약한 부분이 아닐 수 없는데요.
우찌 되었건 어떤 비즈니스 로직이던 본인 유무 확인에 대해서는 확실히 검증을 하고 작성을 해야 한다를 꼭 기억 하셔야 합니다.

위에서 언급된 input validation, spam filter, sql injection, xss 등에 대해서는 따로 정리를 해보던가 하지요..
워낙에 많이 거론된 주제라서 제가 꼭 쓰지 않더라도 구글링만 잘 하면.. 다 나온다는.. ^^;

구글링



: