免費開始練習
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 ); //進行資料庫查詢及結果 ....................................................//以下省略 % >
📝 此題為申論題,共 3 小題

小題 (三)

請在不變動系統任何設定及前端輸入下,就你所知道之任一程式語言(含虛擬碼),在後端接收處理程式新增字串處理函數 checkdata(xxxx),傳入參數為使用者輸入之資料,經處理後傳回無風險之資料(除宣告函數外,每行程式碼皆須註解處理內容,未加註解者不予計分)。(8 分)
題目圖片

思路引導 VIP

撰寫一個函數,功能是替換掉或跳脫 SQL 敏感字元。例如單引號、雙引號、分號等。

🤖
AI 詳解
AI 專屬家教

以下以 PHP 語言為例撰寫 checkdata 函數:

function checkdata($input_str) { 

小題 (一)

請問上述設計會產生何種資料庫資安風險?(2 分)
題目圖片

思路引導 VIP

後端程式直接將前端取得的字串變數 ($id) 串接到 SQL 語句中,沒有做任何檢查或過濾。

🤖
AI 詳解
AI 專屬家教

上述設計會產生 SQL 資料隱碼攻擊 (SQL Injection) 的資安風險。

小題 (二)

請列舉上述資安風險對系統及資料所產生之危害。(4 分)
題目圖片

思路引導 VIP

說明 SQL Injection 可能導致的後果,例如未經授權存取資料、篡改資料、刪除資料,甚至取得伺服器控制權。

🤖
AI 詳解
AI 專屬家教

SQL 資料隱碼攻擊可能產生以下危害:

  1. 資料外洩:攻擊者可透過惡意 SQL 語句繞過驗證,讀取未經授權的機敏資料(如密碼、個資)。
  2. 資料篡改與破壞:攻擊者可執行 UPDATE、DELETE、DROP 等指令,修改或刪除資料庫中的重要資料,甚至清空整個資料表。

🏷️ 相關主題

程式設計演算法與資料結構實作
查看更多「[統計資訊] 資料庫及資料探勘、程式設計」的主題分類考古題