作者:李墨軒 / 臺灣大學計算機及資訊網路中心資訊網路組
網頁,是現代人每天都會接觸到的資訊來源。使用網頁來儲存資料、公告事項,已經是現在政府機關及企業所不可或缺的建置項目。但是,放在網頁上的東西,如何確保安全,是接下來要介紹的。
網頁建置
目前網頁的建置通常選用Windows server及Linux的系統。只要選擇自己習慣的系統,並把網頁的程式碼放入指定的資料夾,任何人都可以輕鬆的架設一個網站。但是網站是否安全,才是資安工作人員需要注意的重點。
網頁的攻擊手法
網頁中最常看見的攻擊手法,了解這些攻擊模式,才能在建置網頁時就預先防範。以下就介紹一些常見的攻擊手法。
1.SQL-injection
在輸入的字串之中夾帶SQL指令,在設計不良的程式當中忽略了檢查,那麼這些夾帶進去的指令就會被資料庫伺服器誤認為是正常的SQL指令而執行,因此遭到破壞或是入侵。
2.Local File Inclusion
使用者能控制包含文件的參數,例用網址列輸入指令,進而拿到主機上的檔案。如果駭客有心,可以拿到主機上的任何檔案,包括網頁的設定檔。
3.Cross Site Scripting
這個漏洞是使用Javascript,當使用者點擊帶有惡意程式碼的連結,瀏覽器會被導到駭客的指定頁面,並執行惡意程式。將使用者輸入的資訊回傳給駭客。
如何保護網頁
在網頁建置的時候,就要想辦法防範已知的漏洞遭到有心人士的例用。以下這幾點,可防止網頁遭到有心人士的攻擊。
1.更新作業系統
無論各種作業系統可能都會因程式寫法而有漏洞,這些漏洞也是駭客攻擊目標,而開發者會定時發行更新來修補已知的漏洞。定時更新就可以讓這些已知的問題不會成為網頁被攻擊的可能。
2.設定不同的權限
在系統上,不同的管理者或使用者應該要有不同的權限,權限的設定要嚴謹,例如,不應該讓一般的使用者能夠看到其他使用者的帳號及狀態。若沒有設定權限,駭客只要得到一位使用者的帳號密碼,便可以操作整個系統。
3.不用網頁直接讀取資料庫
使用者輸入的內容,可以直接接入資料庫並讀取資料,雖然這樣很方便,但容易遭有心人士利用。造成SQL-injection的攻擊。建議能夠用另外的程式介接輸入訊息的網頁及資料庫的系統。
4.確認使用者輸入的內容
太過於信任使用者所輸入的資料,未限制輸入的字元數,以及未對使用者輸入的資料做潛在指令的檢查。這些都是容易造成有心人士利用的地方,依照輸入的資料形態,限制使用者輸入的內容,例如:只能輸入數字或限制字元數等,可以有效的防止攻擊的發生。另外,對使用者輸入的資料做再次檢查,確認不會有潛在指令的風險,也是一個很好的方式。
5.不要在錯誤訊息顯示過多的資訊
很多的錯誤訊息會將資料庫或網頁的原始碼直接帶出,更甚者會將帳號密碼列於錯誤訊息上。這會使駭客有足夠的資訊了解網頁的漏洞,並從而攻擊。在建置網站時,應避免開啟詳細錯誤,以免洩漏過多的資訊,給駭客攻擊的材料。
結論
在網頁建置的時候,就應該要做出詳細的設定,並注意作業系統的更新。若有後台系統的網站,更要注意登入後台的權限。有了這些設定,網站才能夠有更安全的保障。