JSP渲染比Ajax渲染更安全?(阿里的大神讓我放棄Ajax的想法,說ajax存在安全缺陷)?
今天開產品技術會,要開發一個單頁面的管理後台,我申請用單頁面框架去做。老大(之前在阿里是技術專家)直接讓我放棄用Ajax的想法,說是用jsp更安全,Ajax存在安全缺陷,也沒跟我說具體是怎樣的缺陷,怎樣不安全。我很不解,希望各位大神能把我掰過來,我還是認為Ajax也一樣可以保證安全,登陸後服務端生成token和ip賬戶綁定不可以嗎?希望有人幫我從安全性,或者其他方面分析一下jsp後端渲染和前端渲染的優缺點。
如果對於不會寫 JavaScript、不懂前端的人,我覺得可能是這樣的。
所以是「之前」的阿里技術專家(滑稽
管理後台。從安全考慮,難道不是只能限定 IP 什麼的訪問~。
這是個假的技術專家。
這個 「技術專家」 缺乏的只是技術廣度的認知罷了,倒不至於輕易說他不具備這個資格(假設他的職業經歷沒有水分的話)。
如果 Ajax 缺乏安全,所有數據都必須在後端處理的話。那麼所有的客戶端應用都是不安全的,不僅僅指的瀏覽器 Web 前端。
即使說非得強制要求後端渲染所有數據,也不應該用 JSP 啊? Velocity、 FreeMarker 沒聽過?這完全是折騰底下開發啊。
言歸正傳,SPA 不安全?或者說你們做不好安全?沒關係啊,有現成的例如 JWT 這種解決方案啊,完全支持 JWT 標準的 Java 框架一隻手數不完。
技術專家一句話... 受苦受累的是底下開發,你們要爭取到這個權利。還好他沒說 「Spring Data 效率太差,用 JDBC」 這種話,不然你們豈不是要跳樓?
———— 看了全部回答,更新一下:
大致反對掉其它大部分回答,他們提到的:CSRF、Cookie、Session、參數簽名、JSONP 等。跟 SPA 安全不安全沒有任何的關係,這些點和非 SPA 網站安全性是等同的。
技術上而言,沒有不安全。
除非瀏覽器的同源機制不起作用,否則AJAX還是安全的.
我想樓主的老大說的應該是AJAX渲染HTML和伺服器端渲染HTML時的安全問題,主要就是XSS注入這類問題.他應該認為前端JS渲染HTML時XSS過濾沒有後端那麼可靠.
因為題主眼中的「前阿里技術專家」的一個觀點,使得「阿里技術專家」成為了搶月餅事件之後的又一個槽點。。
如果是沒有現成的組件,做好安全是挺麻煩的,要做csrf,做參數簽名防篡改,不過用jsp風險也不會小很多。阿里內部一樣用ajax,請大家不要地圖炮阿里的技術,只是這個奇葩在阿里干過而已
我進來是想看看 ajax 到底有什麼彌補不了的安全漏洞 的
麻煩知道的大神, 科普一下。
在阿里專業負責打雜嗎?不知你有沒有聽過這樣的新聞,淘寶將ajax替換成fetch。首先,阿里是用ajax的,你可能會問什麼是fetch?不就是支持service worker代理的ajax的promise版本嗎。阿里內部大量使用ajax,fetch,怎麼就不安全了?cookie http only加好,token加好,refer加號,怎麼就不安全了
從安全形度來說,這兩個方式和安全都沒有關係。還有什麼post比get安全之類的說法,完全是在侮辱抓包軟體和黑客的智商。
不想當將軍的士兵不是好裁縫的程序員版!
他應該是考慮到比你更多,比如這個項目沒那麼多人用,開發進度也沒那麼緊,那安全問題肯定更重要。純ajax如果支持jsonp的話,csrf幾乎無解,除非判斷referer,如果用jsp的話可以把token放頁面然後放參數裡頭。
JSP傳統是做多頁面應用系統,現在也常和REST一起做單頁面應用系統。JSP和AJAX不是一個層面的東西。如果對方想表達的是說傳統JSP多頁面系統比現在基於Ajax/React的單頁面系統更安全,也不正確。JSP比Ajax唯一的安全優勢是可以設計成禁止掉客戶端的JS也能運行,但是帶來技術平台的損失也是巨大的。打個比方說,一台不聯網的電腦更安全,但是用戶更需要一台聯網的電腦,並且處理好聯網帶來的安全問題。
阿里的技術專家認為該用jsp?
jsp需要伺服器運算能力去生成一個html頁面,佔用的是伺服器運算能力,阿里能受得了用這種模式做自己的網頁?
高並發下,伺服器扛得住?
如果阿里把淘寶頁面用jsp寫了,雙十一之後用jsp寫淘寶頁面的人沒被打死算我輸。
怎麼感覺這個身份和建議非常不協調啊。
再說了,非要後端渲染頁面,為何不用模板框架?
jsp寫著不累?
阿里技術專家就這尿性?
他想說csrf吧…但是不見得不能單頁控制住,只要協議,session,或是cookie控制好!
你叫這個阿里大神去給那些ajax用得飛起google大神賜教一番如何。討論技術不說細節不是耍流氓,是嫖宿幼女。隨便吐些驚世駭俗之言論,然後笑而不語不解釋,這種逼我分分鐘能裝幾萬次。
存在安全隱患的不是Ajax,而是前後端交互數據的安全問題
1. 按需返回欄位,
2. 關鍵操作參數鑒權、合法性檢驗、防止介面被枚舉猜想3. 數據脫敏處理這些問題服務端內部調用介面並渲染可以規避!
舉個例子,通過訂單號查詢賣家旺旺ID,後端處理不當很可能就把賣家支付寶泄露了(直接序列化返回,這在阿里比較常見)推薦閱讀:
※vue 會做出類似 react fiber 的底層改寫嗎?
※Vue.js 的官方文檔是不是太簡略了點?
※vue build 在伺服器build還是在本地build之後放在伺服器?
※Vue.js 怎麼讓 B 組件「繼承」 A 組件的 props 屬性?
※如何使用vue.js構造modal(彈窗)組件?
TAG:JavaScript | Ajax | Java | React | Vuejs |