我在那裏的電子郵件地址被傳遞的電子郵件地址PARAM未編碼像這樣:簡單的PHP XSS/URLEncode的問題
http://domain/[email protected]
什麼PHP逃逸/編碼將讓我在一個安全的顯示電子郵件地址在頁面上的輸入字段?
一切我試圖使編碼的字符,而不是顯示用戶友好的電子郵件地址(即測試%2Btest%40test.com)高達
更新 - 這裏就是我已經試過:
urlencode($_GET['email']) = test+test%40test.com (@ sign is encoded)
htmlspecialchars($_GET['email']) = test [email protected] (lost the +)
htmlspecialchars(urlencode($_GET['email']) = test+test%40test.com (@ sign encoded)
回想一下,我試圖把未編碼的URL的電子郵件PARAM和安全輸出入的值一個輸入字段,同時保持加號完好無損。
也許我應該試試這個?
str_replace("%40", "@", htmlspecialchars(urlencode($_GET['email'])))
最好的辦法是首先urldecode,然後用htmlspecialchars吧:) $電子郵件=用htmlspecialchars(urldecode($ _ GET [ '電子郵件']));現在你可以使用$ email;) – ahmet2106 2011-02-17 19:18:25
不,我不認爲你明白。該電子郵件地址發送未編碼。 – doremi 2011-02-17 19:20:30
請嘗試htmlspecialchars ahmet2106指出。 – 2011-02-17 22:31:39