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

?

二維碼在Web中應用的安全性研究

2017-07-29 15:45王麗芬蘇晨張景峰胡曉紅
電腦知識與技術 2017年12期
關鍵詞:二維碼安全性

王麗芬 蘇晨 張景峰 胡曉紅

摘要:隨著智能手機的普及,二維碼web應用程序的安全性成為了引人關注的問題。通過對二維碼web應用的安全漏洞進行分析,發(fā)現(xiàn)問題的根源是用二維碼存儲網(wǎng)址,只要繼續(xù)采用這種應用模式,就很難避免網(wǎng)絡攻擊,為此我們提出了二維碼新的應用模式。

關鍵詞:二維碼;Web應用;安全性

1概述

隨著智能手機的不斷普及,3G和4G網(wǎng)絡的迅速發(fā)展,人們對智能手機上的應用程序的需求異常高漲。智能手機和其他移動設備構成了移動服務平臺。這種新興的移動應用與強大的設備相結合,為人類的生活帶來了極大的便利。

Web應用程序的種類也在不斷增加,從最初的游戲、視頻,到現(xiàn)在的微信、微博,特別是隨著電子商務的不斷發(fā)展,人們已經(jīng)逐漸習慣了網(wǎng)絡購物,通過Web應用直接支付已經(jīng)成為了常態(tài)。特別是近年來,互聯(lián)網(wǎng)和金融行業(yè)的結合,已經(jīng)有大量的Web應用具有了支付功能.相信在不久的未來,具有支付功能的Web應用會愈來愈多。但是這里特別需要指出的是:具有支付功能的Web應用程序大部分都具有掃描二維碼的功能,而且將這一功能作為支付手段之一。那么這些二維碼Web應用是否安全?如何保障它們的安全性,這是一個值得高度關注的課題。

事實上,從新聞報道中經(jīng)??吹侥承┯脩羰褂檬謾C掃描二維碼被騙子詐騙的事件。例如:“據(jù)《錢江晚報》報道,浙江永康一陳女士近日因掃描了陌生人發(fā)來的二維碼,被騙走5000元。”類似的事件層出不窮,如果在Google上輸入“二維碼詐騙”作為關鍵詞,就會搜索出約439萬個結果,這說明掃描二維碼作為支付手段,這一功能存在巨大的安全隱患。特別是2014年3月13日央行發(fā)文暫停了支付寶二維碼支付業(yè)務,使得有關二維碼Web應用的安全陸問題成為了引人注目的問題。

隨著智能手機的不斷普及,人們對于移動設備上的應用程序的需求在不斷的高漲,然而如何設計與開發(fā)移動應用程序,所使用的移動應用程序是否安全,會面臨什么樣的安全挑戰(zhàn)?掃描二維碼存在哪些安全隱患?如何設計更安全的Web應用程序?下面對此進行了初步的分析。

2移動應用程序

在傳統(tǒng)意義上,把應用程序定義為幫助用戶執(zhí)行特定任務的,在計算機上運行的軟件,這種定義方式是為了將應用程序與系統(tǒng)軟件相區(qū)分。隨著智能手機的出現(xiàn)應用程序的定義已經(jīng)擴展為在智能手機和平板電腦上運行的軟件。移動應用程序的開發(fā)有多種模式,主要分為本體語言和Web方式。

本體語言通常指移動設備所支持的語言,例如iphone系統(tǒng)使用的本體語言是Objective-C,它是C++的一個變種。Android系統(tǒng)使用的本體語言是Java。使用本體語言進行開發(fā)具有程序運行效率高、速度快、安全性高等優(yōu)點。但是,開發(fā)的難度比較大,開發(fā)速度慢,開發(fā)成本也比較高。特別是Android系統(tǒng),由于要適配多種的設備,不同設備之間都有一些不兼容性,因此,開發(fā)和測試的工作量就非常大,開發(fā)成本也很高。

