I'm developing a marketplace website where tutors and students can find each other. I'm building an online payment system (much like elance or guru.com) where the tutor can get paid and we take a cut.
Couple questions:
What's the best way to block IP addresses from certain countries like Nigeria? (Note, I am using Ruby on Rails so any recommendations specific to that would be even better but if not thats fine too.)
What other techniques can I use besides blocking certain IP's? (I'm already doing AVS and normal gateway checks).
What common scams do I need to check for?
For example, one I can think of is someone using the system to pay themselves, they receive the funds as payment (minus our fee) and then do a chargeback on the credit card.
I imagine these are similar to problems faced by sites like Paypal or Google Checkout (some call these aggregation sites) since they are taking a small percentage fee - so if the original source of funds is lost it's a huge loss (many time multiple of the profit involved unlike normal higher margin products).
Couple additional notes:
Here is what I have done so far, if people have more suggestions please respond:
The function looks a bit like this (note this doesn't include the code to check the IP addresses)
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
I think there are several ways to add additional layers to deincentivize these acts.
In general, where there's a will there's a way. Keep a very close eye on activity on the site and have some systematic rules for flagging that tips site administrators to take a closer look at accounts or activity.
For country blocking, you'll want an IP geolocation database, of which there are numerous free and commercial ones available. I recommend evaluating potential candidate databases based on how well they're maintained.
I'm about to answer this question from a general fraud detection strategy rather than Ruby-On-Rails focused answer. Relatively current fraud detection systems usually include some of the following:
The advantage of this solution over the accepted answer is that this would be agnostic to the user account. The disadvantage is that this is far more complex to build if you're the only one building an entire app. In my experience, persistent cookies are usually easy to implement and can thwart some low level fraudsters.
Something to think about: You mentioned that you're setting a hard coded barrier of $3,000. I imagine that a determined fraudster would figure it out and try something like $2999.99 to get around your control.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With