블로그스피어가 거대해질 수록 여러 블로그들에 대한 스팸 트랙백, 코멘트는 블로거들을 괴롭혀왔습니다. 이는 대부분 '봇'이라는 프로그램으로 이루어진 것으로 서비스형 블로그에 비해 설치형 블로그가 이러한 '봇'들에게 더욱더 많이 노출되어있는 것이 사실입니다.
하지만 '봇'이 스팸을 남기기 위해서는 해당 블로그의 HTML을 읽어와 해당 블로그에서 스팸 트랙백, 코멘트를 남기는 방법을 찾아내야 하므로 HTML에서 트랙백과 코멘트를 남기기위한 코드를 감추어버린다면 '봇'이 스팸을 남기기 위한 방법을 찾아내지 못할 것입니다.
HTML에서 스팸을 남기기 위한 방법을 숨기기 위한 방법 중 가장 간단한 방법은 JavaScript를 이용하는 것입니다. 페이지의 HTML에서는 코멘트, 트랙백란을 표시하지 않고 JavaScript를 이용한 Ajax와 같은 방법으로 동적으로 페이지를 작성하도록 합니다. 이와 같은 방법은 '봇'이 해당 페이지의 코드 전체를 알 수 없게 하므로 '로그인'이나 '그림암호'를 이용한 방법들 보다 훨씬 안전하며 사용하기에 간편합니다.
스팸 코멘트를 막기 위해서는 Ajax를 이용하여 동적으로 페이지를 생성하는 것 외에도 코멘트를 전송하여 남기게하는 주소(URL)을 동적으로 변경시켜주어야 합니다. 서버는 클라이언트의 요청이 발생될 때에 해당 클라이언트에게 인증번호가 담긴 쿠키를 전송하고 이 인증번호와 짝을 이루는 또다른 인증번호를 생성하여 저장합니다. 그 뒤 Ajax를 이용하여 코멘트를 작성하는 페이지를 생성하고 코멘트를 이 두번째 인증번호가 추가된 페이지로 전송하도록 합니다. 아래는 그 예입니다.
이 주소는 Ajax를 이용해 동적으로 생성된 부분에 포함되어 있으므로 '봇'은 이 주소 역시 알 수가 없습니다.
사용자가 코멘트를 작성하면 서버는 주소(URL)에 추가된 인증 번호와 사용자의 쿠키의 인증번호를 비교하여 일치하는지 검사한 뒤 일치한다면 코멘트를 저장합니다. 이 때에 쿠키를 이용하여 남기는 인증번호는 쿠키가 사용이 불가능할 경우 사용자의 주소(IP)와 리퍼러 등을 결합한 방식으로 서버가 쿠키 생성없이 처리할 수도 있습니다. 또한 어떠한 방식으로 인증 번호를 발급하든 한번 이상은 사용할 수 없게하여 한번 발급한 인증 번호를 이용한 '봇'의 코멘트를 방지하며 인증 번호의 유효기간을 지정하여 일정 시간 후에는 사용할 수 없게 합니다.
스팸 트랙백 역시 코멘트와 같이 Ajax를 이용하여 동적인 트랙백 주소를 생성합니다. 이 때에도 역시 트랙백 주소 뒤에 동적으로 생성한 인증 번호를 붙이는 방법으로 '봇'이 트랙백의 주소를 알 수 없게합니다. 이 주소는 한번 이상 사용할 수 없고, 유효기간을 두어 인정 시간 후에는 사용할 수 없게합니다. 그 예는 아래와 같습니다.
이보다 좀 더 강력한 방법으로는 사용자가 트랙백을 날리기 전 트랙백을 날릴 서버의 도메인을 적는 부분을 Ajax로 생성한 뒤 사용자가 입력하도록 합니다. 이 도메인과 인증 번호를 쌍을 이루어 저장한 뒤 트랙백이 날라왔을 때에 리퍼러의 도메인과 트랙백 주소의 인증 번호를 비교합니다. 이 인증 번호가 전송되는 주소(URL)역시 동적으로 생성합니다. 그 예는 아래와 같습니다.
Comments (0)
You don't have permission to comment on this page.