簡體   English   中英

如何防止客戶端用戶更改onClick函數中的參數?

[英]How to prevent the clientside user from changing arguments in an onClick function?

我剛剛在使用firebug測試onClick函數時意識到,用戶很容易更改傳遞的參數的值。 這可能會弄得很糟糕。

有沒有簡單的方法來防止這種情況,特別是當需要傳遞參數時?

是不可能的。 代碼正在用戶的計算機上執行。 他們掌控着。

如果他們編輯並“弄亂”,那就是他們的頭腦。

如果他們編輯它並向服務器提交HTTP請求,並且您的服務器允許(例如)該請求刪除屬於另一個用戶的數據,那么問題是您的服務器沒有檢查提交請求的用戶是否具有權限在完成之前刪除該數據。

您無法信任從客戶端發送的任何內容 用戶可以手動編輯URL參數,或者腳本小子可以向您發送甚至根本不使用瀏覽器的請求。 您必須驗證服務器端的所有內容。

不,這根本無法完成。

將腳本加載到客戶端的計算機后。 他可以按照自己的意願使用/修改它。

我建議在處理結果的任何地方(客戶端/服務器)驗證針對預期值集和/或業務規則的參數。 理想情況下,驗證檢查發生在用戶無法控制的服務器上。 甚至可以修改客戶端的驗證以允許無效的數據輸入。

沒有辦法完全控制它 - 只根據標准驗證它。

您無法阻止此操作,因為JavaScript是客戶端。 你永遠不能相信客戶。

您應該對服務器端的任何請求進行驗證,以保護您的數據免受客戶端濫用。

你可以以某種方式使它隱藏在客戶眼中
通過使用.delegate()

EX。

$("table").delegate( "td","click", function() {<br>
  // write here your function<br>
}); 


客戶端可以執行此腳本但不是直接在他眼前。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM