2014-01-10 153 views
0

我有一個使用'js-webshims'進行客戶端驗證的HTML5創建的小型聯繫表單。這個表單是通過服務器上的php處理的。但是,我沒有服務器端驗證。只有通過HTML5進行客戶端驗證。HTML5:我是否需要在客戶端和服務器端驗證Webform,還是隻需要客戶端?

我的問題:我只能用HTML5和'js-webshims'填充進行客戶端驗證,還是我還需要進行服務器端驗證?

謝謝。

+0

我忘了提及表單將駐留在安全和封閉的網絡/內部網上。我想使用服務器端的valiation仍然很重要? – redshift

+1

當然,你永遠不知道誰可能在不同的事情中輸入。我知道作爲一個系統管理員,我有一堆用戶在'安全'環境中輸入隨機的東西試圖獲得管理員訪問權限。任何形式的安全最大的威脅都是內部威脅。 –

+0

Hai @redshift它的一個很好的問題 –

回答

2

理想情況下,您需要在雙方進行驗證。客戶端讓用戶知道他們提交的內容是否有效,以及服務器端,因此您可以在將其放到需要的地方之前對其進行處理。

儘管這是一個經驗法則......如果是客戶端,客戶端可以在提交之前更改它。

3

總是需要做服務器端驗證。

每個人都可以在不使用表單的情況下簡單地向服務器發送發送/獲取請求。

1

永遠不要信任任何來源的輸入。始終驗證服務器端。

+0

感謝無論誰進來或下來都投了票。您正在爲社區提供卓越的服務。 /諷刺 – Spechal

+1

看起來downvotes已經全部回滾。 (Stack Exchange很擅長挑選不合理的投票模式) –

0

服務器端驗證是絕對必需的。客戶端更適合用戶的便利功能/改進的用戶體驗。

0

始終使用服務器端驗證。前端驗證很容易禁用,並且有人可能在沒有您的表單的情況下發送數據來獲取應用程序中的錯誤數據(ajax,curl ....)。

前端驗證僅適用於可用性。

1

第一條規則: 永不信任任何數據!

第二: 客戶端上的任何事情都可以被簡單地欺騙。

第三: 不要相信任何規則,使用這樣的表達式absolutley強制性總是從未。 (是的,這是平等的,在同一時間的對立,以第一條規則)

(請你永遠跟隨在你的生活盲目規則!)

這取決於你需要什麼,你想要實現。客戶端驗證最大限度地減少了真實用戶的不良輸入,並幫助網站所有者最大限度地減少數據庫中的錯誤數據。但它並不妨礙程序員提交格式錯誤和/或濫用數據。爲了防止SQL注入或類似的攻擊,您需要某種服務器端驗證。但是,服務器端語法驗證並不能阻止用戶或程序使用正確的語法提交錯誤的數據。

因此,如果語法驗證是一個安全問題,需要進行服務器驗證。

注:我真的不喜歡我的答案,並贊成Justin E的一個。但所有其他答案都有點偏頗。希望別人能夠點擊。:-D

相關問題