正如文獻所描述的,Web開發(fā)方式主要是采用HTML5,開發(fā)的基本方法是:運用HTML5語言和CSS3設計用戶界面,用JavaScript實現(xiàn)各種功能。由于HTML是在瀏覽器上運行的,因此可以做到與平臺無關。不論是iOS設備還是Android設備,只要它的瀏覽器支持HTML5,Web應用程序就可以正常的工作。這就極大地節(jié)約了開發(fā)成本。然而有利就有弊,HTML5的安全性問題同樣會造成Web應用程序的安全性問題。

作為新一代Web語言,HTML5憑借豐富的應用API、跨平臺等特點被公認為未來網(wǎng)頁技術的發(fā)展方向。然而不論HTML5具有多么強大的功能,它始終是一種描述網(wǎng)頁的標注語言,它必須通過瀏覽器來發(fā)揮其功能。HTML5的安全性同樣會影響Web應用的安全陸。

3Web應用的安全性

隨著移動終端及移動互聯(lián)網(wǎng)的迅速發(fā)展,在WEB應用中,使用HTML5已經(jīng)成為了常態(tài)。HTML5標準目前已經(jīng)被絕大多數(shù)瀏覽器所支持,特別是移動終端所使用的瀏覽器都支持HTML5標準。在現(xiàn)在的移動終端APP開發(fā)中,采用HTML5完成開發(fā)工作是最便捷的方法。

由于在Web應用大量使用HTML5標準,由H了ML5所引起的安全問題也導致了Web應用的安全問題,增加了攻擊者發(fā)動攻擊的幾率,擴大了可攻擊的范圍,并造成了嚴重的后果。早在2011年8月,歐盟網(wǎng)絡與信息安全局ENISA從安全角度來總體分析這套規(guī)范,發(fā)布了一份分析HTML5安全的文檔,宣布發(fā)現(xiàn)HTML5中的51個安全問題。隨著基于HTML5的互聯(lián)網(wǎng)應用及Web應用大規(guī)模推廣,其安全問題將逐漸暴露并引發(fā)關注。

雖然HTML5有許多安全隱患,但是在移動終端的Web應用中最容易出現(xiàn)的安全問題是:客戶端存儲、跨網(wǎng)站腳本。

3.1客戶端存儲安全問題

在HTMIA版本中,通常采用Cookies來處理本地信息的存儲問題,分配空間相對較小。在客戶端上,只需要存儲簡單的會話ID等少量信息,當用戶需要多次訪問相同數(shù)據(jù)時,需要多次向服務器端發(fā)送請求獲取,這種應用模式降低了Web應用的訪問性能。

在HTML5標準中,引入了LocalStorage的概念。允許瀏覽器在客戶端存儲大量數(shù)據(jù),并允許使用新類型的數(shù)據(jù)。這種方式大大提高了訪問性能,但是卻犧牲Web應用的安全性,由此帶來了巨大的安全隱患。采用LocalStorage的方式,敏感數(shù)據(jù)將被存儲在客戶端,攻擊者可以設計一個Web應用,在其中植入某些代碼,當用戶安裝了攻擊者設計的Web應用時,這些程序可以竊取移動終端上用戶的敏感數(shù)據(jù),導致了許多安全問題。

3.2跨網(wǎng)站腳本攻擊

跨網(wǎng)站腳本(Cross-site scripting,通常簡稱為XSS)是一種常見的網(wǎng)站應用程序的安全漏洞攻擊,是代碼注入的一種。一些惡意用戶將代碼注入網(wǎng)頁上,其他用戶在訪問這些頁面時就會受到攻擊。這類攻擊通常包含了HTML5以及Javascfipt等腳本語言。XSS攻擊通常指的是利用網(wǎng)頁開發(fā)時留下的漏洞,通過巧妙的方法注入惡意腳本到網(wǎng)頁上。

基本的攻擊手法是:利用Web應用中的文本輸入與交互窗口輸入一段包含了惡意攻擊的腳本,把惡意的腳本偽裝成一個鏈接,當輸入的信息在窗口上重新顯示,其他用戶點擊其中的鏈接就有可能受到攻擊。在大眾交互式應用,例如微信、微博等Web應用中,就很容易受到這種類型的攻擊。例如:“2011年6月28日,新浪微博出現(xiàn)了一次比較大的XSS攻擊事件。”具體攻擊手法是:攻擊者用短連接發(fā)布了一個新浪url:http://weibo.com/pub/star/g/xyyyd">?type-update。當用戶點擊該url時,新浪會對該字符串進行處理,變成類似http://weibo.corn/pub/star.php?g=xyyyd">?type=update。正常的應該是返回錯誤頁面,而由于應用程序沒有對參數(shù)g做充足的過濾,將參數(shù)值直接寫入到返回頁面,導致該腳本被執(zhí)行。

事實上,所有的Web攻擊的實現(xiàn)都需要在用戶自己的設備上運行一段攻擊代碼,只不過攻擊者采用了各種欺騙的手段,使得用戶自己沒有意識到而已。文獻列舉了許多Web安全的檢測手段和方法,這些檢測手段關閉了網(wǎng)絡攻擊的一扇扇窗戶,然而,使用手機掃描二維碼卻為網(wǎng)絡攻擊者打開了大門。許多掃描二維碼的Web應用對其掃描的結果沒有進行任何安全檢測,由此產(chǎn)生了大量的安全漏洞,并且已經(jīng)產(chǎn)生了嚴重的后果。

4二維碼的安全漏洞

目前流行的二維碼是日本Denso公司1994年發(fā)明的QR碼。與普通的一維條碼相比,OR碼可以存儲更多數(shù)據(jù),而且數(shù)據(jù)類型可以是任意的二進制數(shù)據(jù)。QR碼最早是用于汽車零部件的追蹤,隨著3G移動網(wǎng)絡的發(fā)展,移動互聯(lián)網(wǎng)逐漸發(fā)展起來,但是在當時流行的手機輸入網(wǎng)址是非常困難的。于是,日本的移動電話公司開始在有相機的移動電話上加入了OR碼的識讀軟件,這樣就減少了用戶在手機上輸入網(wǎng)址的麻煩。后來使用OR碼來存儲網(wǎng)址在日本的雜志及廣告上越來越流行,通過掃描QR碼上網(wǎng)就逐漸稱為了一種流行的應用模式。

然而隨著Apple的iphone手機的問世,以及后續(xù)的Android操作系統(tǒng)的誕生,智能手機獲得了飛速的發(fā)展,智能手機的功能也獲得了極大的豐富。在這種環(huán)境下,通過掃描二維碼上網(wǎng)和下載軟件雖然方便了廣大用戶,但也為犯罪分子從事不法活動打開了方便之門。

正如文獻所描述的,隨著二維碼技術的應用與推廣,二維碼已成為病毒在手機上傳播的主要通道。犯罪分子通過免費的二維碼生成工具和網(wǎng)站,將虛假信息、釣魚網(wǎng)站、手機病毒的網(wǎng)址編制成二維碼,并在一些媒體和廣告上發(fā)布,當消費者通過手機掃碼時,如果不加甄別就可能成為這些網(wǎng)絡攻擊的犧牲品。面對這樣的問題,如何解決?我們可以從二維碼的生成、識讀這兩個方向來考慮解決方案。

首先,我們考慮二維碼的生成。理論上說,只要具有二維碼的生成軟件,就可以生成包含任何信息的二維碼。在目前許多的二維碼應用中,生成的二維碼都包含網(wǎng)址,當客戶端對二維碼進行掃描和處理時,都需要調用瀏覽器進行瀏覽,這就有可能遭遇網(wǎng)絡攻擊。

其次,從二維碼的識讀方面。目前可以識讀QR碼的手機軟件達到了一百多款。這些軟件可以分為兩類。第一種是單純識讀二維碼,利用獲得的網(wǎng)址直接上網(wǎng)或下載軟件。另一種是將二維碼識讀集成到軟件系統(tǒng)中,將二維碼識讀作為一種輸入手段。例如:微信、支付寶等。

針對第一種單純識讀二維碼的軟件,我建議應該增加一個顯示二維碼內容的設置,使用戶在直接上網(wǎng)或下載軟件之前有一個選擇的機會,雖然這不能完全解決問題,但起碼可以防范一些犯罪行為的發(fā)生。

