我在那里的电子邮件地址被传递的电子邮件地址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