基于Rails中的黑名单阻止用户注册

时间:2014-03-05 15:45:49

标签: ruby-on-rails security email web devise

是否有办法创建黑名单以禁止某些用户在注册过程中通过其参数进行过滤注册?

我们的想法是阻止使用可删除电子邮件地址的用户(例如10分钟邮箱)注册。

3 个答案:

答案 0 :(得分:6)

有一个宝石:

  

https://github.com/lisinge/valid_email2

安装并添加:

validates :email, email: { mx: true, disposable: true }

答案 1 :(得分:2)

不确定是否有宝石,但我认为推出自己的宝石非常简单。只需放置一个调用方法的before_filter:allowed?

您可以根据需要在db或yaml文件上使用表。 - 如果内容是静态的,则使用yaml文件(也快得多)

在允许的方法检查中使用正则表达式检查它是否匹配

def permitted?
 config=YAML.load_file('file.yml')
 config.each do |domain|
   email.match(domain)
end

您可以使用不同的正则表达式进行匹配

答案 2 :(得分:1)

以下是JavaScript解决方案:https://github.com/AppBeat-io/JavaScript

用法示例:

AppBeat.Email.isDisposable('something@sharklasers.com'); //returns true
AppBeat.Email.isDisposable('something@mailinator.com'); //returns true
AppBeat.Email.isDisposable('   something@mailinator.com   '); //returns true
AppBeat.Email.isDisposable('@mailinator.com'); //returns true
AppBeat.Email.isDisposable('mailinator.com'); //returns true
AppBeat.Email.isDisposable('unknown-domain.some-domain'); //returns false
AppBeat.Email.isDisposable('something@unknown-domain.some-domain'); //returns false
AppBeat.Email.isDisposable('something@gmail.com'); //returns false (whitelisted)
AppBeat.Email.isDisposable('something@outlook.com'); //returns false (whitelisted)
相关问题