我有一個打字測試網站。用戶可以在登錄後進行測試。在測試結束時發出一個ajax並顯示準確,每分鐘鍵,錯鍵按下等的結果..從控制檯阻止js攻擊
我注意到,有人創造了我的網站上的帳戶,他總是與2000年或更高的關鍵每分鐘的關鍵。我發現只有一件事是做ajax的技巧。 任何人都可以運行像這樣的新價值控制檯面板阿賈克斯 -
$.ajax({ // this is the main code we have to prevent
type: 'POST',
url: '/typingtest',
//dataType: 'json',
data:{
"corrects":2000,
"incorrects":0,
"netwpm" : 2000,
"FixedMistakes" : 0,
"TotalEntries" : 20000,
"ErrorRate" : 0,
"RawSpeed" : 50000,
"KeySpeed" : 50000,
"CompleteWords" : 2000,
"TotalTime" : 1,
"accuracy" : 200,
"ajaxSubmit" : "ajaxSubmit"
},
success: function(data) {
window.location.href = data;
},
complete: function() {
// Schedule the next request when the current one's complete
}
});
而且他會得到這樣的結果 -
我曾試圖與一些標誌變量來驗證對阿賈克斯頁。但任何用js完成的任何人都可以看到它,並輕鬆地調試此過程以更改值。最後他可以運行ajax。
有沒有人有任何想法來防止這種事情發生?
使用閃存不是一個選項?當你在這種情況下使用JavaScript時,它很容易被破解。 –
是的。但客戶需求僅限於js。 –
爲什麼不更改代碼過程?嗯發送一個Ajax請求對用戶獲得的每個關鍵分數只是不要忘記排隊每個請求,因爲我認爲你是從客戶端發送到服務器端的原始分數 –