關於資安防護

Temperature: 0 °C

ChungChung
一直以來都不敢寫跟資安有關的文章..對來說...資安一直是一個課題..XSS...CSRF...SQL Injection....

也不是這方面的專家...這次只當是將自己的作法紀錄下來提醒自己注意...

這3天接到了一個專案任務...朋友客戶的網站系統出現資安漏洞...

以往在解決資安問題時...每次都會讓苦腦很久...不知為什麼就是會有幾個地方抓很久抓不到...@@

接著就是解決方式了...

首先得先把客戶的網站系統用FTP抓下來...想說就連著讓他抓...怎知一直抓都抓不完全..還會被的防毒軟體發出警告...

原來這網站系統已經不是有資安漏洞而已...而是程式碼早已被竄改並植入後門...

不得已只好關了防毒軟體把檔案抓下來..一支一支先清除被植入的code...

然後再架設在虛擬空間..開始修補大工程...

白話來說..會產生資安漏洞的疑慮就是操作端在對server端發出請求時..被植入不該有的程式碼..

造成資料庫資料被竊取...又或者造成資料庫資料被竄改...甚至整個網站server癱瘓...這是非常嚴重的問題..

因此們必須在操作端發出請求時....接收端要接收到完整且沒被竄改也沒被植入特殊符號的value

那麼的做法會有以下幾種:

若使用 $_SERVER["REQUEST_URI"]取得當前頁面時
應該改成 htmlEntities($_SERVER['REQUEST_URI'], ENT_QUOTES, "UTF-8") 取得當前頁面

過濾字串方面

若使用$_GET $_POST $_REQUEST接收請求時應該要過濾特殊字元或符號
使用 mysql_escape_string 或 htmlspecialchars

mysql_real_escape_string()函數轉義SQL語句中使用的字符串中的特殊字符。
使用方式為mysql_real_escape_string($value)

用htmlspecialchars()函數把一些預定義的字符轉換為HTML實體。

& (和號) 成為 &
" (雙引號) 成為 "
' (單引號) 成為 '
< (小於) 成為 <
> (大於) 成為 >

使用方式為htmlspecialchars(string,quotestyle,character-set)

替代字串方面

列出可能會有問題的一些字串符號
$search=array("-","(",")","~","'","or","and","OR","=","execute","update","count","chr","mid","master","truncate","char","declare","select","create","delete","insert","%20");
把這些可能會有問題的一些字串符號替換成什麼內容?...這邊是全都替換成空值...
$replace=array("","","","","","","","","","","","","","","","","","","","","","","");
$search 跟 $replace 陣列數需相對應..接著以下
$value=str_replace($search, $replace,htmlspecialchars($value));
完成替換..過濾掉有問題的符號...

請求查詢資料庫方面..使用參數化查詢...這邊用的是擬參數化查詢..也能有成效

將原本的查詢方式 $sql="select * FROM table where id='$value'"
改成 $sql=sprintf("select * FROM table where id='%s'",mysql_real_escape_string($value));
如果是查相似值
將原本的查詢方式 $sql="select * FROM table where id LIKE '%$value%'"
改成 $sql=sprintf("select * FROM table where id LIKE '%%%s%%'",mysql_real_escape_string($value));

Apache設定方面

將 AcceptPathInfo 設為 off

最後用Acunetix Web Vulnerability Scanner 9.5 來做弱點掃瞄..確認已修補

當然...解決的方法有很多....重點就是不要讓操作端植入可以執行的程式碼......

資安一直是一個課題...

作者簡介

Chung

我是chung
網路工作者
主業是網站系統開發建置
副業是做夢,寫故事
作品請參考/teme.biz
做夢請參考/innstory.com
聯絡/chung.teme@gmail.com

訪客留言

留下一些足跡證明你來拜訪過我

推薦閱讀

作者其他相關類別故事

分享到各社群的方式

分享到各社群的方式

每次在寫網站系統時..客戶總會要求希望他們的網站可以有分享到社群網站的功能... 所以...

HTML5 Geolocation

HTML5 Geolocation

說真的,HTML Geolocation的功能真的好用... 輕鬆就可以讓網站也能取得...

Welcome To Google

Welcome To Google

Top第一天,參訪了Google APAC HQ 第一次來到Google,難掩興奮心情...

請選擇選項

執行錯誤

Hi,謝謝你的參與,但無法重複投票哦~

現在就加入innstory,開始紀錄你的故事。

「innstory」是一個儲存故事的地方,我們致力於成為一個有溫度的平台,加深人與人之間的羈絆是我們所努力的方向。
我們深信人與人間的區塊鏈不是只是冷冰冰的運算。現在就加入我們。