跳轉到內容

網路應用程式安全指南/比較問題

來自華夏公益教科書,開放的書籍,開放的世界

比較問題

比較值時,請了解您的程式語言的行為。例如,在 PHP 中,"==" 是一個寬鬆的比較,它忽略型別,並可能導致意外行為。 "===" 用於精確比較。使用錯誤型別的比較會導致安全問題。

為了防止比較問題

  • 瞭解程式語言中的比較型別,並使用正確的型別
  • 如有疑問(尤其是在 PHP 中),請使用嚴格比較(PHP: "===")
  • 比較字串是否相等時,請確保您實際檢查的是字串是否相等,而不是一個字串是否包含另一個字串

基本原理

使用過於寬鬆的比較很容易導致安全問題。例如,在 PHP 中,以下將被評估為 TRUE

 "a97e8342f0" == 0

十六進位制字串,它可能是令牌或雜湊值,會自動被解析為整數,並且由於它以字母開頭,因此無法解析,結果為 0。

意外地檢查字串是否包含,而不是檢查字串是否相等,這可能允許攻擊者繞過例如白名單檢查。

華夏公益教科書