【发布时间】:2014-04-12 22:57:23
【问题描述】:
我知道 url 中不允许使用双引号字符,它被编码为 %22,这是通过 utf-8 encoding 完成的。但是,如果我构建的浏览器不执行 url 编码并使用双引号本身进行查询,会发生什么,因为它在 utf-8 编码方案中是允许的。例如:www.google.com/"a"。此外,当遇到双引号时,服务器中的 url 解析脚本会发生什么?
【问题讨论】:
-
可以用
mod_rewrite处理。 -
我看不出引号怎么会是个问题。引号被视为特殊字符的唯一原因是 URI 经常用于引号作为分隔符的环境中。
href="/%22quoted%22",诸如此类。如果我将引号输入为"或%22,我看不出它们在处理方式上的差异。我不认为是浏览器在那里进行翻译。 -
真正的特殊字符,例如
/或#,确实需要特别注意。 -
这个问题的前提是有缺陷的。
%22是 URL Escaping,与 UTF-8 无关。 -
不管你是否构建了一个非标准的网络浏览器。像 Apache 这样的服务器会在处理它们之前对 url 进行转义(解码)。那么,如果您将熟食发送给厨师,那有什么意义呢?安全?不。你只是不遵守标准并为自己犯错误:)
标签: javascript php html