免費開始練習
司法三等申論題 115年 [檢察事務官電子資訊組] 程式語言

第 四 題

📖 題組:
四、某網路書店之網站提供下列 API,網站系統可依客戶端需求回傳 JSON 或 XML 資料。  GET/api/books:查詢所有書籍  GET/api/books/{id}:查詢指定書籍  POST/api/books:新增書籍  DELETE/api/books/{id}:刪除指定書籍
📝 此題為申論題,共 4 小題

小題 (四)

(四)系統後台使用下列 Python 程式碼來實作 GET/api/books/{id}(查詢指定書籍)的功能:
book_id = request.query["id"]
sql = "SELECT title, price FROM Book WHERE id = " + book_id
result = database.execute(sql)
1.請說明此程式碼在網頁安全上,可能遭受的惡意攻擊類型與原因。(5分)
2.請使用參數化查詢(Parameterized Query)修正上述程式碼,寫出修正後的完整程式片段,以有效防範該攻擊。(5 分)

思路引導 VIP

📋 事實梳理:程式碼將使用者傳入的字串 book_id 直接用加號 + 串接成完整的 SQL 語句執行。 🔍 爭點辨識:如果使用者傳入的不是數字,而是 '1 OR 1=1' 甚至 '; DROP TABLE Book --' 會怎樣?

🤖
AI 詳解
AI 專屬家教

【爭點分析】 本題測驗應用程式安全防護之核心概念,針對未經驗證之外部輸入如何威脅資料庫安全性,並探討標準防禦實務。 【大前提:法規與實務見解】

小題 (一)

(一)請說明 HTTP 的無狀態性(Stateless)是什麼意思。(5 分)

思路引導 VIP

📋 事實梳理:HTTP 協定被設計為一種 Stateless 協定。 🔍 爭點辨識:Stateless 在通訊上代表伺服器會不會記得上一秒誰來過?

🤖
AI 詳解
AI 專屬家教

【爭點分析】 探討 HTTP 通訊協定(HyperText Transfer Protocol)架構設計中最核心之本質特徵。 【大前提:法規與實務見解】

小題 (二)

(二)若此網路書店需要辨識已登入的使用者,伺服器端可以採用那一種機制來保存或傳遞登入狀態?請舉出一種說明即可。(5 分)

思路引導 VIP

📋 事實梳理:既然 HTTP 是無狀態,但購物車或登入系統需要「記住」使用者。 🔍 爭點辨識:實務上如何克服無狀態的限制?

🤖
AI 詳解
AI 專屬家教

【爭點分析】 本題測驗在無狀態之 HTTP 協定上,實務界因應商業需求所發展出之「狀態維持(State Management)」補救機制。 【實務見解與結論】

小題 (三)

(三)假設伺服器收到下列請求:
GET/api/books?discount=20
伺服器執行圖 4 之 Python 程式碼,且所有數值(包含計算後的結果)在轉為 JSON 輸出時,皆會強制保留一位小數(浮點數格式)。請寫出最後一行指令在標準 JSON 格式下,所輸出的單行完整 JSON 字串結果。(5 分)

books = [
{id: 1, price: 500},
{id: 2, price: 800}
]
discount = float(request.query["discount"])
for each book in books :
book["salePrice"] = book["price"] *(100 - discount)/100
print(output_as_json(books))
圖 4

思路引導 VIP

📋 事實梳理:程式碼讀取 discount=20,也就是 20.0。接著計算 salePrice = price * (100 - 20) / 100 = price * 0.8。 🔍 爭點辨識:id 1 價格 500 -> 5000.8=400。id 2 價格 800 -> 8000.8=640。

🤖
AI 詳解
AI 專屬家教

【爭點分析】 本題測驗業務邏輯之數據演算,以及標準 JSON(JavaScript Object Notation)資料交換格式之語法規範。 【小前提:本案事實涵攝】

🏷️ 相關主題

應用程式安全與資料庫防護
查看更多「[檢察事務官電子資訊組] 程式語言」的主題分類考古題