首頁 >後端開發 >php教程 >javascript - 如何更簡單驗證前端來的資料是否合法

javascript - 如何更簡單驗證前端來的資料是否合法

WBOY
WBOY原創
2016-08-04 09:19:141156瀏覽

按照正常的觀點來說,我們是絕對不能夠相信前端來的數據,但是例如表單提交,我前端js要驗證過,後端又要驗證過,驗證的東西少還好,一多(規則複雜)就麻煩了,有沒有什麼辦法確保前端資料一定合法,或者後端只要簡單驗證下就好(就是有點像表單令牌那玩意,雖然他是用來防止重複提交)

回覆內容:

按照正常的觀點來說,我們是絕對不能夠相信前端來的數據,但是例如表單提交,我前端js要驗證過,後端又要驗證過,驗證的東西少還好,一多(規則複雜)就麻煩了,有沒有什麼辦法確保前端資料一定合法,或者後端只要簡單驗證下就好(就是有點像表單令牌那玩意,雖然他是用來防止重複提交)

前端校驗只是提升使用者體驗而已,後端校驗才是必須要做的。

關於你這個問題,可以搜尋前後端同構這個話題,大意做法就是利用nodejs做中間層,把前端的校驗程式碼在nodejs也部署一套,避免後端(這裡的後端是指與nodejs通訊的後端,而不是nodejs本身)再重新實作一遍校驗邏輯。

使用框架,如yii,
每個表單在model層定義一個Form模型,裡面定義一些rules方法。自帶很多校驗規則,如郵箱,字串長度,枚舉等等。當然特殊規則也可以自己定義。

防止重複提交或機器模擬提交最好的方法還是加驗證碼。

有沒有辦法確保前端資料一定合法,或是後端只要簡單驗證下就好

題主也說了絕對不能相信前端的數據,那麼前端做了任何效驗,後端也需要做保持一致的效驗。

後台一定要校驗的,因為可以透過模擬的方式向後端發送請求,這樣就跳過了前端的驗證

就算前端做的校驗再怎麼好。後端還是要確保完整的校驗。而不能簡單的驗證一下。
你不能保證發送資料的人就是透過你的那套校驗發送資料的。
另外,前端校驗也算是提升一下使用者體驗。

有沒有辦法確保前端資料一定合法
那就要確保後端收到的資料一定是來自校驗過的前端,這個在Web上很難做到

那呢,你寫校驗的時候問前端要一份他們寫的校驗代碼,改一改(微笑)

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn