首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 分頁負數參數 SQL 攻擊分析與 PHP 防護代碼

     編輯:MySQL 綜合教學

攻擊現象

MySQL 錯誤日誌大量出現:

ERROR 1064 (42000): You have an error in your SQL syntax ... LIMIT -40, 20

攻擊者構造 page=-1&pageSize=20,導致 $start = (-1-1)*20 = -40,MySQL 不支持負數 OFFSET。

有漏洞代碼


防護代碼(嚴格正整數校驗)


深度防護建議

  1. 預處理綁定參數:雖然 LIMIT 不能直接綁定,但可綁定 WHERE 條件,構建 SQL 時用 (int)$page 強制轉型
  2. 輸入驗證庫:使用成熟驗證組件(如 Symfony Validator、Laravel Validation)
  3. API 網關/WAF:攔截明顯異常參數(負數、超長、注入特徵)
  4. 錯誤碼不外露:生產環境關閉詳細 SQL 錯誤返回前端
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved