假設我在html表單中有100個字段。當所有字段填入時,計算一些分數並顯示給用戶(假設分數值從0到3000)。如何保護GAE服務器端計算邏輯?
當用戶更改任何字段的值時,我們會向他顯示值範圍(0-1000,1001-2000,2001-3000),沒有詳細分數。但是一旦按下提交按鈕,就會顯示確切的分數。
現在我需要保護邏輯 - 因此,用戶不應該能夠理解每個字段如何影響分數。另外,用戶不應該能夠使用某些程序來「玩」這些值,並查看分數是如何改變的。
我想到了以下方法:
- 使用會議;
- 保持服務器端當前得分值;
- 當一個字段中的值發生變化時,將請求發送到服務器並更改字段名稱和新值;
- 在服務器端驗證前一次請求發送時,如果時間差過小,則拒絕請求;
- 服務器回覆新範圍並保存新值;
- 當提交被按下時,服務器回覆評分的服務器值(不要重新計算它,照原樣)。不要經常回復這個問題。
是否還有其他(更好的)方法?
謝謝,易卜拉欣。你能否澄清第2項如何實施? – 2012-02-23 21:29:32
我假設您使用AJAX將您的請求發送到服務器?我會設置一個'var hasReplyBeenReceived'標誌,當你發送你的請求時它將被設置爲'false',並且一旦回調方法接收到一個答案就會被設置爲'true'。發送請求的函數將檢查該標誌,並且如果標誌仍然爲假,則不執行請求。您也可以添加一個計時器,該計時器在20秒左右後將此值設置爲true,以防服務器發送其答覆。 – 2012-02-24 13:56:34
嗯,因爲我使用jQuery,可能我可以參考ajaxStart/ajaxStop – 2012-02-24 16:05:47