Перейти к публикации

Избыточно-недостаточное экранирование заголовков новости


Рекомендованные сообщения

1. В метатеге заголовка невозможно использовать обратный слеш: \
Его получится использовать, если экранировать его вручную прописав \\\\, но после повторного сохранения слеш всё равно пропадёт.
Т.е. stripslashes есть, а addslashes нету.

 

2. Невозможно нормально использовать HTML сущности в основном и мета заголовке.
К примеру мне нужно, чтобы был именно такой заголовок в таком же виде:

Пример "замены" © на ©

После сохранения новости в БД записывается "исправленный" заголовок (причём ещё зачем-то дополнительно экранируется двойная кавычка):

Пример \"замены\" © на ©

Возможно так действительно правильнее/удобнее. Для таких редких случаев можно вручную экранировать символ & → &
Но проблема в том, что после повторного сохранения – опять получим "исправленный" заголовок.


Пишу заголовок:

Пример "замены" © на ©

В БД он записывается в таком же виде (разве что кавычка лишний раз экранируется слешем).
На сайте в заголовке и на странице он отображается корректно именно так как задумано (чтобы писало " и © текстом)

Открываю редактирование и вижу уже "исправленный" заголовок:

Пример "замены" © на ©

Ну и после сохранения, соответственно, полностью теряется исходный заголовок.

Ссылка на сообщение
Поделиться на других сайтах
8 минут назад, Sander1 сказал:

2. Невозможно нормально использовать HTML сущности в основном и мета заголовке.

Зачем вы пишите сущности? Все что требует экранировать будет экранировано, и никаких сущностей для этого писать не требуется. И писать " нет никакого смысла. Заголовок должен быть написан текстом и нормальными символами, а не HTML кодом. HTML сущности являются ничем иным как HTML кодом. HTML код в этих тегах недопустим, никакой. И не будет допустим. В этом поле допустим и пишется только текст, без какого либо HTML.

8 минут назад, Sander1 сказал:

1. В метатеге заголовка невозможно использовать обратный слеш: \

Тоже 100% нет, потому что при комбинации условий, это прямой путь к взлому сайта и возможность внедрения зловредного кода, а также повреждения верстки страницы.

Ссылка на сообщение
Поделиться на других сайтах

1. В обычный заголовок пишу `Пример \ слеша`, в теле страницы вижу заголовок:

<title>Пример \ слеша</title>

Если же в метатег заголовка прописать `Пример \ слеша`, то в теле страницы будет:

<title>Пример слеша</title>

Получается в одном случае это опасно, в другом – нет?

 

2. Зачем... Например чтобы можно было сделать такой заголовок:
https://stackoverflow.com/questions/35367945/why-should-i-use-amp-instead-of

Ссылка на сообщение
Поделиться на других сайтах

1. Я вам написал это вопрос безопасности.

2. Так и пишите просто & в коде он уже будет как &amp; писать это вручную не нужно

Ссылка на сообщение
Поделиться на других сайтах

2. Откройте страницу по ссылке. Скопируйте тот заголовок и вставьте его в DLE.
Вот в этом проблема, что НЕВОЗМОЖНО получить на выходе такой же заголовок как там. Будет так:

Why should I use & instead of &?

Вместо правильного:

Why should I use &amp; instead of &?

Да даже на этом движке форума, я уверен, если в заголовке прописать &amp; то на странице он так же и будет показан, а не заменён на &.

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...