2010-09-18 93 views
0

由於我使用PDO來防止SQL注入,是否仍需要應用PHP的數據過濾器以確保輸入是正確的格式? PDO是否保護所有類型的注射?使用過濾日期過濾用戶輸入

$STH = $DBH->prepare("SELECT * from jem WHERE email=? AND pass=? LIMIT 0,1"); 

任何更多的提示登錄腳本將是幫助。

回答

1

在使用PDO之前,我想你正在驗證你的數據(例如使用一個驗證過濾器),然後在將它插入到你的數據庫之前將其轉義。現在,你只需要(但仍然需要)做第一件事。

關於你的第二個問題,PDO保護你免受SQL注入。在輸出之前,你仍然必須轉義html,以防止js代碼注入。

+0

是的,我會使用「HTML Purifier」去除不相關的HTML和所有服務器端的systax。 – proyb3 2010-09-18 21:50:08

+0

但你的意思是,我仍然需要使用過濾數據功能? – proyb3 2010-09-18 21:53:54

+0

「過濾數據功能」:這是什麼?一組函數來驗證/清理數據?然後是...一個名爲filter_data()的函數?我不知道這個功能。應該使用HTML Purifier(PDO不知道任何關於HTML的內容,所以它不能處理與之相關的安全風險) – greg0ire 2010-09-18 22:41:56