2016-06-16 63 views
0

我有一個Web門戶,用戶進來併發布他/她的圖片。現在有一場比賽在運行,人們可以在他們的照片中進行遊泳,並且在圖像上有最大喜歡的人贏得比賽。Django - 檢測唯一用戶。忽略/禁止欺騙用戶

因此,我面臨的問題是一個用戶可以根據自己的需要註冊儘可能多的帳戶,並喜歡他/她自己的圖像。這將增加圖片上的喜歡數量,用戶會贏,不合法,但它是一種欺詐行爲。

那麼,有什麼辦法可以限制從一臺計算機只有1註冊。或者有沒有其他更好的方法來處理這個問題,即使我可以最小化這種行爲,它也會有很好的幫助。

我想到的一種方法是我可以要求用戶的電話號碼,並可以使用OTP進行驗證。什麼樣的出租車可以找到欺詐賬戶的其他方式?

有沒有什麼方法可以讓我在Django請求變量中獲得系統的唯一身份(可能是MAC地址),通過這個變量我可以允許每個系統只有一個用戶註冊?

+1

爲什麼不是IP? – vmonteco

+0

您只能同時使用多個資源來增加用戶的唯一性,例如合併的電子郵件+電話+地址。 'IP'不好,因爲有大量的工具來操縱計算機的IP。如果兩個不同的用戶試圖使用一臺電腦註冊? –

+0

好點@vmonteco,但100人坐在辦公室與1個WiFi連接將共享相同的公共IP。我不想放鬆那100個不同的人。 – PythonEnthusiast

回答

0

有沒有萬無一失的方法,但你可以通過以下步驟使其更難僞造用戶:

  1. 顯示captcha以防止自動註冊。

  2. 跟蹤用戶註冊時的IP地址並嘗試查找模式,例如來自單一IP的註冊過多可能會導致欺詐行爲。知識產權屬於一個組織而且用戶是真實的也是可能的。

  3. 檢查可疑IP地址(例如通過VPN或雲服務提供商(例如AWS))。您必須使用標識VPN特定IP地址的服務。另見:https://security.stackexchange.com/a/85416

  4. 如果你想得到更多的技術,你可以看看最喜歡的照片,看看喜歡它的用戶是否也喜歡其他圖片。尋找告訴故事的跡象。這可以給你一個模式來區分假冒&真正的喜歡。

  5. Browser fingerprint

附:電話號碼驗證也是一個不錯的選擇,因爲獲得一次性電話號碼通常不是免費的。有幾個一次性免費號碼可以加入黑名單(搜索free disposable phone number)。

0

把重點放在這個問題上是非常重要的。你想解決的問題是人們可以喜歡他們自己的圖像來人爲地增加自己的分數。

爲了最有效,針對問題(多個喜歡)而不是側面問題(多個註冊)。

這裏有一些簡單的建議:

  • 防止從一個單一的IP多喜歡一個單一的形象
  • 設置時,就像是給一個cookie上;如果cookie已設置,請不要接受更多喜歡
  • 添加驗證碼。(這不會阻止多個手動提交,但會限制自動提交。)

限制註冊沒有任何問題,但一定要先採取措施解決核心問題。