2014-09-10 4 views
0

저희 사이트에는 서비스 실행 알림을위한 이메일 입력란이 있습니다. 뉴스 레터에는 알림 용도로만 사용하지 않습니다. 그래서 우리 사이트에서 기본적인 취약점을 테스트 한 결과 이메일 목록에 스팸 전자 메일 주소가 가득하다는 사실을 알았습니다.php - 전자 메일 구독 스팸으로부터 사이트를 보호하려면 어떻게해야합니까?

나는 스팸을 방지하기 위해 PHP 코드의 종류가 여전히 어떻게 든 그들은을 통해 오는 : 는 (나는 HTML 양식, 이메일 입력하고 필요한 확인란 입력이)

if(isset($_POST['submitbutton'])){ 
    if(filter_var($_POST['emailinput'], FILTER_VALIDATE_EMAIL) && isset($_POST['checkbox'])){ 
     $email = $_POST['email']; 
     @file_put_contents('../outofpublicrootdir/emaillist.txt', $email . ";\n\r", FILE_APPEND); 
     $mailnotifysend = 'You have been added to our notify list!'; 
    } 
} 

당신은 어떻게 든 나를 도와 드릴까요?

답변

1

대답은 간단하게 예를 http://www.google.com/recaptcha/intro/

에 대한 보안 문자를 사용할 수 있습니다 당신은 또한 그럼 제출을 무시하면 그들이 작성하는 경우 다음의 PHP에서 확인 등 "이메일"라는 이름의 일부 필드를 사용하여 CSS에서 그들을 숨길 수 있습니다.

는 모든 적절한 이메일이 here

0

당신은 알림 이메일을 입력 할 때 검증 키를 사용하여 시도 할 수 있습니다 찾을 수 있습니다 RFC에 따라 정규식을 사용할 수 있도록하는 것이 100 % 확실합니다. 예를 들어 임의의 코드를 생성하면 전자 메일을 제출하기 전에 사용자가 코드를 올바르게 작성해야합니다. 또한이 기능을 코드에 추가해야합니다.

1

captcha가 스팸을 줄이는 반면, 합법적 인 가입을 확실히 줄일 수 있습니다.

대신 간단한 몇 가지 간단한 단계를 사용할 수 있습니다.

  • 당신의 HTML에 양식 필드의 이름을 바꿉니다 - 당신이 = 숨겨진 그것을 입력하기 (CSS를 숨길 해달라고 것을, 이메일 필드 "첫번째 이름"또는 이와 유사한 이름을 지정하고 "이메일"라는 또 다른 필드가 이는 스팸봇에 대한 공짜 )

  • , 임의의 토큰을 생성 아약스 호출을 통해 $ _SESSION에 저장, 숨겨진 필드에 넣어, 그들은 제출에 일치 확인 그대로 - 일반적인 스팸 머 거의 자바 스크립트 구문 분석하지