Я ознакомился с SQL-инъекцией, XSS и другими проблемами безопасности и пытаюсь выяснить, что использовать для защиты сайта компании.
Мы собираемся развернуть простую форму «Обратная связь с пользователем» с текстовой областью, чтобы пользователи могли рассказать нам, как улучшить сайт, чтобы улучшить их пользовательский опыт.
Когда пользователь нажимает «отправить» в форме, мы читаем комментарии текстовой области от пользователя, а затем программно создаем имя файла в подпапке этого пользователя и сохраняем его комментарии в файл. Затем мы добавляем имя файла и путь к записи базы данных этого пользователя.
Команда не беспокоится о проблемах безопасности здесь, но я. Они думают: «Мы создаем имя файла, оно равно 0% на основе любого пользовательского ввода, и, поскольку мы пишем это имя« UserX comments »и путь к базе данных без прямого влияния пользователя - риска нет».
Меня не беспокоит активность базы данных - поскольку они правы, пользователь не играет роли в том, ЧТО мы записываем в их записи базы данных, поскольку мы просто создаем собственное имя файла и сохраняем его в своей записи в БД.
Меня беспокоит текстовый файл!
Поэтому я обращаюсь к нашей небольшой команде с просьбой переписать код, чтобы использовать безопасность для чтения, а затем записать комментарии пользователя в текстовой области в текстовый файл.
Я обеспокоен тем, что - поскольку мы планируем действительно ПРОЧИТАТЬ отзывы наших пользователей и открыть эти текстовые файлы, чтобы прочитать их позже - в текстовой области могут быть плохие вещи, которые (если мы не очистим их) могут как-то навредить нам.
Я настаиваю на том, что мы используем strip_tags (), но мне нужно проинформироваться о том, как мы очищаем ввод textarea - я думаю, что strip_tags () - это то, что нужно, но я на 100% нов для дезинфекции ввода пользователя. Я посмотрел на htmlspecialchars (), но он просто конвертирует некоторые символы, такие как '&' в &
и пр.
Существуют ли другие способы обезвреживания / обеспечения безопасности любого текста, который пользователь вводит в текстовую область, прежде чем мы записываем его в файл на нашем веб-сервере?