想象一下这个简单的形式什么是编码URL的字符?浏览器还是PHP?
<form action="<?php echo $_SERVER['REQUEST_URI']; ?>" method="post">
<fieldset>
<legend>Contact Me</legend>
<label for="email">Email:</label>
<input type="text" name="email" id="email" />
<button type="submit">Submit</button>
</fieldset>
</form>
现在想象一下,它通过form.php?hack=" onsubmit="alert('xss')
输出进行访问时,我查看源代码是
<form action="/things/?hack=%22%20onsubmit=%22alert(%27xss%27)" method="post">
是什么编码这 - 就是它的浏览器或PHP?
出于好奇,我总是在htmlspecialchars()
内回复$_SERVER['REQUEST_URI']
。
你可以通过浏览器的等式来检查这种事情。我有些惊讶,你没有通过telnet到Web服务器来自己调查。 – outis 2010-03-03 13:27:57
@outis我认为你承担了太多的我。我不知道该怎么做。虽然我会研究它。谢谢。 – alex 2010-03-03 14:00:29
@alex:幸运的是,考虑到HTTP的简单性,它并没有太多。易于调试是HTTP是纯文本协议而不是二进制协议的两个主要原因之一。如果您想要迷你指南,则有大量显示基本信息的网页(http://www.google.com/search?q=http+telnet)。 – outis 2010-03-03 14:49:15