- 1
<img src="/html/../images/menu/top.png" alt="" />
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+126
<img src="/html/../images/menu/top.png" alt="" />
Весь HTML вот так зашифрован, не знаю нормально ли это?
Что смутило? Если путь к файлу, то всё зависит от сервера. "/html" может быть cgi-скриптом, тогда "../images/menu/top.png" — это параметры его вызова. Может стоять mod_rewrite, например.
Within the <path> and <searchpart> components, "/", ";", "?" are
reserved. The "/" character may be used within HTTP to designate a
hierarchical structure.
RFC2396 уже рекомендует нормализовать URL в клиенте перед отправкой запроса, но только если путь относительный. Остальные же положения . и .. приведены в параграфе «Abnormal examples»:
Similarly, parsers must avoid treating "." and ".." as special when
they are not complete components of a relative path.
Т. е. путь "html/../images/menu/top.png" нужно нормализовать, потому что он относительный, а с "/html/../images/menu/top.png" ничего не делать, потому что он начинается со слэша.
Современные веб-браузеры (IE, Опера, ФФ, Хром) нормализуют все пути (и абсолютные, и относительные) ещё до отправки запроса к серверу. Но в RFC3986, вышедшем в 2005 году, абзаца, явно разграничивающего правила для абсолютных и относительных путей, уже нет.