1. 程式人生 > >第三方Flash元件帶來的安全問題

第三方Flash元件帶來的安全問題

提醒:本文最後更新於 2364 天前,文中所描述的資訊可能已發生改變,請謹慎使用。

大家知道,在不支援以Ajax方式傳送二進位制資料流的瀏覽器中,要實現帶進度的檔案上傳功能,一般需要藉助Flash了(通過type=file表單上傳,加上JS定期向伺服器輪詢也可以得到進度,不過不在本文討論範圍。同樣,ActiveX等方案也不在這裡討論)。除了顯示進度,Flash還能批量新增檔案,限制檔案大小、型別。到現在,Flash實現的檔案上傳在國內仍然算得上主流方案。

但是,幾個月前,幾個常用的第三方Flash上傳元件紛紛被爆出XSS和CSRF漏洞(不知道什麼是XSS/CSRF,以及它們危害的同學請自行搜尋)。問題產生的原因主要有兩類:

一類是Flash裡通過ExternalInterface.call執行JS時,使用了HTML中通過queryString傳遞過來的變數,並且沒對引數進行檢查或過濾,由此引發XSS。我知道有此問題的元件包括:SwfUpload V2.2/V2.5,Uploadify V2.1.4。

另外一類是Flash程式碼裡通過Security.allowDomain('*'),破壞了Flash原本的沙箱安全。使得第三方藉助這個swf檔案獲取token等敏感資訊成為可能,從而引發CSRF攻擊。我知道有此問題的元件有:Plupload V1.5.3。

如果你在專案中使用上述版本的Flash上傳元件,建議儘快採取措施排除風險。對於Uploadify和Plupload來說,官方一直都有更新,推薦直接去官方更新到最新版。對於SwfUpload,官方源已經有2年沒動靜,應該是已經處於無人維護的狀態。如果堅持要用它,建議下載原始碼進行修改。簡單說下修改方法(以V2.2為例,V2.5類似):安裝

FlashDevelop,開啟原始碼中SWFUpload v2.2.0.1 Core/Flash路徑下的SWFUpload v2.as3proj專案檔案,修改SWFUpload.as並重新編譯:

this.movieName = root.loaderInfo.parameters.movieName; //修改為:
this.movieName = root.loaderInfo.parameters.movieName.replace(/[^\w\.-]/g, '');

修改完後,可以用如下格式的引數驗證漏洞是否堵上:

