2010-03-03 14 views
0

我很驚訝爲了保證我的應用安全,我一直無法找到需要從郵件中刪除的字符。要從郵件中刪除哪些字符?

我有一個php應用程序,並且大部分輸入都是數字,但我添加了用戶附加消息的功能,所以我需要清理消息並去除任何可能成爲威脅的字符。

我最初的反應是,如果我沒有

 
$message=addslashes(preg_replace('/[^a-zA-Z0-9\-,& $%\(\)#@!\'\"?.]/','',$_POST['message'])); 

我會很安全的,但我一直沒能找到任何其中規定什麼字符可以是破壞性的,哪些人物將是安全的。

+0

已經有很多關於輸入過濾的問題。只要看看這個頁面的右側。例如。 http://stackoverflow.com/questions/2305435/user-input-filtering-do-i-need-to-filter-html – 2010-03-03 18:58:59

+0

謝謝菲利克斯,但似乎沒有任何這些問題(我看着)真的回答了這個問題'什麼是角色是一種威脅。與此同時,HTML淨化器似乎是要走的路,而我以前從來沒有聽說過。 – pedalpete 2010-03-03 19:13:41

回答

1

我要說的是,你沒有從你的輸入中去掉任何字符,至少一般來說。它向數據庫


不過,如果你允許用戶輸入HTML,你應該在HTMLPurifier看一看,以確保它們無法將任何惡意HTML代碼插入到您的網頁中:

HTML淨化器是一個符合標準的 用PHP編寫的HTML過濾器庫。 HTML淨化器不僅會爲一個徹底的審計,安全又寬容的白名單中刪除所有 惡意代碼(更好地稱爲 XSS),它 也將確保您的文檔 符合標準

+0

「[...]確保它們能夠注入任何惡意HTML代碼[...]」 - 您是不是意味着相反? – Gumbo 2010-03-03 19:11:59

+0

@Gumbo:ouch;當然,我的意思是相反;-) ;;我編輯了我的答案,而不是;;謝謝你的評論 ! – 2010-03-03 19:14:27

+0

htmlspecialchars對於UTF-8編碼字符集 – Sinan 2010-03-03 19:54:59

0

而不是消毒的數據只是使用Prepared Statements進行數據庫交互。 PDO無需您自己手動輸入您的所有信息。

PHP Manual

+0

可能是危險的,但除了數據庫交互之外,是否還有其他問題? – pedalpete 2010-03-05 18:10:20

相關問題