在市场应用程序中防止欺诈的最佳方法?

时间:2009-04-04 03:07:32

标签: ruby-on-rails aggregation marketplace fraud-prevention

我正在开发一个市场网站,导师和学生可以互相找到。我正在建立一个在线支付系统(很像elance或guru.com),导师可以在那里得到报酬,我们会减少。

夫妻问题:

  1. 阻止某些国家/地区(如尼日利亚)的IP地址的最佳方法是什么? (注意,我正在使用Ruby on Rails,因此任何特定于此的建议都会更好,但如果不是那么好。)

  2. 除了阻止某些IP之外,我还可以使用哪些其他技术? (我已经在进行AVS和普通网关检查了。)

  3. 我需要检查哪些常见的骗局?

  4. 例如,我能想到的是有人使用该系统自行付款,他们收到资金作为付款(减去​​我们的费用),然后在信用卡上进行退款。

    我认为这些类似于Paypal或Google Checkout等网站所面临的问题(有些称为这些聚合网站),因为它们只收取一小部分费用 - 所以如果原始资金来源丢失则会造成巨大损失(很多时候)与普通高利润产品不同,所涉及的利润多倍。)

    结合其他笔记:

    1. 我的用户帐户已经需要电子邮件验证 - 这是最低限度的,我正在寻找超出此范围的内容
    2. 直接存款有3-5天的等待期 - 这是银行要求的 - 但仍然没有回答如何在3-5天内确定是否是欺诈的问题所以它可以被取消
    3. 我宁愿避免一个惩罚好人和坏人的解决方案 - 例如收取注册费用或让他们将资金留在那里直到请求提款(如Paypal)

5 个答案:

答案 0 :(得分:3)

以下是我到目前为止所做的工作,如果有更多建议,请回复:

  1. 设置“欺诈审核”标记,如果设置,则需要有人(我)在直接存款资金发送之前手动查看
  2. 如果发送的金额是> $ 300然后自动欺诈审查
  3. 如果教师的IP地址&学生的要求是相同的,然后是欺诈审查
  4. 检查他们的姓名和地址,看他们是否“基本匹配” - 即他们都可以使用名字“John”,因此有多少“匹配”构成欺诈审查标志的原因的阈值
  5. 该函数看起来有点像这样(请注意,这不包括检查IP地址的代码)

      def fraud_review invoice
        return true if invoice.total > 300
    
        #try to find out if they are the same person!
        client = invoice.client
        tutor = invoice.tutor
    
        count = 0
        client.full_name.split.each do |piece|
          count += 1 if tutor.full_name.include? piece
        end
        client.name_on_card.split.each do |piece|
          count += 1 if tutor.full_name.include? piece
        end
        client.street.split.each do |piece|
          count += 1 if tutor.street.include? piece
        end
    
        return true if count > 2
        false
      end
    

答案 1 :(得分:2)

我认为有几种方法可以添加其他图层来消除这些行为。

  1. 所有付款均由确认的用户帐户(通过电子邮件确认)
  2. 完成
  3. 根据银行清算延迟付款3至5天。
  4. 而不是将付款直接应用于用户的信用卡/银行帐户,而是以与PayPal类似的方式“在线”存储,用户必须手动请求提款。
  5. 对于IP阻止,我实际上是进入服务器级别并设置了IP表。我不是系统管理员,所以我不知道这些细节。
  6. 我已经阅读并参与了多个网站,试图通过提出名义注册费来减少恶意工作。它令人惊讶地降低了网站上的克汀病水平。
  7. 一般来说,哪里有遗嘱就有办法。密切关注网站上的活动,并制定一些系统规则来标记网站管理员仔细查看帐户或活动的提示。

答案 2 :(得分:1)

对于国家/地区阻止,您需要一个IP地理位置数据库,其中有许多可用的免费和商业数据库。我建议根据潜在候选数据库的维护情况对其进行评估。

答案 3 :(得分:1)

我即将从一般欺诈检测策略而不是Ruby-On-Rails重点回答中回答这个问题。相对当前的欺诈检测系统通常包括以下一些:

  1. Persistent cookies - 将Cookie存储在用户的硬盘中。您可以使用它来比较来自同一设备的流量假冒不同的人。
  2. Fingerprint the device - 这只能使用JavaScript解决。您可以使用它来比较来自同一设备的流量假冒不同的人。
  3. 查找自动脚本的签名。如果有人试图将来自其他服务的被盗凭证填入您的服务,这可能会有所帮助。我确信您知道,用户永远不会重复使用凭据!
  4. IP信誉 - Tor退出节点? (开源信息)。根据您的应用程序,可能有合法的案例允许来自tor的流量,但如果要求用户告诉您他们将使用您的服务,则不存在匿名案例。
  5. Obfuscation Attempts - UA与机器匹配吗?如果有人试图模糊他们的起源,他们很可能没有好处。您可以根据自己的舒适程度阻止此流量。
  6. 此解决方案优于已接受的答案的优点是,这对用户帐户是不可知的。缺点是,如果您是构建整个应用程序的唯一构建者,那么构建起来要复杂得多。根据我的经验,持久性cookie通常易于实施,并且可以阻止一些低级欺诈者。

    要考虑的事情:你提到你设置了3,000美元的硬编码屏障。我想,一个坚定的欺诈者会想出来并尝试花费2999.99美元来绕过你的控制。

答案 4 :(得分:0)

要阻止来自特定国家/地区的IP,您必须弄清楚那里的IP地址范围。然后,您所要做的就是配置防火墙以拒绝来自这些范围的流量。