Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Безопасность работы с html
Покинул форум
Сообщений всего: 139
Дата рег-ции: Дек. 2014 Откуда: Киров, Россия
Помог: 11 раз(а)
Цитата:
То есть с html который был пропущен через htmlspecialchars...
Нет. Не нужно никакие htmlspecialchars.
Используя эту библиотеку, Вы задаете правила по которым она фильтрует входящий HTML.
А действует она по принципу: "Все не разрешенные теги считаются запрещенными"
На выходе у вас будет безопасный HTML без экранирований и т.п.
Test11
Отправлено: 18 Февраля, 2016 - 12:34:00
Частый гость
Покинул форум
Сообщений всего: 196
Дата рег-ции: Дек. 2015
Помог: 0 раз(а)
А как обстоят дела со стилями с css, что если необходимо получить пользовательские стили.
Со стилями тоже умеет работать? Только в тег необходимо обременить <style>тут пользовательские стили</style> (Добавление)
Покинул форум
Сообщений всего: 196
Дата рег-ции: Дек. 2015
Помог: 0 раз(а)
Блин только разобрался...
Так, htmlpurifier.org эта библиотека все же лучше?
TuX560
Отправлено: 18 Февраля, 2016 - 15:03:56
Гость
Покинул форум
Сообщений всего: 114
Дата рег-ции: Дек. 2015
Помог: 3 раз(а)
Test11 пишет:
Необходимо обработать html код который пришлет пользователь и записать его в файл. В том виде котором он есть, без замены тегов, сущностей и тд..
Вопрос, что на счет безопасности. Как быть с безопасностью?
Объясните люди добрые в чем заключается опасность просто запихать html код который пришлет пользователь в файл?
Мелкий
Отправлено: 18 Февраля, 2016 - 15:46:49
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
TuX560, о, наконец разумный вопрос.
Та никакой. Принял - сохранил как есть. Минимум кода, минимум проблем.
Скользкий момент может быть только с тем, что с этим файлом происходит потом. Если его надо отдавать обратно пользователям - то его нельзя отдавать как text/html. Форсирование plain text или octet-stream хороший вариант. И, разумеется, этот файл не должен попадать какому-нибудь серверному интерпретатору, тому же PHP.
И соответственно вопрос должен звучать - есть html, которых приходит от пользователя. Я хочу с ним сделать X. На какие грабли обратить внимание?
----- PostgreSQL DBA
Test11
Отправлено: 19 Февраля, 2016 - 00:03:22
Частый гость
Покинул форум
Сообщений всего: 196
Дата рег-ции: Дек. 2015
Помог: 0 раз(а)
Ок, спс.
Необходимо будет отдавать html другим пользователям на сайте. Кто знает, быть может кто нибудь запихает скрипт и тд...
У меня такой вопрос по библиотеке htmlpurifier, в доках http://htmlpurifier[dot]org/docs
Не могу найти конфиг, который бы разрешал теги input, по умолчанию он их удаляет...
Не подскажите как это сделать? (Добавление)
$config->set('Core', 'HiddenElements', array ('input'=>true));
Покинул форум
Сообщений всего: 114
Дата рег-ции: Дек. 2015
Помог: 3 раз(а)
Test11 пишет:
Ок, спс.
Необходимо будет отдавать html другим пользователям на сайте. Кто знает, быть может кто нибудь запихает скрипт и тд...
Тогда другой вопрос, а зачем html принимать от пользователя и отдавать его другим? Для простого форматирования есть BBCode и другие методы безопасного форматирования(на мой взгляд свою не долго/не сложно написать). Не отрицаю мы лишим свободы наших пользователей писать html, но уже точно обезопасим без всяких проблем. Просто не могу представить зачем действительно необходимо получать от обычных пользователей куски html.
ЗЫ: К сожалению по заданным тобой вопросам ничем не могу помочь, тк не сталкивался с этим.
Мелкий
Отправлено: 19 Февраля, 2016 - 09:45:02
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
Test11 пишет:
Необходимо будет отдавать html другим пользователям на сайте
Зачем и в каком виде?
----- PostgreSQL DBA
Viper
Отправлено: 19 Февраля, 2016 - 09:52:15
Активный участник
Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007 Откуда: Симферополь
Помог: 98 раз(а)
TuX560 пишет:
Тогда другой вопрос, а зачем html принимать от пользователя и отдавать его другим? Для простого форматирования есть BBCode и другие методы безопасного форматирования(на мой взгляд свою не долго/не сложно написать). Не отрицаю мы лишим свободы наших пользователей писать html, но уже точно обезопасим без всяких проблем. Просто не могу представить зачем действительно необходимо получать от обычных пользователей куски html.
Сложные структуры через bbcode = попаболь. Костылезация с тонной регулярок?
Test11 пишет:
Не могу найти конфиг, который бы разрешал теги input, по умолчанию он их удаляет...
Покинул форум
Сообщений всего: 114
Дата рег-ции: Дек. 2015
Помог: 3 раз(а)
Viper пишет:
Сложные структуры через bbcode = попаболь. Костылезация с тонной регулярок?
Я к тому что есть ли смысл позволять пользователям отправлять сложные html структуры(есть большое сомнение что преобладающее большинство этим пользоваться вероятнее всего не будет). К тому же есть альтернативные методы безопасной разметки, к примеру вики-разметка, если не ошибаюсь, не позволяет вставлять скрипты.
Viper
Отправлено: 19 Февраля, 2016 - 11:21:49
Активный участник
Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007 Откуда: Симферополь
Помог: 98 раз(а)
TuX560 пишет:
Я к тому что есть ли смысл позволять пользователям отправлять сложные html структуры(есть большое сомнение что преобладающее большинство этим пользоваться вероятнее всего не будет). К тому же есть альтернативные методы безопасной разметки, к примеру вики-разметка, если не ошибаюсь, не позволяет вставлять скрипты.
Зависит от случая.
вики-разметка ещё тот геморой. Такая же "удобная" как и markdown.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.