最佳防禦是後端參數化查詢;Nginx 層面可作為**第二道防線**,針對 Query String 中的高風險字元(單引號、分號、尖括號等)直接回傳 404,阻斷明顯攻擊嘗試。
`rewrite` 僅匹配 URI(`?` 之前),查詢參數需用 `$query_string` 變數配合 `if` 判斷。
# 若查詢字串包含單引號、分號、<、> 等字元,直接回傳 404
if ($query_string ~* ".*[;'<>].*") {
return 404;
}
放置於 `server` 或 `location` 區塊中。
# 僅檢查 id 參數
set $check_id $arg_id;
if ($check_id ~* "[';<>]") { return 404; }