楊剛 胡盼紅 古煒
"【摘 要】隨著移動通信3G技術(shù)的普及和4G技術(shù)投入應(yīng)用,移動終端不再僅是通訊網(wǎng)絡(luò)的終端,還成為互聯(lián)網(wǎng)的終端,移動設(shè)備與電腦之間的界限越來越不明顯,以前在臺式機(jī)上運行的應(yīng)用大多可以移植到手機(jī)、平板電腦等移動設(shè)備上,這樣更有利于快速掌握重要信息,移動應(yīng)用成為近幾年的應(yīng)用熱點。
【關(guān)鍵詞】移動應(yīng)用系統(tǒng);設(shè)計;技術(shù)
1 系統(tǒng)設(shè)計
隨著企業(yè)信息化進(jìn)程的邁進(jìn),公司相繼建設(shè)了多個生產(chǎn)和辦公系統(tǒng),在實際應(yīng)用過程中發(fā)揮了巨大的作用,充分體現(xiàn)了信息交流、協(xié)同、協(xié)作的特點,達(dá)到了信息共享、專業(yè)信息集成的目的。
1.1 系統(tǒng)目標(biāo)
1)充分利用中國石油移動辦公的安全機(jī)制。
2)建設(shè)界面美觀、易于擴(kuò)展、功能齊全的移動辦公平臺。
3)集成對標(biāo)系統(tǒng),能對國際對標(biāo)和國內(nèi)對標(biāo)等經(jīng)營數(shù)據(jù)進(jìn)行展示。
4)集成目前勘探開發(fā)系統(tǒng)的重要信息,對領(lǐng)導(dǎo)關(guān)心的重要生產(chǎn)數(shù)據(jù)在移動設(shè)備上進(jìn)行展示。
5)對目前OA系統(tǒng)進(jìn)行補充,開發(fā)會議、印章、請假審批功能,并實現(xiàn)領(lǐng)導(dǎo)在移動設(shè)備上的審批。
1.2 設(shè)計原則
1)安全性原則。系統(tǒng)安全穩(wěn)定運行是移動應(yīng)用生命力的重要保證之一。由于移動應(yīng)用基于公共通信網(wǎng)絡(luò),所以在數(shù)據(jù)存儲、數(shù)據(jù)傳輸中的安全性尤為重要。
2)模塊化原則。各個系統(tǒng)基于移動開發(fā)系統(tǒng)平臺實現(xiàn),采用成熟的網(wǎng)絡(luò)、表格、繪圖、工作流等模塊開發(fā),系統(tǒng)架構(gòu)穩(wěn)定。
3)可配置原則。移動辦公系統(tǒng)從一開始設(shè)計時就充分充分考慮到未來移動應(yīng)用的需求和使用前景,因此是完全按照產(chǎn)品化、中間件的設(shè)計思路實現(xiàn),最大限度的采用用戶自定義的方式實現(xiàn)。
4)最佳用戶體驗原則。移動辦公系統(tǒng)操作簡單、易用,人機(jī)界面友好,能夠?qū)崿F(xiàn)表格拖動、數(shù)據(jù)鉆取、固定表頭等便于用戶交互操作的需求。
1.3 總體架構(gòu)
移動辦公平臺由四部分組成:①數(shù)據(jù)集成。將現(xiàn)有信息系統(tǒng)中的適合在移動終端上展示的部分遷移到移動應(yīng)用平臺上。②工作審批。在現(xiàn)有OA系統(tǒng)基礎(chǔ)上加以擴(kuò)展,包括會議審批、請假審批、印章審批。③移動數(shù)據(jù)服務(wù)端。用于存儲通過數(shù)據(jù)接口從已有的應(yīng)用系統(tǒng)中取得的數(shù)據(jù),通過數(shù)據(jù)校驗機(jī)制,保證移動端的數(shù)據(jù)與已有的應(yīng)用系統(tǒng)中的數(shù)據(jù)同步。④移動數(shù)據(jù)客戶端。在基于IOS的移動終端上以圖形、圖表的方式展示數(shù)據(jù),并支持?jǐn)?shù)據(jù)鉆取。
1.4 功能架構(gòu)
1.5 數(shù)據(jù)庫設(shè)計
數(shù)據(jù)庫設(shè)計按照現(xiàn)有運行系統(tǒng)的數(shù)據(jù)標(biāo)準(zhǔn)建立,數(shù)據(jù)表名、數(shù)據(jù)項名稱、數(shù)據(jù)項代碼、數(shù)據(jù)類型等與原系統(tǒng)保持一致。數(shù)據(jù)庫軟件采用Oracle10G。
2 關(guān)鍵技術(shù)
2.1 開發(fā)工具
系統(tǒng)開發(fā)工具主要采用基于原生(Native)的Xamarin開發(fā)框架,Xamarin是目前少數(shù)提供原生解決方案的跨平臺開發(fā)工具,原生應(yīng)用程序包含以下特性:①使用標(biāo)準(zhǔn)的用戶界面并符合各個在用平臺的設(shè)計準(zhǔn)則。配合硬件裝置以提供優(yōu)化的效能。②Xamarin將原生的 IOS及Android API轉(zhuǎn)換為C# 函式庫供使用者使用,開發(fā)人員可使用C#撰寫程序,并呼叫原生平臺(IOS, Android)的API,且透過良好的設(shè)計,可以在不同平臺共享部分程序代碼。③開發(fā)人員可透過Xamarin編譯程序,直接將程序編譯為ARM的執(zhí)行文件,并進(jìn)行各平臺的封裝。編譯封裝完成的App由于不經(jīng)過中間轉(zhuǎn)譯,直接編譯為原生的二進(jìn)制執(zhí)行文件,因此具有好的運作效能。作為一個跨平臺開發(fā)框架,Xamarin有很多優(yōu)點。
2.2 關(guān)鍵技術(shù)
1)動態(tài)數(shù)據(jù)表及字段數(shù)據(jù)項,可以通過在服務(wù)器端配置各個子模塊下顯示的數(shù)據(jù)表以及各個表中顯示的數(shù)據(jù)項。
2)工作流技術(shù),可以通過在服務(wù)器端配置各個審批流程的節(jié)點以及規(guī)則等,系統(tǒng)上線后業(yè)務(wù)人員可以根據(jù)需求進(jìn)行二次開發(fā)和調(diào)整。
3)安全性控制,通過與IAM以及移動應(yīng)用平臺的整合,保證了辦公、生產(chǎn)等方面數(shù)據(jù)的安全。
4)接口數(shù)據(jù)定時抓取,通過開發(fā)相應(yīng)的Windows服務(wù)程序,配置程序在相應(yīng)的時間抓取相應(yīng)的接口數(shù)據(jù)。
5)日志追蹤管理,提供日志功能包括系統(tǒng)登陸日志、數(shù)據(jù)請求日志、系統(tǒng)錯誤日志。
6)數(shù)據(jù)加密與壓縮,為了加強(qiáng)產(chǎn)品的安全性,移動辦公系統(tǒng)提供了數(shù)據(jù)加密功能,在通訊服務(wù)器和移動客戶端提供數(shù)據(jù)傳輸加密、數(shù)據(jù)接收解密功能。提供數(shù)據(jù)壓縮功能,減少數(shù)據(jù)傳送包大小、提高響應(yīng)速度、減少手機(jī)GPRS網(wǎng)絡(luò)流量功能、提高運行效率。
目前,系統(tǒng)已經(jīng)投入運行,并且取得了良好的效果。移動應(yīng)用的使用,為大家提供了一個新的工作工具,特別是在工作審批方面,大大的加快了流程處理時間,提高了工作效率。
[責(zé)任編輯:王偉平]
【摘 要】SQL注入漏洞對網(wǎng)站的安全構(gòu)成嚴(yán)重威脅,然而SQL注入漏洞又具有較高的普遍性。因此查找SQL注入漏洞并了解其入侵方式,及時堵塞網(wǎng)站安全漏洞,是我們網(wǎng)站管理員必須要掌握的。本文以一款SQL注入工具入侵原理入手,講解了其入侵步驟,并給出了防范措施。
【關(guān)鍵詞】SQL注入;入侵;漏洞;防范
0 引言
SQL注入攻擊指的是攻擊者通過構(gòu)建特殊的輸入作為參數(shù)傳入Web應(yīng)用程序(一般通過網(wǎng)頁地址欄或留言板等具有提交功能的欄目輸入),應(yīng)用程序接收后錯誤的將攻擊者的輸入作為原始SQL查詢語句的一部分執(zhí)行,導(dǎo)致改變了程序原始的SQL查詢邏輯,額外的執(zhí)行了攻擊者構(gòu)造的SQL查詢語句。攻擊者根據(jù)程序返回的結(jié)果,獲得想得知的某些數(shù)據(jù)(譬如后臺管理賬戶、密碼),進(jìn)而執(zhí)行攻擊者所要的操作,其主要原因是程序沒有細(xì)致地過濾用戶輸入的數(shù)據(jù),致使信息泄露。
SQL注入攻擊是黑客對網(wǎng)站進(jìn)行攻擊、滲透的常用手段,其風(fēng)險性極高,并且因為SQL注入入侵跟普通的WEB頁面訪問沒什么區(qū)別,所以防火墻與殺毒軟件對SQL注入是沒辦法防范的。由于程序員的水平及經(jīng)驗參差不齊,相當(dāng)大一部分程序員在編寫代碼的時候,沒有對用戶輸入數(shù)據(jù)的合法性進(jìn)行判斷,導(dǎo)致存在SQL注入漏洞的網(wǎng)站相當(dāng)普遍。如何從根本上進(jìn)行SQL注入防御,降低SQL注入風(fēng)險具有極其重要的現(xiàn)實意義。
1 啊D注入工具入侵原理
所謂知己知彼,百戰(zhàn)百勝。要想有效防御SQL注入攻擊,就要了解其攻擊原理。本文通過對一款黑客常用注入工具——啊D注入工具工作原理的講解,來分析SQL注入的防范措施。
啊D注入工具的攻擊方法實際上就是逐步測試、逐步猜解,猜解網(wǎng)站數(shù)據(jù)庫中的后臺管理員表名、字段名、字段值,進(jìn)而獲取到網(wǎng)站的管理員賬號、密碼,在其它工具獲取網(wǎng)站后臺登錄地址的前提下,登錄網(wǎng)站后臺,獲取網(wǎng)站控制權(quán),甚至整個服務(wù)器的管理權(quán)限。
有了這個攻擊工具,使得入侵存在SQL注入漏洞的網(wǎng)站成了小兒科的游戲,那些既不懂編程又不懂SQL、年紀(jì)小小的青年常常得以在一天之內(nèi)入侵十多個網(wǎng)站。
2 啊D注入工具攻擊步驟
2.1 啊D注入工具入侵的第一步是尋找注入點
怎樣才算注入點呢?其實就是一類URL,就是網(wǎng)站的一些鏈接,在后面人為的添加一些SQL語句、單引號等之后,這些人為添加的語句可以最終被提交到數(shù)據(jù)庫執(zhí)行,并將結(jié)果在瀏覽器端顯示出來,這樣的URL就是網(wǎng)站的注入點。黑客通過執(zhí)行后不同的返回結(jié)果,來猜解數(shù)據(jù)庫的表名、字段名、字段值,進(jìn)而入侵網(wǎng)站。
那么啊D注入工具是怎么尋找注入點的呢?實際上和手工注入一樣,就是通過在一些網(wǎng)站鏈接地址后輸入一些非法字符串,根據(jù)返回的結(jié)果判斷網(wǎng)站是否可以進(jìn)行注入。最常用的就是單引號測試法和1=2測試法。
單引號測試法就是在最后面加上單引號,如果結(jié)果返回“microsoft jet database engine 錯誤80040e14”之類的錯誤信息,就表示單引號被連接到SQL語句中執(zhí)行了,就說明在該鏈接地址后面添加SQL語句可以被提交到數(shù)據(jù)庫執(zhí)行,就表示該鏈接地址存在SQL注入漏洞。
1=2測試法就是在網(wǎng)站鏈接地址后輸入1=2,返回的結(jié)果如果是:BOF或EOF中有一個是“真”,或者當(dāng)前的記錄已被刪除,所需的操作要求一個當(dāng)前的記錄,或者原來正常顯示的網(wǎng)頁沒有顯示出來,就表示1=2被連接到SQL語句中執(zhí)行了,就說明在該鏈接地址后面添加SQL語句可以被提交到數(shù)據(jù)庫執(zhí)行,就表示該鏈接地址存在SQL注入漏洞。
2.2 猜解表名
假如http://localhost/article.aspx?id=124是一個注入點,要用它來猜解表名。怎么提交?
http://localhost/article.aspx?id=124 and exists(select count(*) from admin)
然后看頁面返回了,返回正常就表示該表存在,否則就不存在了。啊D工具就是這樣猜解的,它的軟件數(shù)據(jù)庫里面有很多提前添加好的表名。然后猜解的時候就是挨個試了。
2.3 猜解字段名
有了表名,下一步就是猜解字段了。需要用到這樣的語句:http://localhost/article.aspx?id=124 and exists(select username from admin)
也就是將count(*)換成了字段名。將設(shè)置列表中的字段挨個進(jìn)去匹配。頁面返回正常就表示字段存在,否則就不存在。
2.4 猜解字段長度
字段有了,下一步就是猜解字段值了,先猜解字段長度。
http://localhost/article.aspx?id=124 and (select top 1 len(username) from admin)>0
http://localhost/article.aspx?id=124 and (select top 1 len(username) from admin)>5
http://localhost/article.aspx?id=124 and (select top 1 len(username) from admin)>6
|直到準(zhǔn)確判斷出長度為止。其中的len()函數(shù)負(fù)責(zé)計算username中第一條記錄的長度。
2.5 猜解字段值
知道了長度,下一步就是準(zhǔn)確猜解每一位的值。
and(select top 1 asc(mid(username,1,1))from admin)>97
and(select top 1 asc(mid(username,1,1))from admin)>98