ASP.NET網頁防駭實務(一)

資策會數位教育研究所講師 王寧疆

 

· 摘要
  網頁程式在企業的應用越來越普及,包括提供給網際網路使用者使用的網頁和提供給公司內部員工使用的網頁,都有蓬勃發展的趨勢。在網路應用高度普及的狀況下,網頁的設計者必須具備有基本的防駭意識,否則極有可能發生網頁程式被駭客入侵,公司資料外洩或是被破壞的狀況,更甚者還會危害公司正常的運作,因此如何確保網路作業的安全就變成現代資訊化社會極為重要的課題。網頁程式的設計者必須具備高度的資訊安全觀念,以保護網路作業不被駭客入侵,確保伺服器端和用戶端雙方作業的安全。本文將要為大家介紹網頁應用程式的基本防駭招式,協助大家建立不被駭客攻擊的安全網頁,以免蒙受無法彌補的損失。

 

˙[注意] 本文的說明和範例雖然是以ASP.NET網頁和Visual Basic.NET語言來說明,但是其觀念和做法仍然可以適用於非ASP.NET網頁,包括CGI、PHP、Cold Fusion、以及ASP的網頁等網頁都可以一體適用,換句話說,讀者在閱讀完本文後還是可以使用本文的測試範例測試製作好的網頁,確保您或您公司的網頁可以遠離駭客。

 
  · 網頁常見的駭客攻擊手法
  要建置安全的網頁應用程式,首先我們必須了解網頁常見的駭客攻擊手法,這些常見的駭客攻擊手法都是過去曾經出現過的手法,受害的網站都是鼎鼎大名,極出名的網站,因為越出名的網站越會獲得駭客關愛的眼神,對駭客而言,成功破壞越出名的網站才可以一戰成名,也才會有成就感。了解網頁常見的駭客攻擊手法後我們才會知道如何防堵駭客的入侵,也才能夠建立安全而且強固的網站應用程式供使用者使用。
 

 

駭客對網頁常見的攻擊手法有下列四種:
1. SQL Injection - 串連SQL敘述對資料庫或資料庫中的資料進行攻擊
 SQL Injection攻擊手法是利用SQL敘述可以串連的特性,串連惡意的SQL敘述執行新增記錄、修改記錄內容、或是刪除資料表的攻擊動作,意圖危害網站的正常作業。
2. Hidden Field Tampering - 竄改網頁中隱藏欄位的內容值
 Hidden Field Tampering攻擊手法會將網頁另存新檔放於駭客的電腦中,竄改網頁中隱藏欄位的內容值後再重送到網頁伺服器,企圖令網頁執行有問題的網頁內容,達到攻擊的目的,例如以異常的低價購買網站販賣的商品。
3. Cross Site Scripting – 利用javascript攻擊網頁或是竊取使用者的Cookie資訊
 Cross Site Scripting是非常流行的駭客攻擊手法,駭客可以利用IE瀏覽器上可以讓使用者輸入資料的Url網址列,或是網頁上的輸入欄位(例如TextBox控制項),輸入惡意的Javascript,對網頁的行為或內容進行破壞,或是偷取網站使用者的Cookie資訊進行不法的勾當。
4. Session HiJacking – 竊取網頁使用者的SessionID,冒用網頁使用者的身份入侵網站
 Session HiJacking和Cross Site Scripting有點類似,駭客是利用SessionID會當成Cookie存到用戶端電腦的特性,竊取存在用戶端電腦的SessionID,再冒用網頁使用者的身份進入使用者的身份使用的網站竊取重要的個人資訊(例如金融資訊),再進行危害網頁使用者的動作。

 這四個方法中,SQL Injection和Hidden Field Tampering是攻擊伺服器的動作,而Cross Site Scripting和Session HiJacking則是攻擊網頁使用者,也就是用戶的動作,不管是攻擊伺服器還是攻擊網頁的使用者,最終的受害者都是公司的網站,因為即便是駭客竊取了網頁使用者的Cookie或是SessionID,再從事不法的行為,網站也必須承擔未妥善保護網頁使用者的責任,因此如何確保網站的安全性就是現代化的網頁和網頁設計者不容忽視的問題。
   
接下來我們就要為大家詳細解說這四種常見的駭客攻擊手法,並說明如何防範這四種駭客的攻擊。
   
  · SQL Injection式的駭客攻擊
  那一種類型的網頁容易受到SQL Injection式的駭客攻擊?答案是可以輸入資料的網頁,可以輸入資料的網頁分成兩種,一種是透過網頁上的TextBox控制項輸入資料,一種是直接從IE的Url網址列輸入資料。只要是使用者可以輸入資料的網頁,而網頁又會拿使用者輸入的資料組成欲執行的SQL敘述進行資料庫操作的話,就要特別注意SQL Injection式的駭客攻擊,因為SQL Injection顧名思義就是要攻擊網頁所使用的資料庫。
 
  以下我們就來為大家介紹兩種常見的SQL Injection攻擊手法:
   
  1. 透過網頁上的輸入欄位攻擊資料庫的SQL Injection手法
  網站中的登入網頁可以讓使用輸入資料,所以是駭客喜歡攻擊的目標,以圖1所示的登入網頁為例,這個網頁會要求使用者輸入姓名和密碼進行登入,如果網頁在使用者按下網頁中的Login鍵時執行下列的程式碼,就會給予駭客可趁之機...

 

 
 
   

 

更多內容下載:tihs9310_doc.pdf

 

範例下載:tihs9310_sample.zip