[번역] 스팸과 싸우는 5가지 방법

원본글 : 5 Ways of Battling Form Spam

만약 여러분이 웹 어플리케이션을 만든다면, 스팸 봇들에게 점렴당하는 것들을 막을순 없을것입니다.

내 프로젝트 중 하나는 회원가입 폼 부분을 당해서 17,000여개의 가짜 유저을 정리하는 것은 정말 힘들었습니다.
이를 해결 하기위해 스팸 봇과 싸우는 방법을 트위터에 물어보았고, 많은 반응과 좋은 아이디어들을 얻을 수 있었습니다.
나는 언급된 방법들을 공유해 만약 여러분이 공격 당했을 때 어떻게 방어해야하는지 알게 될 수 있을 것입니다.

1. Cloudflare

만약 여러분이 클라우드플레어와 같은 서비스를 사용하고 있으면, “page rules”을 설정해 URL과 양식 제출을 중단 할 수 있습니다.

다만, 나는 잘 다른 방법들 처럼 잘 작동 하지 않을 것 이라고 생각합니다.
하지만, 이 방법은 이미 운영중인 서비스에 어떠한 영향도 없이 신속하게 구현이 가능합니다.

2. Honeypot

허니팟은 최우선 방어 방법이고 설치 또한 간단합니다.
폼 안에 아무런 값이 없는 hidden 타입에 input 태그를 두고, 만약 hidden 필드 안에 값과 함께 제출 된다면, 거의 봇일 것이다.

직접 이를 구현 할 수 있지만, spatie/laravel-honeypot과 같은 패키지가 조내하여 손쉽게 통합된 환경에서 구현 할 수 있습니다

‘name’이라는 input필드가 있다면 봇은 그 필드를 체워야 하는 필드로 생각한다는 것을 기억하시기 바랍니다.

3. Validate Emails(이메일 인증)

만약 이메일을 요구하는 양식이라면, 사용자 이메일로 메일을 보내어 이메일 안에 있는 버튼을 클릭하여 진짜인지 확인 할 수 있습니다.
이 방법은 Laravel Newsletter를 포함해 많은 뉴스레터가 사용하는 방식입니다.

사용자는 이메일을 입력하고, 우리의 서비스는 이메일을 보내면, 사용자는 승인버튼을 눌러 우리의 서비스에 가입 할 수 있다.

이렇게 하면 가입되는 유저는 봇이 아니라 실제 사용자들일 것 입니다.

다른 방법으론 API를 통해 이메을 확인해주는 identibyte와 같은 서비스를 사용하는 방법입니다.
이런 방법을 통해 사용자들은 추가적인 단계없이 가입 할 수 있습니다.

4. Capcha

이 방법은 제가 가장 좋아하는 방법입니다. 왜냐하면, 내가 캡차를 싫어하기 때문입니다.
Google가 가지고 있는 invisible reCaptcha는 아마 제일 좋은 캡차 옵션일 것입니다.

5. Dedicated Spam Services (스팸 차단 서비스)

두 가지의 유명한 스팸 서비스인 AkismetStop Forum Spam이 있습니다.
Akismet은 유료이고 Stop Forum Spam은 무료 입니다.

나는 Akismet 모든 워드프레스 사이트에 사용했습니다. 하지만, 워드프레스가 아닌 라라벨에서도 사용할 수 있습니다.
여러분은 들은 Akismet의 API를 사용하거나 nickurt/laravel-akismet과 같은 것을 사용하면 됩니다.

Stop Forum Spam은 무료 서비스 이며, Akismet와 유사합니다.
그리고 라라벨 페키지 nickurt/laravel-stopforumspam가 존재하며, 통합 적으로 사용할 수 있게 도움을 줍니다.


모든 옵션들은 honeypot을 해본 후 부터 사용하는것이 좋습니다.
만약 honeypot이 실패하면 봇이 공격을 막을때 까지 다른 옵션들을 사용하세요.
다만, 오늘 동작하는것이 내일엔 안할수도 있다는 것을 기억하고, 매일 봇들과 싸워야 한다는것을 잊지 마세요.

글의 문제가 있다면 댓글을 달아 주세요.

This site uses Akismet to reduce spam. Learn how your comment data is processed.