8

當然,我知道服務器端驗證是必須因此,僅在客戶端驗證表單是否安全?

我使用jQuery來驗證表單輸入並使用jQuery ajax同時進行服務器端(PHP)驗證。所以我想這可能是安全的,因爲它是驗證雙方而javascript已啓用

嗯,這裏是我的問題...

但是,如果用戶有禁用JavaScript在他的瀏覽器,如果有些壞人試圖做壞事,從編輯我的客戶端腳本?

因爲我通過jquery ajax進行服務器端驗證,並且我打算不在php腳本中直接驗證它們(action =「some.php」),即使用戶的javascript已啓用。

那麼......它仍然安全嗎?

對不起,我的英語不好,希望你不介意。

+1

可能重複關閉:http://stackoverflow.com/questions/3483514/why-is-client-side-validation-not-enough/ – RTB

+2

哇,有些事情我認爲哪裏明顯。難怪人們經常被黑客入侵。只是該死。 – rook

回答

13

不,它不安全。您應該始終在服務器端驗證您的數據,之後表單已提交。提交表單之前的客戶端驗證和AJAX驗證僅通過提供有關無效數據的更快反饋來增強用戶體驗。客戶端驗證和AJAX預先提交驗證都不會,也無法保護您免受惡意製作的表單提交。攻擊者和濫用者通常甚至不使用瀏覽器來向服務器提交數據。

+0

您的回答很有幫助!謝謝... –

5

我的規則非常簡單...

  1. 如果你關心你的數據,那麼你必須驗證服務器上。
  2. 如果您關心您的用戶體驗,那麼您必須在 上驗證客戶端。
+0

最佳答案!,簡短而準確。 –

6

由於javascript對於任何訪問者都是可讀的,並且可以用最新的瀏覽器輕鬆編輯,所以任何具有一定編程技能的人都可以立即跳過您的JavaScript驗證。所以你總是應該在服務器端進行驗證。