針對第二種類型的應用,對二維碼進行掃描的結果實際上可以看作是文本輸入。為了防范惡意的攻擊,必須對掃描的結果進行嚴格的過濾檢查,這類似于防范XSS漏洞的處理方法。但是由于二維碼包含的信息既可以是網(wǎng)址,也可以是任意的文本,因此過濾檢查并不能完全解決問題。最大的問題是:面對一個網(wǎng)絡地址,我們只能通過瀏覽器訪問的方式進行處理,但是在訪問的過程中,我們可能已經(jīng)遭遇了網(wǎng)絡攻擊。事實上,要想安全的使用二維碼Web應用程序,唯一的辦法是摒棄目前使用二維碼存儲網(wǎng)址的應用模式。

5二維碼的應用模式

改變二維碼的使用方式可以更好地解決web應用的安全問題。在許多集成二維碼的應用中,例如微信、支付寶等,二維碼主要是用來標識不同的賬號或用戶,這些賬號在應用系統(tǒng)中都有唯一的標識,如果在二維碼中僅存儲唯一標識而不包含網(wǎng)址,在應用程序中將唯一標識轉換為相應的網(wǎng)址,這樣Web應用的安全性就能夠大大的提高。下面通過一個例子來說明這種新的二維碼應用模式。

在市面上流通的商品都有商品條碼,對商品進行追溯在我國有著巨大的需求.如果我們在商品上印制一個二維碼,它包含的信息是:商品條碼、生產(chǎn)日期、商品唯一序列號。通過二維碼Web應用,我們就可以建立一個簡單的追溯體系。

第一步,使用Web應用掃描二維碼,可以由二維碼的掃描結果解析出:商品條碼、生產(chǎn)日期、唯一序列號。

第二步,商品條碼中包含了三個信息:國家、生產(chǎn)廠商編號、產(chǎn)品編號。

第三步,根據(jù)生產(chǎn)廠商的編號對應廠商的網(wǎng)址。

第四步,將產(chǎn)品編號、生產(chǎn)日期、唯一序列號作為參數(shù)傳遞給廠商的網(wǎng)站,進行查詢和追溯。

這樣建立的web應用安全性是可以保障的.首先,我們使用的二維碼僅包含一系列數(shù)字,對掃描結果進行解析是非常簡單的工作,如果掃描的結果不符合我們的要求,就可以直接退出系統(tǒng),這樣就保障了安全性。雖然我們的Web應用也需要通過網(wǎng)絡獲取信息,但是由于網(wǎng)址是我們在Web應用內部構造的,這就保證我們不會訪問到危險的網(wǎng)址。此外,這樣的Web應用并不是針對一個廠商建立的,對于所有的廠商,我們都可以使用,我們只需要更新“生產(chǎn)廠商編號與廠商網(wǎng)址”的對應表,就可以對系統(tǒng)進行擴展。

6結束語

總之,對于包含二維碼掃描功能的Web應用,不論是從使用者的角度,還是從設計者的角度,都要提高安全意識,只有逐漸摒棄使用二維碼存儲網(wǎng)址這種應用模式,才能夠真正的改善Web應用的安全性。

猜你喜歡
二維碼安全性
二維碼迷宮
二維碼
米氮平治療老年失眠伴抑郁癥的療效及安全性
讓嚴肅的二維碼呆萌起來
二維碼讓政務公開更直接
ApplePay橫空出世 安全性遭受質疑 拿什么保護你,我的蘋果支付?
二維碼,別想一掃了之
Imagination發(fā)布可實現(xiàn)下一代SoC安全性的OmniShield技術
平遥县| 北碚区| 临漳县| 明水县| 资源县| 深州市| 平乐县| 同仁县| 孝义市| 乐陵市| 德昌县| 保定市| 肇州县| 宁国市| 明溪县| 庐江县| 绍兴县| 宁海县| 新乡县| 柘荣县| 义乌市| 安平县| 凤冈县| 巢湖市| 临泽县| 陆川县| 林口县| 吉木萨尔县| 泸西县| 铁岭市| 英德市| 顺义区| 南陵县| 宜阳县| 双峰县| 崇左市| 河源市| 兴业县| 江门市| 曲阜市| 翁源县|