www.example.com/swfupload.swf?movieName=%22])}catch(e){if
(!window.x){alert(1);window.x=1}}try{([%22

另外,由於上面提到的Flash上傳元件被廣泛使用,所以大家日常使用的開源web專案也需要排查下,並及時升級。例如,著名的wordpress前不久釋出的新版就解決了這類問題;國內開源Web編輯器KindEditor新版使用的SWFUpload則依舊存在問題。

(本圖不惜洩露我的隱私,留作紀念:))

--EOF--

提醒:本文最後更新於 2364 天前,文中所描述的資訊可能已發生改變,請謹慎使用。

相關推薦

第三方Flash元件帶來安全問題

提醒:本文最後更新於 2364 天前,文中所描述的資訊可能已發生改變,請謹慎使用。 大家知道,在不支援以Ajax方式傳送二進位制資料流的瀏覽器中,要實現帶進度的檔案上傳功能,一般需要藉助Flash了(通過type=file表單上傳,加上JS定期向伺服器輪詢也可以得到進度,不過不在本文討論範圍。同樣,

Java精品高級課,架構課,java8新特性,P2P金融項目,程序設計,功能設計,數據庫設計,第三方支付,web安全,視頻教程

數據庫設計 zfs 調優 pex 完整版 city 後臺 中間件 集群 36套精品Java架構師,高並發,高性能,高可用,分布式,集群,電商,緩存,性能調優,設計模式,項目實戰,P2P金融項目,大型分布式電商實戰視頻教程 視頻課程包含: 高級Java架構師包含:Sp

36套精品Java高級課,架構課,java8新特性,P2P金融項目,程序設計,功能設計,數據庫設計,第三方支付,web安全,高並發,高性能,高可用,分布式,集群,電商,緩存,性能調優,設計模式,項目實戰,大型分布式電商項目實戰視頻教程

java cti 投資 調優 dubbo pac 性能 -s clas 36套精品Java高級課,架構課,java8新特性,P2P金融項目,程序設計,功能設計,數據庫設計,第三方支付,web安全,高並發,高性能,高可用,分布式,集群,電商,緩存,性能調優,設計模式,項

jquery 第三方控制元件ztree使用說明

1、引入相關資源 <link href="zTree/zTreeStyle/zTreeStyle.css" rel="stylesheet" /> <script src="../javascript/jquery-1.7.1.min.js">&l

React-Native開發中常用的第三方控制元件持續更新

筆者簡書:https://www.jianshu.com/u/8ba7c349861d, 歡迎大家關注 2018.8.23更新: 動態修改Android的softmodule: react-native-android-keyboard-adjust    

Githup上第三方控制元件的地址收藏

倒計時 https://github.com/iwgang/CountdownView RecyclerView實現帶有頭部的頂部懸浮置頂佈局https://github.com/byd666/CeilingDemo Android載入Gif和ImageView的通

React-Native學習之第三方開源元件--側滑欄----react-native-side-menu

react-native-side-menu 側滑欄元件 1.匯入方式 切換到當前目錄在命令列執行下面的命令 npm install react-native-side-menu --save 開啟package.json檢視是否成功匯入

探祕 Spring Cloud 生態微妙變化下的第三方獨立元件發展現狀

Spring Cloud生態正經歷著一些變化,前有Netflix閉源Eureka,後有Netflix宣佈Hystrix停止開發新功能。同時,Spring Cloud也從依賴生態夥伴提供關鍵元件,演變到自己開發適配關鍵元件,例如提供了Spring Cloud Zuul/Spring Cloud Con

基於uniGUI的第三方控制元件Unifalcon的安裝

Unifalcon是一組基於unigui的第三方UI元件,是一套漂亮實用的UI控制元件,用這套控制元件可以輕易設計出漂亮美觀的介面。控制元件的安裝方法如下:(控制元件官方網站https://store.falconsistemas.com.br/) 將壓縮包完全解壓

Asp.Net MVC4入門指南(10):第三方控制元件Studio for ASP.NET MVC4 工具應用

ComponentOne Studio for ASP.NET最新版本2013V1支援MVC4,其中包括: 新增 MVC 4 工程模板 (C# & VB) 開箱即用的MVC 4 工程模板基於Microsoft內建模板建立,我們僅優化了標記和CSS樣式為預設風格,熟悉的模板佈局和介面風格,無疑將縮

如何使用第三方控制元件上傳圖片?

第一步下載,commons-fileupload-1.2.2.jar和commons-io-2.4.jar建議在API中參考使用到的類和介面將jar匯入專案中(WEB-INF/lib),並勿忘 build Path;修改新增新聞的頁面newsDetailCreateSimpl

第三方控制元件DevExpress.repositoryItemCheckEdit複選擇框多選的問題

最近一直在弄第三方控制元件DevExpress,在gridcontol中巢狀進複選框,卻只能單選,為了解決此問題在網上查了相關資料,並結合專案情況,最終得以解決1、在GridView中某列中新增進複選框,相關的資料繫結設定成0或1進行繫結。2、新增事件(此程式碼為轉載)

ActiveX控制元件實現安全的初始化和指令碼

要想建立一個能夠在IE中成功載入而沒有“不安全”的警告或者錯誤提示資訊的ActiveX控制元件,我們必須實現安全的初始化和指令碼。基本上,所有要做的工作都是在DllRegisterServer 和DllUnregisterServer這兩個函式中完成的。下面,我們就來

c# 第三方控制元件 多語言設定問題

  最近有個專案用了第三方控制元件,ComponentOne Studio ,介面本身支援多語言,包括中文,但程式執行起來,控制元件只有英文介面。   查半天資料沒有結果。   原因:VS專案有語言支援設定,SupportedCultures,預設值為空   VS本身沒有

Android中第三方控制元件PhotoView的基本使用

PhotoView的簡介:這是一個圖片檢視庫,實現圖片瀏覽功能,支援pinch(捏合)手勢或者點選放大縮小。支援在ViewPager中翻頁瀏覽圖片。 PhotoView 是一款擴充套件自Android ImageView ,支援通過單點/多點觸控來進行圖片縮放的智慧控制

常用的delphi第三方控制元件

      AutoUpgrader 這個是自動更新的一個控制元件,適合桌面程式自動更新,但是已經沒有更新了。       Devart 公司出品的UniDAC,ODAC,SDAC,IBDAC, 這幾個是目前delphi 資料庫存取最好的控制元件,UniDAC 幾乎支援所有的資料庫存取,而後面幾個則是針對每種

第三方控制元件:上拉載入、下拉重新整理控制元件

使用: (1)匯入第三方外掛庫 Android-PullToRefresh-master.zip (2) 在佈局檔案中使用第三方外掛 com.handmark.pulltorefresh.library.PullToRefreshListView (3) 自定

Delphi第三方控制元件大測評

  古人云∶“工欲善其事,必先利其器。” 這句話,我想凡是用Delphi的朋友,應該都有很深切的體會吧。的確,如果Delphi沒有了控制元件的支援,那麼人氣度一定會大大的降低,不會有現在這樣多的Fan了,俺也就改行用BCB或VC了,呵呵。 但是,現在控制元件滿天飛,不要說D

C# Winform專案中多執行緒環境下, 如何跨執行緒對Window窗體控制元件進行安全訪問?

請嘗試執行這段程式碼, 結果你會發現微軟開發工具會提示, Tb_Text.Text = int_Index.ToString(); 涉及"對Windows窗體控制元件進行執行緒安全呼叫", 並給瞭如下的解決方案:https://msdn.microsoft.com/zh-cn/library/ms171728

開源第三方登入元件OAuthLogin2.0 架構解析及開源地址

OAuthLogin2.0介紹地址:   入門地址:http://www.cnblogs.com/dazhuangtage/p/6306133.html Nuget地址:https://www.nug