9

我正在开发一个市场网站,导师和学生可以在其中找到彼此。我正在建立一个在线支付系统(很像 elance 或 guru.com),导师可以在其中获得报酬,我们可以从中分得一杯羹。

几个问题:

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

  2. 除了阻止某些 IP,我还可以使用哪些其他技术?(我已经在做 AVS 和正常的网关检查)。

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

例如,我能想到的一个人使用该系统为自己付款,他们收到资金作为付款(减去​​我们的费用),然后对信用卡进行退款。

我想这些类似于 Paypal 或 Google Checkout 等网站(有些人称这些聚合网站)所面临的问题,因为它们收取一小部分费用 - 所以如果失去原始资金来源,那将是巨大的损失(很多倍的与正常的高利润产品不同,所涉及的利润)。

几个附加说明:

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

5 回答 5

3

这是我到目前为止所做的,如果人们有更多建议,请回复:

  1. 设置一个“欺诈审查”标志,如果设置需要某人(我)在发送直接存款资金之前手动查看它
  2. 如果发送的金额 > 300 美元,则自动欺诈审查
  3. 如果导师和学生请求的ip地址相同,则欺诈审查
  4. 检查他们的姓名和地址,看看他们是否“基本匹配”——即他们都可以有名字“约翰”,因此有一个阈值,即有多少“匹配”构成了举报欺诈审查的理由

该函数看起来有点像这样(注意这不包括检查 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
于 2009-04-07T18:19:47.917 回答
2

我认为有几种方法可以添加额外的层来抑制这些行为。

  1. 所有付款均由确认的用户帐户进行(通过电子邮件确认)
  2. 根据银行清算延迟付款 3 - 5 天。
  3. 付款不是直接应用到用户的信用卡/银行帐户,而是可以以类似于 PayPal 的方式“在线”存储,并且用户必须手动请求提款。
  4. 对于 IP 阻止,我实际上会转到服务器级别并设置 IP 表。我不是系统管理员,所以我不知道来龙去脉。
  5. 我已经阅读并参与了几个试图通过收取象征性注册费来减少恶意行为的网站。它令人惊讶地降低了网站上存在的呆小症水平。

一般来说,有志者事竟成。密切关注网站上的活动,并制定一些系统化的标记规则,提示网站管理员仔细查看帐户或活动。

于 2009-04-04T03:42:19.347 回答
1

对于国家/地区封锁,您需要一个 IP 地理定位数据库,其中有许多免费和商业可用的数据库。我建议根据维护的好坏来评估潜在的候选数据库。

于 2009-04-04T03:45:13.460 回答
1

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

  1. 持久性 cookie - 将 cookie 存储在用户的硬盘中。您可以使用它来比较来自伪装成不同人的同一设备的流量。
  2. 指纹设备- 这只能使用 JavaScript 解决。您可以使用它来比较来自伪装成不同人的同一设备的流量。
  3. 寻找自动脚本的签名。如果有人试图将来自其他服务的被盗凭据填充到您的服务中,这可能会有所帮助。我相信您知道,用户永远不会重复使用凭据!
  4. IP 信誉 - Tor 出口节点?(开源信息)。根据您的应用程序,可能存在允许来自 tor 的流量的合法案例,但如果用户需要告诉您他们将使用您的服务的是谁,那么就没有匿名的案例。
  5. 混淆尝试- UA 是否匹配机器?如果有人试图混淆他们的起源,他们很可能没有好处。您可以根据自己的舒适程度阻止此流量。

该解决方案优于公认答案的优势在于,这与用户帐户无关。缺点是,如果您是唯一一个构建整个应用程序的人,那么构建起来要复杂得多。根据我的经验,持久性 cookie 通常很容易实现,并且可以阻止一些低级别的欺诈者。

需要考虑的事情:您提到您设置了 3,000 美元的硬编码障碍。我想一个坚定的欺诈者会弄清楚并尝试像 2999.99 美元这样的东西来绕过你的控制。

于 2018-05-01T22:54:11.410 回答
0

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

于 2009-04-04T03:13:54.143 回答