如果我有一个href属性,例如<a href="www.exam ple.com">
,则点击输出链接的结果为www.exam%20ple.com
,预计不会将我发送给www.example.com
。如果我使用不间断空格字符(U + 00A0)或en-quad(U + 2000)(再次使用www.exam%20ple.com
作为输出),我也会得到完全相同的输出。我假设这样做的原因是两者都被HTML解释为标准的空格字符(U + 0020)。
现在,没有意义的是,如果我用空格字符替换空格字符,即<a href="www.exam ple.com">
,则点击该链接会成功并将我指向www.example.com
。我最初在尝试调用XSS存储的javascript漏洞时遇到过这种情况,其中各种符号被转义并且“javascript”的输入被清理。当我意识到使用选项卡将“javascript”分隔为“java script”允许我调用我的脚本时,我很高兴,但也非常惊讶。为什么会这样?
答案 0 :(得分:1)
空间或制表符在域名中永远不会有效,只有在您的客户端/浏览器在使用之前对输入宽容时才会被接受。谢谢用户2864740。