Есть необходимость разрешить пользователям использовать некоторые HTML
самый лучший способ фильтрации strip_tags с двумя параметрами...
Но в таком случае у нас появляется одна неприятная уязвимость:
Может у кого-то есть красивое решение? кроме поиска регуляркой всевозможных запрещенных атрибутов и если нет, то насколько стабилен список этих атрибутов?
Поясню, когда-то давно ломал сайт(законно) задача была прописать iframe, хозяин сделал всевозможные фильтрации и был сильно удивлен когда я вместо <iframe> использовал <object data='УРЛ'>
- HTMLPurifier. В Yii уже встроен.
- *я не в Yii *HTMLPurifier - не есть красивое решение, регулярка будет красивее в моем случае.
- 1) Без разницы где. Это отдельная библиотека. Скачивается вручную или загружается через Composer. 2) ОК. Только не забудьте автозакрытие случайно незакрытых тегов и автопреобразование адресов в ссылки в эту регулярку добавить.
- глубоко не тестировал, но если кому нужно
Ему советуют оттестированную, проверенную временем, библиотеку, неломающую html. Он велосипедит кусок кала, который вероятно ломает html, не оттестирован, и похож на что-то из 2000 года, где еще никогда не слышали о код стайлах и правилах хорошего тона. И презентует ее, если типа кому-то нужно то вот - это мой кал! Вуаля!
Да, согласен, иногда программисту не хочется потратить 5 минут на изучение библиотеки, а проще написать под свою задачу за 10 минут 15 строк, а потом еще суммарно два часа разбираться почему оно не работает. Но надо четко отдавать себе отчет, когда ты в итоге сделал нечто, что в приличном обществе не показывают, и просто слиться, не демонстрируя свое творение.
Есть конечно нюанс. Здравомыслящий разработчик никогда не напишет такой дурнопахнущий код, поэтому это лишь попытка донести, что у автора поста что-то не так.
А вот откуда берутся такие? не нравится проходите мимо, конечно лучше потратить 10 минут на бессмысленный высер про чужой "кал".
Не каждый программист вместо 10 строчного кода каждый раз цепляет чужую библиотеку на 918файлов 2,5МБ объема
PS: мой код теги не ломает.
теги иногда "ломает" встроенный strip_tags если например не закрыты кавычки у атрибутов, то есть те которые итак поломаны.
Да и в общем то мне на это все равно, штатная форма не допускает подобного, а если кто захочет отправить запрос в обход формы, то не грех и поломать ему все что можно поломать.
PSS: и кстати следите за своим стаилом общения, а то возникло ощущение что вы форумом ошиблись, сапожники в другом месте.
Последний раз редактировалось Arnowt 2016.02.07, 15:36, всего редактировалось 1 раз.
Arnowt, проблема в том, что автор HTMLPurifier точно знает, что делает, код покрыт множеством тестов и его проверяют тысячи людей. В вашем же случае такого уровня уверенности нет.
Желание понятно. Но в вопросах безопасности надо либо знать на 100% как производится атака во всех её возможных модицикациях, либо полагаться на проверенное решение. Брать решение, которое не проверено или писать своё под какой-то один случай — прямая дорога к дыре.