国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

跨平臺(tái)移動(dòng)應(yīng)用開(kāi)發(fā)技術(shù)的安全性研究

2020-04-21 07:50:26柯芬芬
無(wú)線互聯(lián)科技 2020年5期
關(guān)鍵詞:安全漏洞

柯芬芬

摘? ?要:隨著移動(dòng)互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,移動(dòng)支付、共享單車、短視頻等相繼出現(xiàn)在眾人視野,與之相伴的各種高危漏洞也呈大幅上升的趨勢(shì)。文章對(duì)當(dāng)前流行的跨平臺(tái)移動(dòng)應(yīng)用開(kāi)發(fā)框架進(jìn)行優(yōu)缺點(diǎn)分析,然后對(duì)移動(dòng)應(yīng)用開(kāi)發(fā)過(guò)程中可能存在的WebView安全漏洞提出一些防護(hù)措施。

關(guān)鍵詞:跨平臺(tái)移動(dòng)應(yīng)用;安全漏洞;WebView

中國(guó)互聯(lián)網(wǎng)絡(luò)信息中心(China Internet Information Center,CNNIC)發(fā)布的第44次《中國(guó)互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計(jì)報(bào)告》[1] 顯示:截至2019年6月,99.1%的網(wǎng)民更青睞于使用手機(jī)上網(wǎng),龐大的移動(dòng)用戶意味著龐大的移動(dòng)市場(chǎng),因此各大企業(yè)紛紛將目光聚焦在移動(dòng)應(yīng)用開(kāi)發(fā)市場(chǎng)。各類黑客經(jīng)常以移動(dòng)應(yīng)用為目標(biāo),通過(guò)惡意獲取不同消費(fèi)者的個(gè)人信息和消費(fèi)細(xì)節(jié)來(lái)從中牟利,迫使開(kāi)發(fā)人員在構(gòu)建移動(dòng)應(yīng)用程序時(shí),需要密切關(guān)注移動(dòng)應(yīng)用的安全問(wèn)題。

目前,iOS和Android占據(jù)了移動(dòng)操作系統(tǒng)絕大多數(shù)的市場(chǎng)份額,如果開(kāi)發(fā)人員想要開(kāi)發(fā)一款支持多平臺(tái)的移動(dòng)應(yīng)用,就必須針對(duì)iOS和Android這兩個(gè)平臺(tái)分別開(kāi)發(fā),企業(yè)付出的成本和時(shí)間會(huì)成倍增加。于是跨平臺(tái)的概念走進(jìn)了人們的視野??缙脚_(tái)開(kāi)發(fā)是指應(yīng)用的開(kāi)發(fā)與運(yùn)行不依賴于操作系統(tǒng)和硬件環(huán)境,在一個(gè)系統(tǒng)下開(kāi)發(fā)的應(yīng)用,能同時(shí)運(yùn)行于其他系統(tǒng)和平臺(tái)中??缙脚_(tái)開(kāi)發(fā)是為了增加業(yè)務(wù)代碼的復(fù)用率,減少因要適配多個(gè)平臺(tái)所帶來(lái)的工作量,從而降低開(kāi)發(fā)成本,實(shí)現(xiàn)一套代碼多端使用,也能夠保證一致的用戶體驗(yàn)。本研究分析了當(dāng)前流行的跨平臺(tái)移動(dòng)應(yīng)用開(kāi)發(fā)技術(shù)的原理和優(yōu)缺點(diǎn),指出其在開(kāi)發(fā)移動(dòng)應(yīng)用程序時(shí)可能存在的安全問(wèn)題,并且提出了相應(yīng)的安全防護(hù)措施。

1? ? 跨平臺(tái)開(kāi)發(fā)框架

近幾年隨著小程序,Web及APP多端的發(fā)展,迫使企業(yè)在開(kāi)發(fā)移動(dòng)應(yīng)用時(shí)不得不考慮人力成本問(wèn)題,如果一款移動(dòng)應(yīng)用能同時(shí)具有iOS,Android等多個(gè)系統(tǒng)的版本,毋庸置疑該多平臺(tái)移動(dòng)應(yīng)用一定能進(jìn)入更大的潛在市場(chǎng),多端統(tǒng)一開(kāi)發(fā)已是大勢(shì)所趨。市場(chǎng)上跨平臺(tái)框架[2]較多,下面介紹幾個(gè)較為常用的框架:

