本發(fā)明涉及大數據技術領域,具體地說是一種實用性強、基于大數據實現sql注入過濾的方法。
背景技術:
互聯(lián)網時代,隨著互聯(lián)網技術的發(fā)展,網絡與人之間的關系變得越來越緊密,而網站就成了網絡與人之間的最好的溝通橋梁,從而出現了無數的網站用來滿足不同的需求,產生了很多利益,因此就會產生很多想要不勞而獲的人,因此網站與人的交互安全就會變得非常重要。而sql注入就成了這中間的一個非常大的安全漏洞,因此怎么針對sql注入問題進行研究變得非常重要?;诖?,本發(fā)明提出了一種基于大數據實現sql注入過濾的方法。
技術實現要素:
本發(fā)明的技術任務是針對以上不足之處,提供一種實用性強、基于大數據實現sql注入過濾的方法。
一種基于大數據實現sql注入過濾的方法,其實現過程為:
一、通過用戶上傳提交與智能采集方式獲得sql注入信息;
二、把獲得的數據寫入數據庫中;
三、對數據進行清洗、分析、分類,生成sql注入信息庫;
四、加入B/S的中間過濾層,用來接收請求并進行過濾,再進行轉發(fā)請求,如果請求符合規(guī)則,則轉發(fā),如果不符合規(guī)則,則進行過濾。
收集獲得sql注入信息的過程包括以下兩種:
采用用戶自行上傳的方式進行收集,即在用戶同意的前提下,用戶在發(fā)現漏洞的時候進行上傳,從而收集到信息;
采用大數據采集的方式,通過數據采集,對互聯(lián)網上暴漏出的sql注入的信息進行大范圍的采集,從而達到信息的收集。
將獲得的數據存到統(tǒng)一的數據庫中用于將收集的信息進行入庫操作,即對獲得的信息進行容錯保存。
對數據進行清洗、分析、分類是指對收集到并存入數據庫的信息進行處理,通過數據分析、數據去重、數據清洗、數據提煉的方式對庫里的信息進行優(yōu)化提純形成新的數據,再次進行數據的入庫,形成優(yōu)質信息庫,從而可用。
加入B/S的中間過濾層是指將B/S中間過濾層與數據庫對接聯(lián)通并部署,其中對接通過包括node、php、java語言中的一種連接池技術連接,部署采用node、php、java語言中的一種進行攔截過濾轉發(fā)。
所述步驟四中中間過濾層的具體過濾過程為:客戶端請求發(fā)起的時候,請求經過服務端的時候進行臨時攔截,同時服務端的過濾機制啟用,然后聯(lián)通數據庫進行詢問,如果符合規(guī)則,則進行向下轉發(fā)操作,轉發(fā)給服務端,如果不符合規(guī)則則進行過濾操作,并返回提示信息,從而達到sql注入過濾的作用。
本發(fā)明的一種基于大數據實現sql注入過濾的方法,具有以下優(yōu)點:
本發(fā)明提供的一種基于大數據實現sql注入過濾的方法,通過獲得sql注入信息,建立注入信息庫,建立B/S中間層(f)層,進行請求攔截與過濾轉發(fā),及時彌補網絡漏洞,保證了交互安全,及時實現sql注入信息過濾,實用性強,適用范圍廣泛,易于推廣。
附圖說明
附圖1為本發(fā)明的實現示意圖。
具體實施方式
下面結合附圖及具體實施例對本發(fā)明作進一步說明。
如附圖1所示,本發(fā)明的一種基于大數據實現sql注入過濾的方法,通過提交接收與智能采集的方式對平時我們遇到的sql注入的方式信息進行收集,可以使得我們能夠獲得幾乎所有的sql注入方式與信息,通過大數據的方法對數據進行處理獲得sql注入信息的精華庫,在B/S的請求過程中增加一個過濾插件(f)層,所有的請求“路由”等信息必須經過這個層級,利用f層的過濾達到sql過濾的作用。本發(fā)明通過對提交與智能采集的sql注入信息進行收集,將收集信息入庫,通過大數據的清洗、分析、分類的方法生成“注入信息”庫。
本發(fā)明是為了將提交與采集的sql注入信息收集起來,通過大數據的清洗、分析、分類將這些數據進行分類優(yōu)化利用,生成一個sql注入信息數據庫,從而與我們添加在B/S中間層(f)層過濾器進行聯(lián)通,從而達到sql過濾的功能。
其具體實現過程如下:
1、通過用戶上傳提交與大數據的智能采集技術獲得sql注入信息。
收集sql注入信息,這一步驟是在前期用來收集有關于sql注入的各種信息的一步,這一步對獲得的信息沒有太嚴格的要求與把控,就是對信息的廣度有所要求,盡量擴大信息收集的廣度,從而縮小可能漏過的信息,使得盡可能的做到最大過濾度。此步驟中我們需要進行兩種途徑的信息收集的手段,第一種方法是采用用戶自行上傳的方式進行收集,在用戶同意的前提之下,讓用戶在發(fā)現這種漏洞的時候進行上傳,從而收集到信息。另外一種方法是采用大數據采集的方法,通過當前普遍的數據采集手段,對互聯(lián)網上暴漏出的sql注入的信息進行大范圍的采集,從而達到信息的收集。
2、把生成的數據寫入數據庫中。
將收集的數據存到統(tǒng)一的數據庫中保存。在這個步驟中,我們的目的就是將收集的信息進行入庫操作,對這些信息進行盡可能容錯保存,就是不考慮信息的價值性,只要收集到的信息就對他們進行保存。此步驟中數據庫的建立與表的創(chuàng)建有一定的復雜度,需要一定的時間去完成。
3、采用大數據的分析方法對數據進行清洗、分析、分類,生成sql注入信息庫。
用大數據的方法對數據進行清洗、分析、分類。第三步就是對收集到并存入數據庫的信息進行處理了,這里運用大數據的知識,通過數據分析、數據去重、數據清洗、數據提煉等手段對庫里的信息進行優(yōu)化提純形成優(yōu)質化的數據,再次進行數據的入庫,形成優(yōu)質信息庫,從而達到可用的地步。
4、加入B/S的中間過濾層(f層,利用node php java等語言通過數據庫連接池連接信息庫,通過程序語言方法進行路由請求攔截進行處理過濾轉發(fā)),用來接收請求并進行過濾,再進行轉發(fā)請求,如果請求符合規(guī)則,則轉發(fā),如果不符合規(guī)則,則進行過濾。
將B/S中間層(f)與數據庫對接聯(lián)通(對接利用node、php、java語言中連接池技術連接)并部署(利用node、php、java語言進行攔截過濾轉發(fā))。第四步就是對信息的實際應用了,眾所周知當今的互聯(lián)網大部分的交互模式是B/S的模式即客戶-服務端模式,服務端發(fā)起請求服務端接收請求,數據處理之后將結果返回給服務端。
我們的目的是在B/S的請求過程之中加入一層過濾機制,對這之間的通信進行攔截,符合規(guī)則的請求向服務器端進行轉發(fā),不符合規(guī)則的請求則進行過濾不進行向下的轉發(fā)操作,這一層可以叫做f層即過濾層,f層為java、php等后臺語言的程序,通過數據庫連接池與我們的信息庫對接,B端客戶端請求發(fā)起的時候,請求經過f端的時候進行臨時攔截,同時f端的過濾機制啟用,然后會聯(lián)通數據庫進行詢問,如果符合我們的規(guī)則,則進行向下轉發(fā)操作,轉發(fā)給服務端,如果不符合規(guī)則則進行過濾操作,并返回提示信息,從而達到sql注入過濾的作用。
上述具體實施方式僅是本發(fā)明的具體個案,本發(fā)明的專利保護范圍包括但不限于上述具體實施方式,任何符合本發(fā)明的一種基于大數據實現sql注入過濾的方法的權利要求書的且任何所述技術領域的普通技術人員對其所做的適當變化或替換,皆應落入本發(fā)明的專利保護范圍。