前端應該信任後端 API 提供的資料嗎?

時間 2021-05-07 00:47:24

1樓:Ivan

應該信任,不要浪費寶貴的開發時間。

前端對後端的不信任,最多也就是質疑下後端是不是合法正常的,其餘的不信任都是多餘的。

後端不信任前端的資料是因為只要符合api的規定就能呼叫,容易被非法利用。但是前端不相信後端的話,講道理那也不應該因為後端搞你而導致使用者相關資訊乃至系統完蛋吧?即使多此一舉地校驗了後端給的資料,真的是出錯了,那log你是回傳給這個呆瓜後端呢還是讓使用者想辦法提個 bug ?

2樓:傑林修

1。前端需要對後端的資料進行校驗,最典型來說,除非完全確認,不應該將後台資料直接以html形式來顯示,不然就是妥妥的XSS漏洞

2。前端不應該信任後端的資料是穩定的,是適合展示的,所以在前端載入資料中必然有自己解析的一步,後台傳來的是資料,結構型別和前台用來展示的資訊的數字結構完全由可能是不同的。

3樓:

在"可靠"的後端定義了"明確的api規範"的時候,你可以信任提供的資料

可靠的意思是,他對所有異常做了處理,進行了包裝,可以保證你的介面肯定是200的,不會出現發生異常還給你返回正常的狀態碼

明確的api規範的意思是,定義了如下介面

}這樣明確的介面,你是不需要對返回的userlist判斷是否為null或者undefined之類的

所以當你不完全信任你的後端的時候,請盡量對返回的資料做一些必要的判斷,尤其多層巢狀的時候。。。

4樓:

emmm...比如php的陣列可以字串為索引,到了前端變成物件,但是萬一這個陣列在php裡空了,那麼前端會看到空陣列…

如果有經驗的話,還是很容易規避的…一般還是要信任,只是可能一些資料格式要注意溝通

5樓:海淀遊民

當然應該信任了,當然沒必要再去校驗了。

資料的最高權威性不是由前端控制的,而是後端控制的,前端憑什麼質疑後端資料的權威性呢?

後端必須校驗是因為它對資料負全責,所以它必須制約一切可能會影響資料正確性的訪問

6樓:

信任你是指什麼?資料型別?資料格式?資料完整性?不能完全信任。因為你不能保證後端沒bug所以。一些關鍵邏輯要做驗證和降級。完全信任的話。心太大了

7樓:Magic

剛乙個專案生產出了點問題,原因是服務端返回資料錯誤碼是0(代表正常)但是缺少關鍵資料導致了客戶端災難性異常

按照我做介面的處理方式,有異常會直接丟擲,返回給前置系統讓他加上錯誤碼再返給客戶端。我這前端專案的介面明顯是自己捕獲處理了異常,導致了返回 「看起來正確的錯誤值」,這種情況我覺得加上api校驗很有必要

以下是原答案

我這的處理方式是把不符合逾期的資料完整的彈出來,剩下來的事業務會幫忙處理

8樓:拾月

原諒我題主,我今天眼花看錯了問題:

我看成了:

前任應該給後任提供API資料嗎?我心想:這問題絕了,API這個形容太牛x了。

結果定睛一看,老衲看錯了。

但是我還是決定寫下來。

9樓:白一梓

從程式安全性的角度考慮,應該互相不信任。正常情況下都是沒有問題的,但是你無法保證對方寫的程式一定沒有bug。一旦出現bug,就會出現讀取未定義物件屬性的問題,從而導致程式崩潰。

10樓:熊傑

一定程度上不應該相信, 前端要保證在各種情況下, 使用者都能有好體驗。 如果後端資料返回有問題, 也需要能給使用者操作的空間, 不能直接報錯導致介面完全不接受使用者操作了

11樓:PHP修行者-阿修羅

不能信任,前端應該從作業系統和資料庫自己程式設計烏鴉擼起,自己造輪子,然後信任自己研發的作業系統和資料庫以及語言,信任自己開發的才是可靠的。造完了,發現其他人不信任你的api,然後每個人都有一套自己的作業系統和資料格式,最重要的,每個人都信任自己了,堪稱完美。

然而,發現離開了瀏覽器,沒人在乎你在幹嘛。哈哈

12樓:雨打梨花

一般來說,前端呼叫後端介面這一層,只需要處理明確的錯誤碼,如果返回成功的話,不需要單獨針對每乙個欄位做額外的校驗。如果有問題的話,找後端按協議修改就好了,沒必要在這裡浪費時間。

其次,在使用後端傳遞的資料時,有經驗的工程師會做一些防禦性程式設計,處理異常情況(這個異常不一定是後端的資料,前端也需要),主要有幾種情況:

判斷是否是物件

判斷是否是陣列和陣列長度

因為這兩種情況是會直接報錯的。有條件的話再加上一些全域性的錯誤捕獲和上報方案,是後端資料導致的問題讓他們改就好了。

13樓:i5ting

1/合作,能用就用吧,不耽誤進度就好。

2/引導,教後端如何寫好,能不做就不做。

3/實在不行就自己來吧。組裝api超簡單,普通node即可,出故障機率極小

物競天擇,適者生存,唯不抱怨最難

前端是如何管理後端提供的API的?

張強張耳朵 要啥API,前端的終極目標就是客戶端直連資料庫,20年前大多數桌面應用就是這樣實現的。哦,現在換了個名字,叫serverless 槐槐 前端一般是api的消費者 後端是api的生產者 消費者怎麼去管理生產者的產品呢囧 產品有合適的說明呼叫方式就好了比如用swagger描述介面 第一,先跟...

應該學java後端還是前端?

IT小牛仔 前端和後端相對來說零基礎學習還是前端簡單一些,前端和後端前景都是很不錯的,薪資也是可觀的,這個還是看個人的興趣,喜歡哪個就學哪個。 老貓 1.學後端的話,如果專注於業務可以成為業務架構師,專注於技術的話可以成為技術架構師,相對而言會比較枯燥,但是能開發設計出穩定的系統還是很有成就感的。2...

有些工作應該前端做還是後端做?

1,有的跨域是後端做的。有的是前端做的,看情況,用最安全的方案。2,後端做。反正前端基本上就是拿洗得乾乾淨淨的資料直接展示。別的都不管的。 KentonYu Q2 難道服務端多收到幾個欄位會掛嗎?如果不會掛,服務端處理不處理其實對前端沒什麼影響吧,服務端不要用不拿就好了 如果會掛,那麼還是需要後端處...