1.1? uni-app

uni-app是一個(gè)使用Vue.js開(kāi)發(fā)所有前端應(yīng)用的框架,開(kāi)發(fā)者編寫一套代碼,可發(fā)布到iOS,Android,H5以及各種小程序等多個(gè)平臺(tái)。其優(yōu)點(diǎn)如下:(1)uni-app開(kāi)發(fā)體驗(yàn)對(duì)前端開(kāi)發(fā)者比較友好,學(xué)習(xí)成本低,上手很快。(2)是提供云打包和本地打包,對(duì)沒(méi)有蘋果Mac電腦的人是福音。(3)uni-app是由DCloud出品、國(guó)產(chǎn)開(kāi)源的框架,周邊生態(tài)豐富,官網(wǎng)提供了多個(gè)官方QQ交流群,開(kāi)發(fā)遇到問(wèn)題時(shí)可以在群里直接咨詢。(4)開(kāi)發(fā)出來(lái)的項(xiàng)目運(yùn)行性能良好,整體用戶體驗(yàn)效果和原生相差不大。但由于uni-app問(wèn)世的時(shí)間短,其的不足之處也較為明顯:(1)部分功能操作仍要求編程人員具備原生開(kāi)發(fā)經(jīng)驗(yàn)。(2)在使用過(guò)程中存在部分Bug及問(wèn)題,比如地圖、手機(jī)震動(dòng)。(3)涉及大量圖片展示時(shí),左右選項(xiàng)卡滑動(dòng)可能存在些許的卡頓。

1.2? Flutter

Flutter是Google推出并開(kāi)源的移動(dòng)應(yīng)用開(kāi)發(fā)框架,采用Dart語(yǔ)言開(kāi)發(fā)APP,其設(shè)計(jì)目標(biāo)是使開(kāi)發(fā)人員能夠交付在不同平臺(tái)上都感覺(jué)是自然流暢的高性能應(yīng)用程序,實(shí)現(xiàn)只需一套代碼就可以同時(shí)生成iOS和Android兩個(gè)高性能、高保真的應(yīng)用程序。

Flutter框架有以下幾點(diǎn)優(yōu)勢(shì):(1)Flutter提供了豐富的組件、接口,聚焦于原生體驗(yàn)的功能,分層的架構(gòu)允許開(kāi)發(fā)者創(chuàng)建美觀和高度定制的用戶體驗(yàn)。(2)Flutter的熱重載可幫助開(kāi)發(fā)者快速地進(jìn)行測(cè)試、構(gòu)建UI、添加功能并更快地修復(fù)錯(cuò)誤。在iOS和Android模擬器或真機(jī)上可以實(shí)現(xiàn)毫秒級(jí)熱重載,并且不會(huì)丟失狀態(tài),修改后,應(yīng)用界面會(huì)立即更新。(3)Flutter可以復(fù)用現(xiàn)有的Java,Swift或Objective-C代碼,訪問(wèn)iOS和Android上的原生系統(tǒng)功能和系統(tǒng)SDK。然而Flutter框架自身也存在不足之處,一是涉及硬件層功能場(chǎng)景的訪問(wèn),仍然需要用原生代碼實(shí)現(xiàn)接入;二是熱更新能力,相比H5,React有所欠缺。

1.3? React? Native

Facebook于2015年9月15日發(fā)布React Native框架,開(kāi)發(fā)者可以使用JavaScript和React開(kāi)發(fā)iOS和Android跨平臺(tái)移動(dòng)應(yīng)用,采用JavaScript和XML-esque標(biāo)記的混合編寫,提倡組件化開(kāi)發(fā),提供一個(gè)個(gè)封裝好的組件讓開(kāi)發(fā)者使用,組件也可以嵌套形成新的組件。

