Loading...

關於資安防護

Temperature: 0 °C

ChungChung
author_tools

一直以來都不敢寫跟資安有關的文章..對來說...資安一直是一個課題..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 來做弱點掃瞄..確認已修補

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

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

https://innstory.com/story-關於資安防護-298
寫程式筆記

Prev
 PHP自動補零

Next
婚宴 

About the Author

Chung

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

#有人用筆寫日記,有人用歲月寫日記,有人用照片寫日記,而我,用innstory寫日記。

Visitor message

Leave some footprints to prove that you visited me

Recommended reading

Author's other related stories

戶外教學到板橋派出所,當一日小警察。

戶外教學到板橋派出所,當一日...

差婆來了。

JavaScript的獲取日期代碼不足兩位數補0

JavaScript的獲取日...

當我們用javascript得到了一個時間後...針對月份及日期的部分只會顯示數字... funct...

用distinct在MySQL中查詢多條不重複記錄值

用distinct在MySQ...

select *, count(distinct name) from table group by...

Please select an option

error

Hi, thank you for your participation, but you cannot vote repeatedly~

Join innstory now and start recording your story.

"Innstory" is a place to store stories. We are committed to becoming a warm platform. Deepening the bonds between people is our direction.
We are convinced that the blockchain between people is not just a cold calculation. Join us now.

Wrong format