污點檢驗

污點檢驗是某些程序語言所擁有的特性 ， 例如Perl和Ruby ， 可用於增加安全性和避免惡意用戶在主機上執行命令 。 污點會檢驗突出的安全風險 ， 一般來說這些風險與那些使用SQL注入或緩衝區溢出攻擊的網站相關 。 污點檢驗的原理是任何變量 （ 例如在網頁表單區域的一個變量集 ） 能夠被外部用戶修改 ， 從而造成了潛在的安全危險 。 如果該變量被一個表達式賦值給第二個變量 ， 那麼第二變量也是可疑的 。 污點檢驗工具在變量間傳遞運行 ， 直到外部輸入潛在地影響到所有的變量 。 如果這些變量中任何一個變量被用於執行危險命令 （ 例如對SQL數據庫或主機操作系統的直接命令 ） ， 污點檢檢驗工具將警告該程序正在使用有潛在危險的污點變量 。 程序員可以通過重新設計程序來避免因危險的輸入而導致的安全問題 。 污點檢驗能夠被視爲一個無界面全面驗證的保守近似或者是更一般化的安全信息流概念 。 因爲系統中的信息流不能通過檢驗一個簡單的執行追蹤而被驗證 ， 污點分析的結果將必然地反映關於該系統信息流特徵的近似信息 。