也就是說,

前端通過JS腳本對輸入的數據合法性進行驗證;伺服器端也對輸入的數據進行合法性驗證。

兩邊都進行驗證是否多此一舉?


是常識,只是很多人不遵守。
後端的驗證是必須的,保證安全性。前端的驗證只是提高用戶體驗,降低伺服器壓力做的。


前端:體驗 加分後端:安全 必須

永遠記得,前端沒有任何安全性可言。

「擴展」前端的安全驗證是可以驗證數據的正確性,但是也有無數種方法繞過並偽造數據,但並不是說前端的驗證就不重要了,因為你要把用戶當白痴,幫助他保證數據的正確性而不至於一遍遍的提交。


「永遠不要相信來自於前端的輸入」。這條規則應該說是web開發的鐵律吧。舉個例子,一般公司內網的安全性都較差,而這一點我已經領略到了。我們公司之前有活動要報名,當然了,只有自己才能刪除自己的報名。那陣子剛接觸web開發,我很好奇,F12看了下我自己後邊的「刪除」& tag,href竟然直接上的postback(userid),強烈好奇心的驅使下,我挑了一個認識的id,興奮地click,接著網頁刷新一閃而過,妹子消失了。。趕緊抓起手機跟妹子道歉。。(啟發:不要試圖利用公司的技術漏洞玩兒火!)so,後台驗證是必須的。就因為這一次受啟發,回顧我們組的代碼,愕然發現也沒有做安全驗證,這都是隱患啊。跟組長提了這個問題,決定讓我來考慮後台緩存來自資料庫的數據、驗證前台輸入並與緩存對比以避免malicious actions from malicious users.

「要對自己寫的代碼負責。」


防君子不防小人,後端的驗證是必不可少的
推薦閱讀:
相关文章