2012-09-19 30 views
0

我開發了一款應用程序,允許用戶上傳一些照片並在Facebook/Dropbox/Twitter等上分享。最近它在應用程序商店中生效。iphone應用程序 - 防止垃圾郵件

但是,我現在有一個問題:機器人正在創建帳戶並在我的服務器上上傳許多照片。我暫時禁用了該應用,但現在我正在尋找一種有效的方法來防止此機器人執行此操作。

機器人的IP地址經常變化,所以不可能阻止IP。他用一個非常現實的名字和電子郵件地址創建賬戶,因此很難找出哪些用戶是真實的,哪些是由機器人創建的。

我正在考慮使用驗證碼,但我不確定我的應用是否會被Apple拒絕,如果我執行此操作。我最好尋找一種方法,以防止他做他的工作,所以我不必再次將應用程序重新發送給Apple。

任何人都可以給我一些建議,我可以做什麼?

謝謝!

+1

您可以使用驗證碼,這不是真正的拒絕理由... – 2012-09-19 20:53:49

+0

感謝你的反應,我會努力實現這一點。你知道任何其他方式可以阻止他服務器端嗎? :) – Devos50

+0

好吧,不是真的,如果它創造出真實的名字,即使是垃圾郵件過濾器也可能無法阻止它... – 2012-09-19 20:55:45

回答

1

這是我如何解決類似的問題:

我實現了一個令牌生成器,其產生用於與服務器的每一個的數據傳送的一時間標記,因此,即使一個用於登錄數據,發送文件等。這個令牌是由一個祕密算法產生的,並且可以通過服務器端來驗證,因爲你知道如何生成一個。一個令牌用於

後,把它放在下一個X分鐘/小時/天的臨時列表(取決於您的服務器可以有多少數據傳輸處理)。當用戶嘗試使用已使用的令牌發送數據(即該令牌與「已禁止」列表中的令牌相匹配)時,可以確定有人試圖給您發送垃圾郵件 - >將該帳戶標記爲「垃圾郵件發送者」並決定您想要的內容做。

算法必須在每個時間(最好的辦法是單向散列)產生不同的令牌,但你必須保證特定的「屬性」,利用它們可以證明其真實性。

所以一個非常簡單的例子:

你在客戶端算法生成1000000000000000000000和99999999999999999999999之間的數字,這個數字,然後用12456564相乘,並通過20349.

服務器遞增成爲特定命令和數據,以及生成的令牌。現在它檢查(number - 20349)%12456564是否爲0.如果它是0,它很可能是由你的「祕密」算法產生的。

這是一個非常簡單的例子,但你的想法...

+0

謝謝你的回答在服務器端的東西!這聽起來確實是防止垃圾郵件發送者的好主意。我會盡力實現這一點,並提醒未來的應用程序,再次感謝! :) – Devos50

+0

不客氣; ) – tamasgal