2012-02-10 59 views
0

我在PHP中創建一個簡單的反饋表單:用戶只需輸入一些關於我的網站的評論/建議等,然後單擊「發送反饋」。然後,他輸入的文本直接作爲電子郵件的主體發送給我(即我自己設置收件人地址,用戶的輸入僅用於郵件正文內)。在通過電子郵件發送之前過濾用戶輸入

現在我不確定,如果我簡單地將未經過濾的文本插入到電子郵件正文中,將會發生什麼類型的攻擊。

我目前正在使用Joomla平臺(即我使用Joomla的JMail功能),但我認爲這個問題更一般:有很多關於SQL注入和跨站點腳本的信息(它們是等效的攻擊媒介),但我沒有發現太多關於電子郵件。

注意,在我的情況下,該文本是只有每個電子郵件發送的,所以我不關心SQL注入或跨站腳本(電子郵件發送純文本)。那麼我應該採用什麼樣的過濾?

感謝 馬丁

+0

這取決於:你發送純文本電子郵件或HTML的? – zerkms 2012-02-10 11:08:03

+0

純文本電子郵件。 – MartinStettner 2012-02-10 12:39:34

回答

0

既然你期待只的意見和建議,你可以簡單地刪除任何字符以外的吳丹字母,數字和「‘’,」。即使它刪除了其他字符對你來說也沒有關係,但你會明白它們的意思。 「=」是最大的敵人。但是我描述的那套應該讓你安全。

+0

'='有什麼問題? – zerkms 2012-02-10 11:12:56

+0

我誤解了,因爲它的電子郵件正文沒有損害'='。但是沒有人能夠傷害身上只有字母和數字的人。 – 2012-02-10 12:35:21

0

最重要的是垃圾郵件保護。

如果您在HTML中發送電子郵件,你應該過濾標籤(用strip_tags或用htmlspecialchars)或驗證用戶的HTML(HTMLPurifier http://htmlpurifier.org/

限制消息的長度也可以是有用的。