我有一個JavaScript點擊事件綁定到一個錨點鏈接,通過Ajax點擊提交用戶數據。這個鏈接實際上並不在任何地方,它只是一個Ajax帖子。有沒有一種方法來區分btwn的JavaScript點擊和真正的用戶點擊
問題是用戶可以編寫腳本來快速垃圾郵件提交。有沒有辦法阻止JavaScript觸發點擊事件。
我可以把它放在一個防洪控制,我不能使用一個太糟糕,沒有破壞聊天室功能。
感謝
我有一個JavaScript點擊事件綁定到一個錨點鏈接,通過Ajax點擊提交用戶數據。這個鏈接實際上並不在任何地方,它只是一個Ajax帖子。有沒有一種方法來區分btwn的JavaScript點擊和真正的用戶點擊
問題是用戶可以編寫腳本來快速垃圾郵件提交。有沒有辦法阻止JavaScript觸發點擊事件。
我可以把它放在一個防洪控制,我不能使用一個太糟糕,沒有破壞聊天室功能。
感謝
的問題是,用戶可以編寫 一個腳本來快速提交的垃圾郵件
AFAIK你不能一個JavaScript點擊用戶點擊來區分。
最好的事情是驗證提交的數據。
如果你的目的是防止用戶做有害的東西,這是一個非常糟糕的主意,這樣做在客戶端的檢查。總有一種解決方法。唯一可靠的方法是檢查服務器。
您可以簡單地爲每個用戶分配兩個變量:垃圾郵件分數和最後一篇文章的時間戳。每當用戶發佈新消息時,計算自他上次消息以來已經過去了多少時間,並且每秒鐘將分數降低一點,但是對於每個發送的消息增加一個固定值。一旦達到閾值,拒絕新的消息,直到它再次減少。
你可以檢查event.which屬性,該屬性應該包含一個鍵(對於鼠標,通常是1,2或3)代碼,用於按下該鍵。如果該屬性不存在,則很可能是JavaScript單擊事件而不是用戶鼠標單擊。
if (event.which != null) {
// likely was user click
}
不是所有的瀏覽器都允許模擬點擊(jQuery在它自己的模型中僞造它)。另外,假設「點擊」是鼠標按鈕操作的結果,其他事件信息(例如鼠標位置)可能與期望不一致。 – 2010-12-09 05:45:42
@pst偉大的建議謝謝。你能告訴我如何檢查jquery的假觸發器嗎? – Hipchan 2010-12-09 05:58:44