您的瀏覽器不支援JavaScript語法,但是並不影響您獲取本網站的內容 網頁設計,網頁設計公司,網頁程式設計,網站程式設計,台北網頁設計,無障礙網頁設計,3d互動網頁設計, 720度環場,網站建置,主機代管,電子商務,政府機關網頁設計,公家機關網頁設計,網站製作公司,網站架設
網頁設計,網頁設計公司,網頁程式設計,網站程式設計,台北網頁設計,無障礙網頁設計,3d互動網頁設計, 720度環場,網站建置,主機代管,電子商務,政府機關網頁設計,公家機關網頁設計,網站製作公司,網站架設
網頁設計程式設計網站規劃虛擬主機與主機代管關於網繹我們的服務我們的客戶無障礙網頁設計網站優化SEO聯絡我們
網頁設計,網頁設計公司,網頁程式設計,網站程式設計,台北網頁設計,無障礙網頁設計,3d互動網頁設計, 720度環場,網站建置,主機代管,電子商務,政府機關網頁設計,公家機關網頁設計,網站製作公司,網站架設
Logo 排版用圖片
:::回首頁網站地圖ENGLISH日本語簡體中文rss
:::
關於網繹
我們的客戶
網頁設計
程式設計
無障礙網頁
SEO網站優化
資訊與知識庫
聯絡我們
關於網繹裝飾用圖片
無障礙網頁的專家
透過網繹將您的網站輕鬆的通過無障礙網頁檢測標準,達到轉換網頁無障礙,擴充單元無障礙,新增內容無障礙的功能。
:::
資訊與知識庫
標題 網站容易遭受的攻擊模式-SQL Injection、XSS、偽造發送端、機器人發送
主題分類 系統與程式設計
原文章出處 網繹數位科技 KEVIN lIN

SQL Injection-SQL隱碼,若直翻成中文就是SQL注射
注射什麼呢?
注射SQL的程式,也就是T-SQL,T-SQL是SQL資料庫中的程式語言,或說SQL語言,然後黑客就可以執行一些想要在資料庫中做的事情。
會受到SQL Injeciton攻擊的,其實絕對不只有微軟的ACCESS、MS-SQL。其實只要是關連式資料庫,只要是採用SQL標準的資料庫,如MySQL、Oracle等,都能夠用SQL Injection攻擊。只還是一個老問題,微軟未必弱點真的比較多,而是使用者族群比較大,所以黑客喜歡找微軟的系統下手,波及力也比較強,攻擊起來比較有成就感。當然這一點就會是許多管理者敬微軟而遠之的原因之一。

黑客最常利用SQL Injection漏洞來查詢資料庫,找尋有沒有些有用的資料,或在SQL資料庫中增加一些資料
如果這個是網站背後的資料庫,那他會增加<script src= 或 <iframe 等等HTML Tag之類的資料
當這些新增加的資料,被網頁程式以正常的運作流程,抓取到到網頁上呈現時,就能對瀏覽者達到XSS的攻擊
另一種則是純粹破壞資料,不過這個比較少人做。還有一種是利用資料庫中的強大功能,如xp_cmdshell等,去進而掌控整台Server,可以對整台Server的硬碟進行資料查找、修刪(所以最好把MS-SQL Server上的xp_cmdshell給關閉)。
另外一點,絕對不要在AP或網頁程式上使用最大權限的使用者帳戶來操作資料庫,因為如果真的不幸被入侵,那黑客有的就是最大權限,可以對所有的資料庫操作,到時受害的就不只是單一資料庫而已。


XSS攻擊比較危險的是,如果攻擊到的位置恰到好處,則網站業主跟瀏覽者,可能很久很久以後才會發現該網站被植入XSS攻擊語法。可怕的是這段沒人發現的時間裡,已經不知道多少人被這中XSS的網站攻擊

XSS與SQL Injection彼此間沒有直接關連,但通常是很容易連帶發生
XSS的攻擊容易利用SQL Injection去達成
XSS的方式是利用某些HTML本身具有的功能,如主動連結某一個外部網站、主動執行某些程式的特性
XSS攻擊一定要包含一個跳板才能成功,而這個跳板就是Web Server,黑客先要想辦法在這台WebServer上的網頁安插上述的那串HTML碼,安插成功後,當有任何一個瀏覽者開啟該網站被植入特殊HTML碼的網頁後,瀏覽者端就會神不知鬼不覺得連結上黑客指定好的外部網站,而這個網站就會讓該瀏覽者的電腦安裝木馬程式,或執行可能洩漏瀏覽者電腦資料等等為所欲為的動作了。


偽造發送端的攻擊
網頁程式最基本的運作模式,即為發送、接收,比方說網址後帶參數的方式,就是一種發送方式,或是表單中的input submit到另外一個網頁程式處理,這些都是發送資料的動作。這個機制下有問題的部分是在於接收端沒有檢查發送端是否是合法,也就是接收端並未確認發送端的身份,即接收資料,並處理。在這種狀況下,黑客即可偽造發送端,並略過原先發送端會有的java script等資料檢查,成功將有問題的資料送到接收端,並進入資料庫等,此時網站管理者就會發現多了很多垃圾資料。這種狀況在傳統的網頁程式語言都可能發生。


