Что нужно сделать против содержимого атрибута href: кодировка HTML или URL?как закодировать атрибут href в HTML
<a href="???">link text</a>
С одной стороны, поскольку атрибут href содержит URL, я должен использовать кодировку URL. С другой стороны, я вставляю этот URL в HTML, поэтому он должен быть закодирован в HTML.
Пожалуйста, помогите мне преодолеть это противоречие.
Спасибо.
EDIT:
Вот противоречие. Предположим, что в URL могут быть символы «<» и «>». Кодировка URL-адресов не удалит их, поэтому в атрибуте href будут зарезервированы HTML-символы, что нарушает стандарт. Кодировка HTML будет удалена '<' и '>' символы и HTML будут действительны, но после этого в URL будут отображаться неожиданные символы «&» (это зарезервированный символ для URL-адреса, он используется как разделитель параметров строки запроса) ,
Reserved URL characters является надмножеством reserved HTML characters, за исключением '<' и '>', которые зарезервированы для HTML, но не для URL.
EDIT 2:
Я был неправ о символах '<' и '>', они на самом деле процент спасся кодирования URL. Если это так, в этом случае достаточно кодирования URL, не так ли?
Вы пробовали что-нибудь до сих пор? –
Это «ты что-то пробовал», и мему становится глупо. Что при восстановлении ошибок в браузере, большая часть кодирования данных предназначена для защиты от проблем безопасности. Как вы должны сказать, что правильно, если вы что-то пытаетесь? Предположим, что любой комплект тестирования безопасности, который у вас есть, имеет достаточный охват? Это совершенно разумный вопрос о фундаментальной технике. – Quentin
Quentin более-менее прав, но остается вопрос, какие ситуации могут быть противоречивыми? Можете ли вы показать пример? И вы пробовали оба решения, и оба они работали, или оба не работают? –