React Native框架的優(yōu)勢(shì)之處如下:(1)靈活高效的應(yīng)用更新,不論是使用Android還是iPhone手機(jī)下載應(yīng)用之后,開(kāi)發(fā)者都可以在用戶無(wú)感知的情況下加入新界面及新的業(yè)務(wù)邏輯。(2)一次學(xué)習(xí),隨處編寫,使用React-Native可以為iOS/Android兩個(gè)操作系統(tǒng)開(kāi)發(fā)應(yīng)用程序,不同平臺(tái)上的代碼根據(jù)平臺(tái)會(huì)有一些微小的區(qū)別,但開(kāi)發(fā)思路是相同的。(3)采用JS+原生渲染,擺脫了webview的交互和性能問(wèn)題,相比H5性能有所提高。但其缺點(diǎn)也較為明顯,如嚴(yán)重依賴于Facebook 的維護(hù),必須在不同平臺(tái)下寫兩套代碼;經(jīng)常有不可預(yù)期的Bug。

2? ? 跨平臺(tái)移動(dòng)應(yīng)用的安全漏洞與防護(hù)

一次編寫、多平臺(tái)運(yùn)行,不需要針對(duì)特定平臺(tái)進(jìn)行開(kāi)發(fā)的跨平臺(tái)移動(dòng)應(yīng)用備受編程者的青睞,但隨之而來(lái)的就是移動(dòng)應(yīng)用安全問(wèn)題[3]的凸顯,黑客利用跨平臺(tái)移動(dòng)應(yīng)用程序可能存在的漏洞來(lái)進(jìn)行攻擊,其中WebView引起的安全問(wèn)題和漏洞尤為明顯。WebView是iOS/Android用于顯示網(wǎng)頁(yè)的控件,是一個(gè)基于Webkit引擎、展現(xiàn)Web頁(yè)面的控件。Android平臺(tái)的WebView組件主要存在WebView任意代碼執(zhí)行漏洞[4]、密碼明文存儲(chǔ)漏洞,下面針對(duì)上述漏洞作一些介紹。

2.1? WebView任意代碼執(zhí)行漏洞

WebView任意代碼執(zhí)行漏洞產(chǎn)生的原因:由于WebView未正確限制調(diào)用addJavascriptInterface()方法,遠(yuǎn)程攻擊者可通過(guò)使用Java Reflection API(Java反射機(jī)制)利用該漏洞執(zhí)行任意Java對(duì)象的方法。

解決方案:Android API level 17以及以上的系統(tǒng)版本,被JavaScript調(diào)用的方法必須以@JavascriptInterface進(jìn)行注解聲明,同時(shí)設(shè)置minSdkVersion值大于或等于17,使應(yīng)用不能在4.2以下系統(tǒng)上運(yùn)行。

2.2? WebView密碼明文存儲(chǔ)漏洞

WebView密碼明文存儲(chǔ)漏洞產(chǎn)生的原因:由于WebView組件默認(rèn)開(kāi)啟密碼保存功能mWebView.setSavePassword(true),當(dāng)用戶輸入密碼時(shí),會(huì)彈框詢問(wèn)用戶是否保存密碼,如果選擇是,密碼會(huì)被明文保存到應(yīng)用數(shù)據(jù)目錄的databases/webview.db中,這樣會(huì)造成用戶的個(gè)人敏感數(shù)據(jù)泄露。

解決方案:調(diào)用mWebView.getSettings().setSavePassword(false)代碼來(lái)顯示關(guān)閉WebView密碼保存提醒功能。

iOS平臺(tái)的WebView組件(UIWebView/WKWebView)存在控件跨域訪問(wèn)漏洞,產(chǎn)生漏洞的原因是UIWebView 默認(rèn)允許“file://” 域發(fā)起跨域請(qǐng)求,而WKWebView可通過(guò)手動(dòng)設(shè)置允許“file://”域發(fā)起跨域請(qǐng)求。攻擊者可利用App文件下載機(jī)制將惡意文件寫入沙盒內(nèi)并誘導(dǎo)用戶打開(kāi),當(dāng)用戶打開(kāi)惡意文件時(shí),其中的惡意代碼可通過(guò)AJAX向“file://”域發(fā)起請(qǐng)求,從而遠(yuǎn)程獲取App內(nèi)所有的本地敏感數(shù)據(jù)。iOS平臺(tái)的應(yīng)用一旦在使用WebView組件時(shí)未考慮上述情況的話就會(huì)受到漏洞影響,其解決方案是盡量避免在WebView中加載來(lái)自外部傳入的“file://”域頁(yè)面;對(duì)于敏感信息數(shù)據(jù),建議進(jìn)行加密處理后存儲(chǔ),或使用iOS平臺(tái)推薦的KeyChain服務(wù)進(jìn)行存儲(chǔ),可緩解漏洞可能造成的破壞。