機器人發送,就是非人本身操作,而是使用一段由黑客指定好或錄製好的動作,不斷對同一個網站的某一個位置,進行填寫資料、送資料的動作。通常裡面的資料都會呈現無規則性,但密集的發送,產生大量的資料對網站運作及管理者產生困擾。


至於防範方法
SQL Injection的最大弱點是在於早期網頁程式,喜歡用組合字串的方式,組成T-SQL語法進資料庫執行。
因為組合字串的是缺乏格式的,所以可以使用T-SQL特殊字元去輕易破壞它,使的原先語法部分失效,
所以應該要在網頁程式上預先防範T-SQL內的危險字元。不過這個只是治標不治本。
而最安全又最省力的方式,如果資料庫有Store Procedure這功能可以使用的話,強烈建議使用
因為透過Store Procedure方式去執行T-SQL,因為Store Procedure是程式設計師預先設計好的資料庫程式,是經過格式過的,所以沒有組合字串的問題,即使沒有在網頁程式上過濾危險字元,危險性的T-SQL語法也絕對無法成功執行。
另一點好處,這牽涉到資料庫的管理,可以將資料庫設計成網頁僅有執行Store Procedure的權限,而無直接存取table權限。這樣做可以將資料庫的安全性更為提升,對於一些有細部管理需求的單位更適合使用。

XSS攻擊的防範,最佳的方式是把所有網頁的input物件,在程式接收時,全部將「<」「>」給置換掉,改以html替代字代替;或是在要顯示資料時時,將< >換成html替代字,這樣兩種方式都可以讓< >就無法在網頁上生效,進而達到防堵XSS對瀏覽者的攻擊。
順便說明,ASP.net其本身的input物件預設值,都是將html tag視為危險輸入,所以當有人在ASP.net網站上輸入任何html tag時,ASP.net就會回應錯誤訊息。不過這功能是可以在開發時期被關閉的,在此狀況下,XSS攻擊可能就有機可趁,網頁程式設計師要記得過濾危險字元。

偽造發送端的攻擊,應該在接收頁即檢查發送端是否合法,一般作法是檢查發送端的網址是否與接收端為同一個網站。還有程式開發時,建議除了瀏覽者端的java script檢查外,也可以在接收程式上做相同的資料檢查動作,這樣也能大幅降低攻擊成功的可能性。另外若是以ASP.net開發的,則比較不會有此問題,因為ASP.net採用以往不同的背景運作架構,可大幅避免這類問題,相對安全。

機器人發送的防範,一般會採用現在很常見的驗證碼,圖形的驗證碼,或一段亂數更換的邏輯運算,比方2+5=? 天空是什麼顏色等等,需要人類思考才能回答的問題。用這些來阻擋機器發送。另外還有一些是用程式控制多久可以發送一次資料,少於時間內是不允許發送資料出來的。不過這部分對於無障礙網頁,容易造成開發的困難,所以也有另外使用語音等方式。

文章整理:
關鍵字: SQL Injection , XSS , Store Procedure

go to top
通過第三優先等級無障礙網頁檢測
   
網繹數位科技網頁設計公司 地址:台北市復興南路一段321號3樓 Tel: (02)2704-1758(代表號)  Fax: (02)2704-0372 Email:e-service@eki.com.tw
網頁設計程式設計網站規劃虛擬主機與主機代管關於網繹我們的服務我們的客戶無障礙網頁設計網站優化SEO聯絡我們
(a) 跨國企業 為Sony 新力、Du Pont 台灣杜邦、Syngenta 台灣先正達、Xerox 全錄、TUV 德國萊因、Imation 美商怡敏信、DHL 洋基通運、日商丸紅等跨國企業、國際大型公司網站設計、程式設計、網頁設計、資料庫規劃及系統整合之設計廠商。 (b) 知名企業 為流行風尚精品之公司網站設計、程式設計、網頁設計、諸如居禮名店、長榮桂冠酒店、三井日本料理、天仁集團、菲夢絲、歌林公司、八王子集團、牡丹園餐廳、華固建設、等製作高質感之精緻網站。 (c) 金融機構 為金融單位或公司網站設計、程式設計、網頁設計、如兆豐金控、新光產物保險、中央再保、第一期貨、慶豐銀行、KGI中信期貨、台灣銀行等諸銀行,南山人壽、金融聯合徵信中心等金融公司及單位之網站建置及資料庫設計協力廠商。 (d) 政府機關及民間機構 為政府機構及民間團體網站設計、程式設計、網頁設計、如台北世界貿易中心、台北國際會議中心、中研院、十三行博物館、黃金博物園區、鶯歌陶瓷博物館、臺北縣政府文化局、石門水庫、北區水資源局等政府機關以及法鼓山、中華電信工會、國科會、靈鷲山佛教基金會、財團法人保險事業發展中心等民間團體建置氣勢磅礡、兼具人文、藝術、歷史的網站或電子報。