web-dev-qa-db-ja.com

ユーザーが使い捨てのメールアドレスで登録できないようにするにはどうすればよいですか?

ユーザーがプライベートメッセージモジュールを使用して互いにメッセージを送信するサイトがあり、メッセージが電子メールで通知されます。

このサイトには、使い捨てのメールアドレスを使用して複数のアカウントを登録しようとするさまざまなスパマー、詐欺師、および悪意のあるユーザーがいます。

すべての可能な使い捨てメールアドレスドメインをブロックすることは不可能であることはわかっていますが、Drupalの世界で私を助けることができるものはありますか?

  • 有効なドメインをホワイトリストに登録することを検討しましたが、ユーザーベースが多すぎてこれには対応できません。

  • Drupal.orgで見つけた唯一のプロジェクト 放棄されました

  • this one などのサードパーティAPIがあります。

現時点では、次のコードを使用して手動でブロックしています:

/**
 * Custom validation function from the Domain Registration module (1.0).
 *
 * Checks if the domain in the email address is on a list of blocked domains.
 * @param $form
 * @param $form_state
 */

function MYMODULE_domain_registration_user_register_validate(&$form, &$form_state) {
  $default_message = t('You are not allowed to register for an account on this site.  Contact support for more information.');
  $mail = explode('@', $form_state['values']['mail']);
  $exact_domains = array(
    'ad.drupaler.org',
    'drupaler.org',
  );
  $partial_domains = array(
    'pp.ua',
    'guerrilamail',
  );
  if (isset($mail[1]) && !empty($exact_domains)) {
    if (in_array($mail[1], $exact_domains) || MYMODULE_contactinfo_check_banned_words($mail[1], $partial_domains)) {
      form_set_error('account', variable_get('domain_registration_message', $default_message));
    }
  }
}
5
Patrick Kenny

あなたが言ったように、すべての使い捨てドメインをブロックすることは不可能です。

狂気を終わらせたい場合、最も効果的な解決策は次のとおりです。登録時に、確認リンクまたはコードを携帯電話番号に送信します

を見てみましょう:

  1. SMSフレームワーク モジュール
  2. VoIP Drupal モジュール

一意のフィールド を使用すると、電話番号を1回だけ使用できることを確認できます。

チェックアウト: 送信方法SMSメッセージ(Drupalチュートリアル)

1
No Sssweat

あなたのソリューションは良いです(しかし、sms検証はより良いソリューションだと思います)、block-disposable-emaiと統合してソリューションを改善した方法は何ですか シンプルなJSON BASE API

   /**
 * Custom validation function from the Domain Registration module (1.0).
 *
 * Checks if the domain in the email address is on a list of blocked domains.
 * @param $form
 * @param $form_state
 */

function MYMODULE_domain_registration_user_register_validate(&$form, &$form_state) {
  $default_message = t('You are not allowed to register for an account on this site.  Contact support for more information.');
  $mail = explode('@', $form_state['values']['mail']);
  $exact_domains = array(
    'ad.drupaler.org',
    'drupaler.org',
  );
  $partial_domains = array(
    'pp.ua',
    'guerrilamail',
  );

  $key     = '12345abcapikey'; //please get your own valid api key
  $request = 'http://check.block-disposable-email.com/api/json/'.$key.'/'.$mail[1]; 
  if (isset($mail[1])) {
  $response = file_get_contents($request);
  $dea = json_decode($response);
  if ($dea->request_status == 'success'){
    if ($dea->domain_status == 'block' && $dea->domain_type == 'dea_provider' && $dea->domain_is_handpicked == 1){
    // deny registration ...
              form_set_error('account', variable_get('domain_registration_message', $default_message));

    }

  }else{
    form_set_error('account', "try again");
   }
  }
  }
1
Yusef

同じ問題に直面しているので、使い捨ての一時的なメールアドレスを認識する無料のAPIサービスを作成します。 Block Temporary Email

メールエンドポイント:

GEThttps://block-temporary-email.com/check/email/[email protected]

JSON応答:

{
  "status": 200,
  "domain": "simplemail.top",
  "temporary": true,
  "dns": true,
}

このAPIは100%無料であり、制限はありません。

このサイトは、無料で更新されたTXT使い捨てメールプロバイダーのリストも提供しています。

免責事項:私はこのAPIを作成しました

0
Gui