0

我有一個JavaScript點擊事件綁定到一個錨點鏈接,通過Ajax點擊提交用戶數據。這個鏈接實際上並不在任何地方,它只是一個Ajax帖子。有沒有一種方法來區分btwn的JavaScript點擊和真正的用戶點擊

問題是用戶可以編寫腳本來快速垃圾郵件提交。有沒有辦法阻止JavaScript觸發點擊事件。

我可以把它放在一個防洪控制,我不能使用一個太糟糕,沒有破壞聊天室功能。

感謝

+0

不是所有的瀏覽器都允許模擬點擊(jQuery在它自己的模型中僞造它)。另外,假設「點擊」是鼠標按鈕操作的結果,其他事件信息(例如鼠標位置)可能與期望不一致。 – 2010-12-09 05:45:42

+0

@pst偉大的建議謝謝。你能告訴我如何檢查jquery的假觸發器嗎? – Hipchan 2010-12-09 05:58:44

回答

2

的問題是,用戶可以編寫 一個腳本來快速提交的垃圾郵件

AFAIK你不能一個JavaScript點擊用戶點擊來區分。

最好的事情是驗證提交的數據。

0

如果你真的想要一些驗證來停止自動提交,你可以添加所有網站的圖片檢查。

用戶必須輸入他認爲要繼續進行的圖像,我不知道該圖像的技術名稱。

它可以阻止用戶自動工作

+0

這種支持的技術名稱是Captcha。 – lalit 2010-12-09 05:51:18

+0

@lalit非常感謝你,今天從SO學到了更多新東西 – kobe 2010-12-09 05:54:41

0

如果你的目的是防止用戶做有害的東西,這是一個非常糟糕的主意,這樣做在客戶端的檢查。總有一種解決方法。唯一可靠的方法是檢查服務器。

您可以簡單地爲每個用戶分配兩個變量:垃圾郵件分數和最後一篇文章的時間戳。每當用戶發佈新消息時,計算自他上次消息以來已經過去了多少時間,並且每秒鐘將分數降低一點,但是對於每個發送的消息增加一個固定值。一旦達到閾值,拒絕新的消息,直到它再次減少。

0

你可以檢查event.which屬性,該屬性應該包含一個鍵(對於鼠標,通常是1,2或3)代碼,用於按下該鍵。如果該屬性不存在,則很可能是JavaScript單擊事件而不是用戶鼠標單擊。

if (event.which != null) { 
    // likely was user click 
} 
相關問題