在網站上,如果我有一個表單,用戶可以輸入一些文本,然後顯示一個顯示用戶輸入內容的頁面,我知道html將用戶輸入的值編碼以防止腳本攻擊。如果表單發送的是HTML電子郵件,我認爲我會做同樣的事情,但電子郵件有沒有特殊情況,並且電子郵件客戶端是否會運行注入到電子郵件中的任何腳本?對電子郵件的用戶輸入進行編碼
1
A
回答
0
在將發佈的內容分配給電子郵件的HTML正文之前,您一定要進行HTML編碼。您的代碼應該已經拒絕諸如「< script>」之類的內容無效,而不僅僅是在電子郵件的情況下,但在所有情況下。
有沒有其他的考慮,你需要擔心。
0
我相信通過將電子郵件正文標記爲文本/純文本可以避免javascript和/或html攻擊(但我不會信任遵循頭文件提示的前景)。
0
你應該使用一個SMTP庫,它承擔由重複或丟失轉義引起的任何負擔(和潛在的錯誤)。然後,只使用純文本郵件(文本/純文本)。
爲了避免有問題的郵件客戶端的安全問題,您還可以發送幾乎爲空的郵件,並將文本作爲附件發送(文件擴展名爲「.txt」,內容類型爲「text/plain」)。
1
雖然在發送文檔之前從文檔中剝離<script>
標籤仍然是個不錯的主意,但我認爲威脅較低。我相信你會很難找到一個電子郵件客戶端(仍然得到支持),它不會在呈現電子郵件之前剝離腳本。
0
我強烈建議使用現有的經過測試的解決方案發送郵件。如果您將用戶輸入傳遞給PHP mail()函數(即使使用HTML編碼),攻擊者也有可能製作一個實際包含標題的「主體」,以創建多部分消息。
相關問題
- 1. Codeigniter - 面對問題發送電子郵件和輸入用戶電子郵件
- 2. CakePHP電子郵件傳輸編碼
- 3. 電子郵件的編碼主題行
- 4. 使用用戶,電子郵件和密碼進行Firebase註冊
- 5. 對SQL注入的用戶輸入進行編碼
- 6. iOS用戶電子郵件密碼輸入框
- 7. 使用字符串對電子郵件地址進行編碼和解碼
- 8. 用收件人,主題和正文對電子郵件進行QR編碼?
- 9. 在表單中發送電子郵件給用戶輸入電子郵件。 ASP.NET
- 10. 當用戶輸入電子郵件地址時自動發送電子郵件
- 11. PHP電子郵件編碼?
- 12. ActionMailer.Net電子郵件編碼
- 13. Outlook電子郵件編碼
- 14. IMAP編碼電子郵件
- 15. 電子郵件輸入
- 16. @對BlackBerry電子郵件進行驗證
- 17. 輸入的電子郵件覆蓋SecureRandom電子郵件?
- 18. 使用電子郵件鏈接中的代碼進行用戶帳戶驗證
- 19. 消毒用於電子郵件的用戶輸入
- 20. 使用Android的用戶輸入發送電子郵件
- 21. 何時何地對用戶輸入進行編碼?
- 22. 如何對用戶輸入操作符進行編碼
- 23. 讓用戶編輯ActionMailer電子郵件
- 24. 將電子郵件發送到用戶的電子郵件基礎上,用戶輸入
- 25. 添加用戶表單輸入到電子郵件VBA代碼到電子郵件正文
- 26. 如何對電子郵件客戶端進行單元測試
- 27. 通過電子郵件和PHP進行電子郵件驗證?
- 28. 從用戶輸入獲取的電子郵件ID
- 29. 發送包含用戶輸入數據的電子郵件
- 30. Shell腳本 - 基於用戶輸入的電子郵件腳本