在Kohana prepared statement documentation它規定Kohana的SQL預處理語句安全
儘管所有的參數都逃出來防止SQL注入,但它仍然是一個好主意,以驗證/淨化你的輸入。
從我在準備好的聲明中讀到的內容,我的印象是綁定參數阻止了SQL注入。如果情況並非如此,那麼在綁定變量之前應該使用什麼消毒/轉義方法?
在Kohana prepared statement documentation它規定Kohana的SQL預處理語句安全
儘管所有的參數都逃出來防止SQL注入,但它仍然是一個好主意,以驗證/淨化你的輸入。
從我在準備好的聲明中讀到的內容,我的印象是綁定參數阻止了SQL注入。如果情況並非如此,那麼在綁定變量之前應該使用什麼消毒/轉義方法?
我認爲當他們說「這仍然是一個好主意來驗證/ sanitize」,他們的意思是使用有效的類或/和驗證類...爲了確保你得到正確的數據插入你的數據庫。在Kohana中的驗證
更多信息:http://kohanaframework.org/3.2/guide/kohana/security/validation
UPDATE:
你也應該看看XSS:http://kohanaframework.org/3.2/guide/kohana/security/xss
的Kohana提供了一個數據庫抽象到不同的數據庫類型。並不是所有的具體數據庫都可能已經準備好了語句,因此它們將被模擬。某些特定數據庫的本地轉義功能甚至可能被破壞。
正如你永遠不知道,不僅有一層安全性總是好的。
另一層是你的腳本實際上接收到有意義的數據。例如。例如,一個名字大小爲8兆字節的字符串。無論數據庫在做什麼,都無濟於事。
同意,例如,如果您插入一個整數並且您收到一個文本字符串,會發生什麼情況。你最終可能會在數據庫中產生一個0而不是你期待的結果。 – bumperbox
所以,爲了清楚起見,它說這不是出於安全考慮的原因,只是爲了確保您期望的數據類型進入查詢? – flurry
實際上,如果將錯誤的數據添加到您的數據庫中,它可能會成爲一個安全問題(例如,可以在數據庫中插入腳本,可能會在您的應用程序的某處和某處執行該腳本)。它也可能導致錯誤。 – jnbdz