2012-04-30 57 views
0

任何人都可以解釋java中服務器端驗證的需求和方案。爲什麼我們不能在客戶端使用javascript進行驗證?java中的服務器端驗證

+0

看一看另一個SO問題:http://stackoverflow.com/questions/162159/javascript-client-side-vs-server-side-validation – CyprUS

回答

5

因爲攻擊者可以通過簡單地禁用JavaScript或使用外部工具(如)調用服務器來繞過客戶端驗證。最後用這樣的工具可以提交幾乎任何東西。

而且它會讓你的GUI更爲敏感,你不必在每次用戶嘗試提交表單時重新加載頁面(所以此外,它降低了網絡流量和服務器負荷)。

1

主要是出於安全考慮。如果以某種方式,有人設法修改您的客戶端並繞過驗證,您可能會嚴重危害您的服務器。

2

客戶端驗證有利於更好的用戶體驗,如果他犯了錯誤,則不需要發送HTTP請求來發現它。

例如 - 如果用戶名至少應爲3個字符,用戶輸入2,你可以立即告訴用戶,有一個問題。

服務器端驗證保護服務器免受不誠實用戶發送的損壞/惡意請求。

例如 - 如果用戶試圖執行他不應該使用SQL注入的查詢,則可以在服務器端阻止它,因爲他可能不會通過您的網站發送查詢,而是來自其他客戶端。