moea_joint_essay
108年
[統計資訊] 資料庫及資料探勘、程式設計
第 三 題
📖 題組:
有一 Web 程式系統,由使用者輸入 ID 及地址,並由後端接收處理程式進行資料庫相關處理,其前端畫面輸入欄位、對應之 Html 碼及後端接收處理程式如下,試回答下列問題:(14 分) 前端畫面輸入欄位: 對應之輸入欄位 Html 碼: 請輸入 ID: < input type= " text " name= " id " > 請輸入地址: < input type= " text " name= " address " > 後端接收處理程式及註解(雙斜線//後為註解): < % .....................................................//以上省略 $id = Request( " id " ); //取得輸入 ID 欄位資料 $address = Request( " address " ); //取得輸入地址欄位資料 $sqlstring = " Select * from idtable where id = `'"+$id+"'` "; // id 是否存在於 idtable 資料表 $result = sql_query( $sqlstring ); //進行資料庫查詢及結果 ....................................................//以下省略 % >
有一 Web 程式系統,由使用者輸入 ID 及地址,並由後端接收處理程式進行資料庫相關處理,其前端畫面輸入欄位、對應之 Html 碼及後端接收處理程式如下,試回答下列問題:(14 分) 前端畫面輸入欄位: 對應之輸入欄位 Html 碼: 請輸入 ID: < input type= " text " name= " id " > 請輸入地址: < input type= " text " name= " address " > 後端接收處理程式及註解(雙斜線//後為註解): < % .....................................................//以上省略 $id = Request( " id " ); //取得輸入 ID 欄位資料 $address = Request( " address " ); //取得輸入地址欄位資料 $sqlstring = " Select * from idtable where id = `'"+$id+"'` "; // id 是否存在於 idtable 資料表 $result = sql_query( $sqlstring ); //進行資料庫查詢及結果 ....................................................//以下省略 % >
📝 此題為申論題,共 3 小題
小題 (三)
請在不變動系統任何設定及前端輸入下,就你所知道之任一程式語言(含虛擬碼),在後端接收處理程式新增字串處理函數 checkdata(xxxx),傳入參數為使用者輸入之資料,經處理後傳回無風險之資料(除宣告函數外,每行程式碼皆須註解處理內容,未加註解者不予計分)。(8 分)
思路引導 VIP
撰寫一個函數,功能是替換掉或跳脫 SQL 敏感字元。例如單引號、雙引號、分號等。
小題 (一)
請問上述設計會產生何種資料庫資安風險?(2 分)
思路引導 VIP
後端程式直接將前端取得的字串變數 ($id) 串接到 SQL 語句中,沒有做任何檢查或過濾。
小題 (二)
請列舉上述資安風險對系統及資料所產生之危害。(4 分)
思路引導 VIP
說明 SQL Injection 可能導致的後果,例如未經授權存取資料、篡改資料、刪除資料,甚至取得伺服器控制權。