3? ? 結(jié)語(yǔ)

本研究首先對(duì)當(dāng)前流行的跨平臺(tái)移動(dòng)應(yīng)用開(kāi)發(fā)框架進(jìn)行優(yōu)缺點(diǎn)分析,緊接著對(duì)在開(kāi)發(fā)過(guò)程中利用WebView組件時(shí)可能存在的安全漏洞進(jìn)行闡述,并且提出相應(yīng)的解決方案。

[參考文獻(xiàn)]

[1]中國(guó)互聯(lián)網(wǎng)絡(luò)信息中心.第44次中國(guó)互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計(jì)報(bào)告[EB/OL].(2019-08-30)[2020-03-10].http://www.cnnic.net.cn/hlwfzyj/.

[2]金誠(chéng).移動(dòng)應(yīng)用跨平臺(tái)開(kāi)發(fā)框架的比較分析[J].民營(yíng)科技,2018(10):150-152.

[3]愛(ài)加密平臺(tái).2019年第二季度全國(guó)移動(dòng)App安全性研究報(bào)告[EB/OL].(2019-08-09)[2020-03-10].https://www.freebuf.com/column/210912.html.

[4]黃青青.Android應(yīng)用中的JavaScript使用模式及其安全漏洞分析[D].南京:南京理工大學(xué),2017.

Research on security of cross-platform mobile application development technology

Ke Fenfen

(Jiangxi Modern Polytechnic College, Nanchang 330095, China)

Abstract:With the continuous development of mobile Internet technology, mobile payments, bike sharing, short videos, etc. have appeared in the publics eyes one after another, and various high-risk vulnerabilities accompanying it have also shown a significant upward trend. This article analyzes the advantages and disadvantages of the current popular cross-platform mobile application development framework, and then puts forward some protection measures for WebView security vulnerabilities that may exist in the process of mobile application development.

Key words:cross-platform mobile applications; security breach; WebView

猜你喜歡
安全漏洞
基于大數(shù)據(jù)技術(shù)的軟件安全漏洞自動(dòng)挖掘方法研究
信息安全研究(2021年6期)2021-06-04 06:55:38
計(jì)算機(jī)軟件中安全漏洞檢測(cè)技術(shù)的運(yùn)用初探
安全漏洞國(guó)際披露政策研究
基于模糊測(cè)試技術(shù)的軟件安全漏洞挖掘方法研究
智能設(shè)備安全漏洞知多少
安全漏洞太大亞馬遜、沃爾瑪和Target緊急下架這種玩具
玩具世界(2018年6期)2018-08-31 02:36:26
安全漏洞檢測(cè)技術(shù)在計(jì)算機(jī)軟件中的應(yīng)用
基于安全漏洞掃描的校園網(wǎng)告警系統(tǒng)的開(kāi)發(fā)與設(shè)計(jì)
小洞不補(bǔ) 大洞吃苦安全漏洞你有嗎?
汉阴县| 蓬安县| 桃江县| 二连浩特市| 瑞昌市| 巢湖市| 阿拉善盟| 盐山县| 新丰县| 大港区| 松潘县| 昆山市| 庆元县| 汉中市| 秭归县| 禄丰县| 嘉荫县| 德阳市| 洛川县| 北碚区| 石屏县| 苗栗市| 祥云县| 白玉县| 武汉市| 镇江市| 鹿泉市| 康定县| 姜堰市| 琼中| 天水市| 镇远县| 射洪县| 丰台区| 水富县| 连城县| 新闻| 青州市| 固原市| 临西县| 嘉善县|