TWI545460B - 轉換一腳本語言中使用者輸入資料的方法、電腦裝置與程式產品 - Google Patents

轉換一腳本語言中使用者輸入資料的方法、電腦裝置與程式產品 Download PDF

Info

Publication number
TWI545460B
TWI545460B TW101131966A TW101131966A TWI545460B TW I545460 B TWI545460 B TW I545460B TW 101131966 A TW101131966 A TW 101131966A TW 101131966 A TW101131966 A TW 101131966A TW I545460 B TWI545460 B TW I545460B
Authority
TW
Taiwan
Prior art keywords
instruction
sql
computer
user
text
Prior art date
Application number
TW101131966A
Other languages
English (en)
Other versions
TW201409271A (zh
Inventor
吳明峰
熊偉翔
李承達
孫維孝
Original Assignee
萬國商業機器公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 萬國商業機器公司 filed Critical 萬國商業機器公司
Priority to TW101131966A priority Critical patent/TWI545460B/zh
Priority to US14/014,819 priority patent/US9219742B2/en
Publication of TW201409271A publication Critical patent/TW201409271A/zh
Application granted granted Critical
Publication of TWI545460B publication Critical patent/TWI545460B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6227Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/031Protect user input by software means

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)

Description

轉換一腳本語言中使用者輸入資料的方法、電腦裝置與程式產品
本發明係關於防止腳本語言之值入攻擊的技術;尤其是提供一種防止SQL值入攻擊的方法、電腦裝置與程式產品,其包含一種轉換一腳本語言中使用者輸入資料的方法,及一種剖析一含編碼之使用者輸入相關變數之腳本指令的方法。
結構化查詢語言(Structured Query Language,SQL)是用於資料庫中的標準數據查詢語言。SQL植入攻擊(SQL injection)是發生於應用程式之資料庫層的安全漏洞,而為網頁應用程式中常見之威脅。經常經由一網站而被用來攻擊資料庫。
如圖1a所示,其說明一種習知之透過網頁存取SQL資料庫之系統架構示意圖。網頁客戶端110可包括一瀏覽器並提供使用者輸入資料且傳送給網頁伺服器120。習知之惡意使用者在一網頁客戶端110輸入包含部分SQL指令,企圖使網頁伺服器120中之網頁應用程式(web application)被解譯時,建構一新而非程式開發者期望之不良(rogue)SQL查詢(query)或稱之SQL指令(諸如下載該資料庫內容至該惡意使用者),且透過一網頁伺服器120發送該SQL查詢至一SQL伺服器130。簡而言之,是在輸入的字串之中夾帶SQL指令,在設計不良的應用程式當中忽略了檢查,那麼這些夾帶進去的指令就會被資料庫伺服器誤認為是正常的SQL指令而執行,因此使該資料庫伺服器遭到破壞。任何與SQL相似之腳 本語言(Script language,scripting language,scripting programming language)(例如,Python,Perl,Command line interface,Shell scripts,TCL,Bash,PHP等等)也都會有植入攻擊的問題。
招致植入攻擊的原因可以圖1b所示之SQL資料庫140之使用者帳號及密碼之輸入為例。使用者輸入”Rick Wu’--”之字串。其中(’)及(--)在SQL語法中皆為保留字,而分別代表”上一字串結束”及”隨後字元為註釋(comments)”。網頁應用程式160經網頁伺服器120之腳本解譯器(interpreter)(例如JavaEE Runtime)解譯而組成下列SQL指令170: SELECT FROM Employee WHERE name='Rick Wu'--'AND passwd="
其中,於SQL伺服器130執行此SQL指令時,將因(--)之保留字而視其後字元為('AND passwd='')部分註釋。因而將忽略密碼之輸入,而直接使惡意使用者登入SQL資料庫140。因此,解決SQL植入攻擊的問題是目前重要的課題。
關於SQL植入攻擊的細節,可進一步參考The Open Web Application Security Project(OWASP)網頁http://www.cgisecurity.com/owasp/html/ch11s03.html,或維基百科網頁http://en.wikipedia.org/wiki/SQL_injection的說明。
為解決前述SQL植入攻擊問題,習知有許多偵測及預防 之方法。例如可參考美國專利US 7860842或美國專利公開號US 20080034424 A1。此外,可參考標題為"EVALUATION OF SQL INJECTION DETECTION AND PREVENTION TECHNIQUES"之論文,作者為Tajpour,A,JorJor Zade Shooshtari,M.出處為Computational Intelligence,Communication Systems and Networks(CICSyN),2010 Second International Conference on Issue Date:28-30 July 2010 on page(s):216-221 Location:Liverpool Print ISBN:978-1-4244-7837-8。
本說明書中所提及的特色、優點、或類似表達方式並不暗示本發明可實現的所有特色及優點應在本發明之任何單一的具體實施例內。而是應明白,有關特色及優點的表達方式是指結合具體實施例所述的特定特色、優點、或特性係包含在本發明的至少一具體實施例內。因此,本說明書中對於特色及優點、及類似表達方式的論述可與相同具體實施例有關,但亦非必要。
此外,可以任何合適的方式,在一或多個具體實施例中結合本發明所述特色、優點、及特性。相關技術者應明白,在沒有特定具體實施例之一或多個特定特色或優點的情況下,亦可實施本發明。在其他例子中應明白,特定具體實施例中的其他特色及優點可能未在本發明的所有具體實施例中出現。
根據本發明一實施例,本發明揭示一種轉換一腳本語言中使用者輸入資料的方法,該方法包含:追蹤一腳本指令以分隔該指令相關變數及使用者輸入之相關變數;及編碼該指令中使用者輸入之相關變數為一屬於不包含該腳本語言保留字之安全字元集區中之資料,且傳遞該編碼之使用者輸入的相關變數至該指令之表述中。
根據本發明另一實施例,本發明揭示一種剖析一含編碼之使用者輸入相關變數之腳本指令的方法,該方法包含:由該腳本指令擷取所有文本表式(text token);檢查每一文本表式是否經編碼;若文本表式已經編碼,則解碼該文本表式且將該解碼文本表式送回,否則將未編碼文本表式送回;及若該指令之每一文本表式皆已檢查,則利用該送回之文本表式建立該指令之語法樹並執行。
根據本發明另一實施例,本發明揭示一種儲存在一電腦可用媒體上之電腦程式產品,包含一電腦可讀程式,供於一電腦上執行時,以實施前述之轉換一腳本語言中使用者輸入資料之方法。
根據本發明另一實施例,本發明揭示一種儲存在一電腦可用媒體上之電腦程式產品,包含一電腦可讀程式,供於一電腦上執行時,以實施前述之剖析一含編碼之使用者輸入相關變數之腳本指令之方法。
根據本發明另一實施例,本發明揭示一種轉換一腳本語言中使用者輸入資料的電腦裝置,包含:一主機;該主機包含,一匯流排系統;一記憶體,連接到該匯流排系統,其中該記憶體包含一組指令;一連接到該匯流排系統之處理單元,其中該處理單元執行該組指令,以執行前述之方法。
根據本發明另一實施例,本發明揭示一種剖析一含編碼之使用者輸入相關變數之腳本指令的電腦裝置,包含:一主機;該主機包含,一匯流排系統;一記憶體,連接到該匯流排系統,其中該記憶體包含一組指令;一連接到該匯流排系統之處理單元,其中該處理單元執行該組指令,以執行前述之方法
參考以下說明及隨附申請專利範圍或利用如下文所提之本發明的實施方式,即可更加明瞭本發明的這些特色及優點。
本說明書中「一具體實施例」或類似表達方式的引用是指結合該具體實施例所述的特定特色、結構、或特性係包括在本發明的至少一具體實施例中。因此,在本說明書中,「在 一具體實施例中」及類似表達方式之用語的出現未必指相同的具體實施例。
熟此技藝者當知,本發明可實施為電腦裝置、方法或作為電腦程式產品之電腦可讀媒體。因此,本發明可以實施為各種形式,例如完全的硬體實施例、完全的軟體實施例(包含韌體、常駐軟體、微程式碼等),或者亦可實施為軟體與硬體的實施形式,在以下會被稱為「電路」、「模組」或「系統」。此外,本發明亦可以任何有形的媒體形式實施為電腦程式產品,其具有電腦可使用程式碼儲存於其上。
一個或更多個電腦可使用或可讀取媒體的組合都可以利用。舉例來說,電腦可使用或可讀取媒體可以是(但並不限於)電子的、磁的、光學的、電磁的、紅外線的或半導體的系統、裝置、設備或傳播媒體。更具體的電腦可讀取媒體實施例可以包括下列所示(非限定的例示):由一個或多個連接線所組成的電氣連接、可攜式的電腦磁片、硬碟機、隨機存取記憶體(RAM)、唯讀記憶體(ROM)、可抹除程式化唯讀記憶體(EPROM或快閃記憶體)、光纖、可攜式光碟片(CD-ROM)、光學儲存裝置、傳輸媒體(例如網際網路(Internet)或內部網路(intranet)之基礎連接)、或磁儲存裝置。需注意的是,電腦可使用或可讀取媒體更可以為紙張或任何可用於將程式列印於其上而使得該程式可以再度被電子化之適當媒體,例如籍由光學掃描該紙張或其他媒體,然後再編譯、解譯或其他合適的必要處理方式,然後可再度被儲存於電腦記憶體中。在本文中,電腦可使用或可讀取媒體可以是任何用於保持、儲存、 傳送、傳播或傳輸程式碼的媒體,以供與其相連接的指令執行系統、裝置或設備來處理。電腦可使用媒體可包括其中儲存有電腦可使用程式碼的傳播資料訊號,不論是以基頻(baseband)或是部分載波的型態。電腦可使用程式碼之傳輸可以使用任何適體的媒體,包括(但並不限於)無線、有線、光纖纜線、射頻(RF)等。
用於執行本發明操作的電腦程式碼可以使用一種或多種程式語言的組合來撰寫,包括物件導向程式語言(例如Java、Smalltalk、C++或其他類似者)以及傳統程序程式語言(例如C程式語言或其他類似的程式語言)。程式碼可以獨立軟體套件的形式完整的於使用者的電腦上執行或部分於使用者的電腦上執行,或部分於使用者電腦而部分於遠端電腦。
於以下本發明的相關敘述會參照依據本發明具體實施例之電腦裝置、方法及電腦程式產品之流程圖及/或方塊圖來進行說明。當可理解每一個流程圖及/或方塊圖中的每一個方塊,以及流程圖及/或方塊圖中方塊的任何組合,可以使用電腦程式指令來實施。這些電腦程式指令可供通用型電腦或特殊電腦的處理器或其他可程式化資料處理裝置所組成的機器來執行,而指令經由電腦或其他可程式化資料處理裝置處理以便實施流程圖及/或方塊圖中所說明之功能或操作。
這些電腦程式指令亦可被儲存在電腦可讀取媒體上,以便指示電腦或其他可程式化資料處理裝置來進行特定的功能,而這些儲存在電腦可讀取媒體上的指令構成一製成品, 其內包括之指令可實施流程圖及/或方塊圖中所說明之功能或操作。
電腦程式指令亦可被載入到電腦上或其他可程式化資料處理裝置,以便於電腦或其他可程式化裝置上進行一系統操作步驟,而於該電腦或其他可程式化裝置上執行該指令時產生電腦實施程序以達成流程圖及/或方塊圖中所說明之功能或操作。
其次,請參照圖3a至圖5,在圖式中顯示依據本發明各種實施例的電腦裝置、方法及電腦程式產品可實施的架構、功能及操作之流程圖及方塊圖。因此,流程圖或方塊圖中的每個方塊可表示一模組、區段、或部分的程式碼,其包含一個或多個可執行指令,以實施指定的邏輯功能。另當注意者,某些其他的實施例中,方塊所述的功能可以不依圖中所示之順序進行。舉例來說,兩個圖示相連接的方塊事實上亦可以同時執行,或依所牽涉到的功能在某些情況下亦可以依圖示相反的順序執行。此外亦需注意者,每個方塊圖及/或流程圖的方塊,以及方塊圖及/或流程圖中方塊之組合,可籍由基於特殊目的硬體的系統來實施,或者籍由特殊目的硬體與電腦指令的組合,來執行特定的功能或操作。
<電腦裝置>
圖2說明本發明之例示性網頁伺服器202之硬體環境方塊圖。在一個示範性的實施例中,伺服器為一台通用型之桌上型電腦,可具有處理器以執行各種應用程式;儲存裝置以 儲存各種資訊及程式碼;顯示裝置、通訊及輸出/入裝置做為與使用者溝通之介面;以及週邊元件或其他特定用途元件。在其他實施例中,本發明亦可實施為其他的形式,而具有更多或更少之其他裝置或元件。網路亦可實施為任何型式之.連線,包括固定連接之區域網路(LAN)或廣域網路(WAN)連線,或利用網際網路服務提供者來暫時撥接至網際網路,亦不限於有線無線等各種連接方式,例如透過GSM、或Wi-Fi等無線網路與用戶端電腦通信。然而應了解,雖未繪示但其他硬體及軟體組件(例如額外電腦系統、路由器、防火牆等)可包含於網路之中。
如圖2所示,伺服器202包括一耦合至系統匯流排206之處理器單元204。一視訊配接器208(其控制一顯示器210)亦耦合至系統匯流排206。系統匯流排206籍由一匯流排橋212耦合至一輸入/輸出(I/O)匯流排214。一I/O介面216耦合至I/O匯流排214。I/O介面216能與各個I/O裝置之通信,該等I/O裝置包括一鍵盤218、一滑鼠220、一唯讀光碟機(CD-ROM)222、一軟碟機224及一快閃記憶體隨身碟226。I/O裝置更可為數位相機模組用以輸入影像資料或是條碼資料,或是I/O裝置可與顯示器210整合為觸控螢幕,用以供使用者操作應用程式與編寫資訊。連接到I/O介面216之埠的規格,可以是熟悉電腦架構技術者所知之任一種,其包括(但不限於)通用串列匯流排(USB)埠。
使用一網路介面230,伺服器202能藉由一網路228與一用戶端電腦252通信,網路介面230耦合至系統匯流排206。 網路228可係一外部網路(例如,網際網路)或一內部網路(例如,一乙太網路或一虛擬私人網路(VPN))。使用網路228,伺服器202能使用本發明以與用戶端電腦252互動。
一硬碟機介面232亦耦合至系統匯流排206上。硬碟機介面232與一硬碟機234介接。在一較佳實施例中,硬碟機234進駐(populates)系統記憶體236,該系統記憶體236亦耦合至系統匯流排206。進駐系統記憶體236之資料包括伺服器202之作業系統(OS)238及應用程式244。
OS 238包括一用於供使用者存取諸如應用程式244等資源之殼層(shell)240及核心242。殼層240係一可在使用者與作業系統間提供一解譯器與介面的程式。該殼層提供系統提示、解譯由鍵盤、滑鼠或其他使用者輸入媒體所輸入的命令及向該作業系統之適當的較低層級(例如,核心242)發送經解譯之命令供進行處理。雖然殼層240一般係以文字為基礎之行導向式使用者介面,但本發明亦能支援其他使用者介面模式,諸如圖形的、語音的、示意動作的模式等。核心242包括OS 238之較低層級功能,該等較低層級功能包括由OS 238之其他部分及應用程式244所要求之基本服務,該基本服務包括:記憶體管理、處理序及任務管理、磁碟管理及滑鼠與鍵盤之管理。
一用戶端電腦252或一SQL伺服器253可以使用與前述伺服器202相同或類似的硬體架構,亦或者可以利用其他的基礎架構,本發明並不限制。舉例來說,用戶端電腦可以是 桌上型電腦、筆記型電腦、個人數位助理(PDA)、智慧型手機等。然而圖2所示以及上述的範例皆非用於限制本發明的架構。用戶端電腦252可包括一瀏覽器。瀏覽器包括程式模組及指令,該等程式模組及指令使用超文字傳送協定(HTTP)訊息使全球資訊網(WWW)用戶端(即:用戶端電腦252)能夠發送及接收網路訊息至網際網路,因此實現與伺服器202通信。
應用程式244可包括一本發明之解譯器模組246。解譯器模組246包括程式模組及指令,該等程式模組及指令能與該SQL伺服器253中之SQL剖析器模組通信。該解譯器模組246及SQL剖析器模組可以是應用程式內之模組,或以常駐程式(Daemon)之方式實施。但在其他實施例中,亦可以用其他形式之程式型態來實施。該解譯器模組246及SQL剖析器模組分別包括用於實施下文所說明之圖4及5內所說明之程序之代碼。
在伺服器202內繪示之硬體元件並非意欲包羅萬象,而係代表本發明所使用之最重要元件。舉例而言,伺服器202可以另包括替代記憶體儲存裝置,諸如磁帶(magnetic cassette)、多樣化數位光碟(DVD)、(Bernoulli)卡匣及類似者。此等及其它變化將包含在本發明之精神及範疇內。
圖3a顯示依據本發明實施例之透過網頁存取SQL資料庫之系統架構示意圖。圖3b顯示一依據本發明實施例之防止SQL資料庫之使用者帳號及密碼輸入之植入攻擊的例示。網頁客戶端310可包括一瀏覽器並提供使用者輸入資料且傳送 給網頁伺服器320。網頁伺服器320中之解譯器模組322解譯一使用者輸入資料相關之網頁應用程式。解譯器模組322進一步利用如習知之Base64編碼技術將解譯成之SQL指令170中之使用者輸入資料轉換為一屬於不包含保留字之安全字元集區中之資料。
如圖3b所示,使用者輸入”Rick Wu’--”之字串150被轉換為一轉換字串350,”UmljayBXdScgLS0=”350。Base64編碼是一種基於64個可列印二進制數據的表示方法,藉此編碼將使用者輸入資料轉換為屬於一安全字元集區中之資料,以避開腳本語言之保留字。Base64編碼只是本發明實施例之例示,任何其他可用來轉換字元為不包含腳本語言之保留字之編碼方式皆可適用來實施本發明,例如DES。接著,將該包含被轉換之使用者輸入資料的SQL指令370傳遞到SQL伺服器330。
SQL伺服器330將呼叫一SQL剖析器模組332以剖析該收到之含被轉換之使用者輸入資料之SQL指令370成為一語法樹(syntax tree)供執行,且轉換該被轉換之使用者輸入資料回原始之使用者輸入資料。解譯器模組322及SQL剖析器模組332將參照圖4與圖5進一步說明如下。
<解譯器模組322流程>
圖4顯示本發明一具體實施例之解譯器模組322之流程圖。
●步驟410:網頁伺服器320之解譯器模組322剖析一解譯之SQL指令170。
●步驟420:追蹤該SQL指令170以分隔該指令相關變數及使用者輸入之相關變數。在SQL指令被執行前,SQL指令170中每一成員皆稱之為變數。例如,(SELECT)、()、(FROM)、(Employee)、(Rick Wu)、(’)及(--)等等,在此皆稱為變數。
●步驟430:在該變數前加入識別字(magic string)以供後續追溯。此步驟並不是必要的。
●步驟440:以習知之Base64編碼技術編碼SQL指令中使用者輸入的相關變數,且傳遞該編碼之使用者輸入的相關變數至SQL指令之表述(statement)中,以產生SQL指令370。如前述,任何其他可用來轉換字元為不包含腳本語言之保留字之編碼方式皆可適用來實施本發明。
●步驟450:傳遞該含編碼之使用者輸入相關變數的SQL指令370至SQL伺服器。
<SQL剖析器模組332流程>
圖5顯示本發明一具體實施例之SQL剖析器模組332之流程圖。
●步驟510:SQL伺服器330之SQL剖析器模組332接收網頁伺服器320傳遞之該含編碼之使用者輸入相關變數的SQL指令370。
●步驟520:剖析該SQL指令370。
●步驟530:由SQL指令370擷取所有“文本表式”(text tokens)。對剖析器言,SQL指令370中每一成員皆稱之為文本表式。如,SQL指令370中(SELECT)、(*)、(FROM)、(Employee)等等皆是此處所為之文本表式”。
●步驟550:在步驟540中檢查每一文本表式是否經編碼。若是,則解碼該文本表式。
●步驟560:移除該識別字元且將解碼文本表式送回SQL剖析器。若在解譯器模組中不存在步驟430,則無移除該識別字元之步驟。
●步驟570:若在步驟540中檢查之一文本表式並未經過編碼。則移除該識別字元且將未編碼文本表式送回SQL剖析器。相似地,若在解譯器模組中不存在步驟430,則無移除該識別字元之步驟。
●步驟580:若仍有文本表式未檢查,則繼續前述之步驟540。
●步驟590:若該SQL指令370之每一文本表式皆已檢查,則建立該原始SQL指令170之語法樹並執行。
需說明的是,如前述任何與SQL相似之腳本語言(Script language,scripting language,scripting programming language)(例如,Python,Perl,Command line interface,Shell scripts,TCL,Bash,PHP等等)也都會有植入攻擊的問題。因此,依本發明此處揭示者,事實上可適用於任何腳本語言。
在不脫離本發明精神或必要特性的情況下,可以其他特定形 式來體現本發明。應將所述具體實施例各方面僅視為解說性而非限制性。因此,本發明的範疇如隨附申請專利範圍所示而非如前述說明所示。所有落在申請專利範圍之等效意義及範圍內的變更應視為落在申請專利範圍的範疇內。
110‧‧‧網頁客戶端
120‧‧‧網頁伺服器
140‧‧‧SQL資料庫
130‧‧‧SQL伺服器
202‧‧‧網頁伺服器
204‧‧‧處理器單元
206‧‧‧系統匯流排
208‧‧‧視訊配接器
210‧‧‧顯示器
212‧‧‧匯流排橋
214‧‧‧輸入/輸出(I/O)匯流排
216‧‧‧I/O介面
218‧‧‧鍵盤
220‧‧‧滑鼠
222‧‧‧唯讀光碟機(CD-ROM)
224‧‧‧軟碟機
226‧‧‧快閃記憶體隨身碟
228‧‧‧網路
230‧‧‧網路介面
232‧‧‧硬碟機介面
234‧‧‧硬碟機
236‧‧‧系統記憶體
238‧‧‧作業系統(OS)
240‧‧‧殼層(shell)
242‧‧‧核心
244‧‧‧應用程式
246‧‧‧解譯器模組
252‧‧‧用戶端電腦
253‧‧‧SQL伺服器
310‧‧‧網頁客戶端
320‧‧‧網頁伺服器
322‧‧‧解譯器模組
332‧‧‧SQL剖析器模組
340‧‧‧SQL資料庫
330‧‧‧SQL伺服器
為了立即瞭解本發明的優點,請參考如附圖所示的特定具體實施例,詳細說明上文簡短敘述的本發明。在瞭解這些圖示僅描繪本發明的典型具體實施例並因此不將其視為限制本發明範疇的情況下,參考附圖以額外的明確性及細節來說明本發明,圖式中:
圖1a為說明一種習知之透過網頁存取SQL資料庫之系統架構示意圖;圖1b為為說明一種SQL資料庫之使用者帳號及密碼輸入之植入攻擊的例示;圖2說明本發明之例示性網頁伺服器202之硬體環境方塊圖;圖3a顯示依據本發明實施例之透過網頁存取SQL資料庫之系統架構示意圖;圖3b顯示一依據本發明實施例之防止SQL資料庫之使用者帳號及密碼輸入之植入攻擊的例示;圖4顯示本發明一具體實施例之解譯器模組322之流程圖。
圖5顯示本發明一具體實施例之SQL剖析器模組332之流程圖。
310‧‧‧網頁客戶端
320‧‧‧網頁伺服器
322‧‧‧解譯器模組
332‧‧‧SQL剖析器模組
340‧‧‧SQL資料庫
330‧‧‧SQL伺服器

Claims (10)

  1. 一種轉換一腳本語言中使用者輸入資料的方法,該方法包含:追蹤一腳本指令以分隔該指令相關變數及使用者輸入之相關變數;及編碼該指令中使用者輸入之相關變數為一屬於不包含該腳本語言保留字之安全字元集區中之資料,且傳遞該編碼之使用者輸入的相關變數至該指令之表述中。
  2. 如請求項1之方法,其中該腳本語言為一結構化查詢語言(SQL),該腳本指令為一SQL指令。
  3. 如請求項1之方法,其中在該變數前加入識別字以供後續追溯。
  4. 如請求項1之方法,其中該編碼係義利用Base64或DES編碼技術。
  5. 一種剖析一含編碼之使用者輸入相關變數之腳本指令的方法,該方法包含:由該腳本指令擷取所有文本表式(text token);檢查每一文本表式是否經編碼;若文本表式已經編碼,則解碼該文本表式且將該解碼文本表式送回,否則將未編碼文本表式送回;及若該指令之每一文本表式皆已檢查,則利用該送回之文本表式建立該指令之語法樹並執行。
  6. 如請求項5之方法,其中該腳本語言為一結構化查詢語言(SQL),該腳本指令為一SQL指令。
  7. 一種儲存在一電腦可用媒體上之電腦程式產品,包含一電腦可讀程式,供於一電腦上執行時,以實施如申請專利範圍第1至4項之任一項所述之方法,以轉換一腳本語言中使用者輸入資料。
  8. 一種儲存在一電腦可用媒體上之電腦程式產品,包含一電腦可讀程式,供於一電腦上執行時,以實施如申請專利範圍第5至6項之任一項所述之方法,以剖析一含編碼之使用者輸入相關變數之腳本指令。
  9. 一種轉換一腳本語言中使用者輸入資料的電腦裝置,包含:一主機;該主機包含,一匯流排系統;一記憶體,連接到該匯流排系統,其中該記憶體包含一組指令;一連接到該匯流排系統之處理單元,其中該處理單元執行該組指令,以執行如申請專利範圍第1至4項之任一項所述之方法。
  10. 一種剖析一含編碼之使用者輸入相關變數之腳本指令的電腦裝置,包含:一主機;該主機包含,一匯流排系統;一記憶體,連接到該匯流排系統,其中該記憶體包含一組指令; 一連接到該匯流排系統之處理單元,其中該處理單元執行該組指令,以執行如申請專利範圍第5至6項之任一項所述之方法。
TW101131966A 2012-08-31 2012-08-31 轉換一腳本語言中使用者輸入資料的方法、電腦裝置與程式產品 TWI545460B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW101131966A TWI545460B (zh) 2012-08-31 2012-08-31 轉換一腳本語言中使用者輸入資料的方法、電腦裝置與程式產品
US14/014,819 US9219742B2 (en) 2012-08-31 2013-08-30 Transforming user-input data in scripting language

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW101131966A TWI545460B (zh) 2012-08-31 2012-08-31 轉換一腳本語言中使用者輸入資料的方法、電腦裝置與程式產品

Publications (2)

Publication Number Publication Date
TW201409271A TW201409271A (zh) 2014-03-01
TWI545460B true TWI545460B (zh) 2016-08-11

Family

ID=50189429

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101131966A TWI545460B (zh) 2012-08-31 2012-08-31 轉換一腳本語言中使用者輸入資料的方法、電腦裝置與程式產品

Country Status (2)

Country Link
US (1) US9219742B2 (zh)
TW (1) TWI545460B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106503557B (zh) * 2016-07-08 2019-10-08 北京卫达信息技术有限公司 基于动态变换的sql注入攻击防御系统及防御方法
CN110532305B (zh) * 2018-05-23 2022-11-08 中国移动通信集团浙江有限公司 一种业务数据割接方法及系统
EP4147124A4 (en) * 2020-05-07 2024-08-21 Exploratory Sciences Inc DATA SCIENCE WORKFLOW EXECUTION PLATFORM WITH AUTOMATICALLY MANAGED CODE AND GRAPH-BASED DATA WORKFLOW MANAGEMENT
US11281480B2 (en) 2020-05-28 2022-03-22 Sap Se Enhancing parameter-less exit-calls from a command line interface

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7860842B2 (en) 2005-03-16 2010-12-28 Oracle International Corporation Mechanism to detect and analyze SQL injection threats
JP2009510616A (ja) 2005-09-26 2009-03-12 イングリアン ネットワークス インコーポレイテッド データベース内の機密データを保護するためのシステム及び方法
US20080034424A1 (en) * 2006-07-20 2008-02-07 Kevin Overcash System and method of preventing web applications threats
US20080208806A1 (en) 2007-02-28 2008-08-28 Microsoft Corporation Techniques for a web services data access layer
US8051486B2 (en) 2007-05-24 2011-11-01 Oracle International Corporation Indicating SQL injection attack vulnerability with a stored value
US20090049547A1 (en) 2007-08-13 2009-02-19 Yuan Fan System for real-time intrusion detection of SQL injection web attacks
US8302080B2 (en) 2007-11-08 2012-10-30 Ntt Docomo, Inc. Automated test input generation for web applications
US8474036B2 (en) 2008-06-30 2013-06-25 Sentrigo Inc. Database context-based intrusion detection
CN101901232A (zh) 2009-05-31 2010-12-01 西门子(中国)有限公司 用于处理网页数据的方法和装置
US8353035B1 (en) * 2009-12-08 2013-01-08 Symantec Corporation Systems and methods for creating text signatures for identifying spam messages
US8499283B2 (en) 2010-02-09 2013-07-30 Webroot Inc. Detection of scripting-language-based exploits using parse tree transformation
US8615804B2 (en) * 2010-02-18 2013-12-24 Polytechnic Institute Of New York University Complementary character encoding for preventing input injection in web applications
US9634993B2 (en) * 2010-04-01 2017-04-25 Cloudflare, Inc. Internet-based proxy service to modify internet responses

Also Published As

Publication number Publication date
TW201409271A (zh) 2014-03-01
US9219742B2 (en) 2015-12-22
US20140068771A1 (en) 2014-03-06

Similar Documents

Publication Publication Date Title
CN110119643B (zh) 二维码生成方法及装置、二维码识别方法及装置
US9413776B2 (en) System for finding code in a data flow
US8745712B2 (en) Dynamically providing algorithm-based password/challenge authentication
US8490167B2 (en) Preventing password presentation by a computer system
US8543869B2 (en) Method and system for reconstructing error response messages under web application environment
CN109255209B (zh) 一种数据处理方法、装置、设备和存储介质
US20170083495A1 (en) Method for Modifying Webpage and Apparatus for Modifying Webpage
CN106850503B (zh) 一种免登录身份认证方法及装置
US9124624B2 (en) Detecting vulnerabilities in web applications
TWI545460B (zh) 轉換一腳本語言中使用者輸入資料的方法、電腦裝置與程式產品
CN112597454A (zh) 代码混淆方法、代码运行方法、装置、介质与设备
US20160134647A1 (en) Cognitive Detection of Malicious Documents
TWI525467B (zh) 動態提供多因次式密碼/盤問鑑定的方法與電腦系統
AU2018298640B2 (en) Determination device, determination method, and determination program
CN108573152A (zh) 检测sql注入攻击的方法、装置、服务器和存储介质
Leithner et al. Hydra: Feedback-driven black-box exploitation of injection vulnerabilities
CN115664859A (zh) 基于云打印场景下的数据安全分析方法、装置、设备及介质
CN107301345B (zh) 一种阻止xss攻击的方法、系统及装置
CN114626061A (zh) 网页木马检测的方法、装置、电子设备及介质
US20120054861A1 (en) Secure third party scripting environment
US9398041B2 (en) Identifying stored vulnerabilities in a web service
US20140330791A1 (en) Performance and Quality Optimized Architecture for Cloud Applications
CN109218284B (zh) Xss漏洞检测方法及装置、计算机设备及可读介质
CN114238131A (zh) 代码检测方法、装置、计算机可读介质及电子设备
CN109857488B (zh) 应用程序的调用控制方法、装置、终端及可读存储介质

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees