2016-04-30 2 views
0

Я надеюсь, что кто-то может дать совет или советы, прежде чем это закрывается, потому что меня предупреждают, что это субъективный вопрос.можно взломать, сохранив коды HTML, созданные текстовыми редакторами, такими как tinyMCE, QuillJS и т. Д.?

У меня есть собственная инфраструктура PHP + SQL, сделанная из Slim и Eloquent, и планируем интегрировать в нее форум, а чтобы сделать его более удобным для пользователя, я планирую добавлять бесплатные текстовые редакторы при публикации форума.

Очевидно, эти текстовые редакторы отправляют HTML-коды через POST, и я планирую их сохранить в базе данных MySQL. И поскольку его красноречивый, я вполне понимаю, что он уже обрабатывает подготовленное заявление, чтобы избежать инъекции. Но я не уверен, что если это достаточно безопасно, я просматривал phpBB, и до сегодняшнего дня у них нет текстового редактора (или он еще не разработан для версии 3.2), и я просматривал, что они обеспокоены безопасностью, и я больше нервничал, так как они там ветераны.

Можете ли вы вводить эти простые HTML-коды? Какие другие атаки могут использоваться против моей системы?

Спасибо!

+1

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

+1

@ Дагон Умм, не совсем. Даже если бы они это сделали, вам нужно * дезинформировать входную серверную сторону. Принятие и дезинфекция поставляемого пользователями HTML - это очень сложный бизнес. Многие веб-приложения не используют и используют такие вещи, как markdown. –

+1

он сказал, что г-н уже использовал подготовленные заявления .. поэтому его не в этот момент его проблема - ну, как я прочитал вопрос. –

ответ

1

До тех пор, пока вы escape все, прежде чем вставлять в SQL-запросы, база данных будет безопасной ... из простейшей формы SQL-инъекции.

Для защиты от инъекции JavaScript вам необходимо очистить разметку на стороне сервера перед вставкой в ​​базу данных, удалив <script> теги. Вы также можете удалить iframe, link и создать теги.

Вам также необходимо настроить фильтрацию содержимого на стороне клиента. Например, TinyMCE имеет invalid_elements option, где вы можете указать теги для удаления.

Чем больше функций поддерживает система, тем больше риск, очевидно. Например, хакер может загрузить файл с именем, содержащим выражение оболочки, например $(rm -rf /www/).png. Таким образом, сервер будет взломан, если кто-то на сервере случайно запустит eval на такое имя файла. Другой пример - загрузить сценарий, похожий на изображение.

Я думаю, нет смысла перечислять более возможные способы взлома системы. Ответ на ваш вопрос: да, система может быть взломана с помощью популярных веб-редакторов. Поэтому я бы рекомендовал свести к минимуму количество функций, доступных пользователю, и полностью дезинфицировать ввод пользователя, , особенно на стороне сервера.

+0

Большое спасибо, это даст мне импульс. –