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 |