Меры безопасности для ввода текстовой области в форме HTML, обработанной PHP, в то время как его содержимое должно быть HTML (с div p и другими тегами)
У меня есть проблема. Я думал о безопасности формы. У меня есть поле, которое является textarea. По умолчанию он скрыт, и вместо него появляется текстовый редактор (CKEditor, если он играет роль). Что я хочу сделать, это:
- разрешать iframes только с YouTube (так как, возможно, парни публикуют учебник с видео), но я не хочу iframes из других, вероятно, вредных источников.
- Из-за этого я не позволю изображения (как я читал, есть дыры в безопасности для этих элементов).
- Мое последнее и самое большое беспокойство по поводу безопасности - как предотвратить SQL-инъекцию, так как это поле с богатым содержимым.
Домашнее задание:
- Я думал о создании переменной (например, $fake_input = $actual_input). После этого, чтобы подсчитать время, когда iframes и ссылки на YouTube отображаются в $ actual_input с preg_match_all. Затем уберите $ fake_input из каждого iframe и посчитайте ссылки на YouTube. Таким образом, после удаления следующее уравнение должно быть действительным, в противном случае существует iframe из другого источника. $fake_youtube_links = $actual_youtube_links - $actual_iframes Итак, допустим, у нас есть ссылка на YouTube из iframe, 1 вредоносный iframe и обычный (Youtube) iframe, это должно быть 1 = 1 - 2, что не соответствует действительности, поэтому ошибка будет объявиться.
- Я думал очистка от фотографий, чтобы использовать preg_replace.
- Для последней части, это стратегия, о которой я думал. Сделайте $ fake_input как в шаге 1. Удалите все примеры кода (которые существуют только для иллюстрации). А затем после очистки образцов проверить оставшуюся часть ввода для MySQL зарезервированных слов / фраз, таких как DELETE, ALTER, TRUNCATE и т. Д.
Любая помощь будет оценена!
1 ответ
Почему не простой htmlspecialcharacter()? Поместите это перед сохранением ваших данных в базе данных, и у вас не будет проблем.