Один файл журнала не является проблемой. Просто иметь файл, и будь то бинарный файл с вирусом в нем, совсем не опасно, если он не выполняется! То же самое относится и к файлам журналов: пока его содержимое не вызывает какой-либо код и не использует его каким-либо образом, это не проблема.
Как уже упоминалось @ahmad, это становится проблемой, если вы используете что-то вроде eval
для отображения файла журнала, потому что это может очень хорошо выполнить код, а знак доллара может позволить злоумышленнику сделать гораздо больше, чем только межсайтовый скриптинг. .
Но fopen
обязательно лучше? Нет! Потому что примеры из прошлого это наглядно показали. Кто-то может подумать, что cat
- это безопасный способ отображения текста на консоли, но даже это оказалось неправильно , и если даже самый простой инструмент для печати какого-либо текста сломан, вам не следует доверять во что угодно, верно?
В большинстве случаев не только ваше программное обеспечение делает что-то опасное. Часто это комбинация с другим программным обеспечением, которое может быть вне вашего контроля. Предположим, например, что вы не можете проверять каждую строку кода в ваших новейших обновлениях системы на наличие потенциальных побочных эффектов с вашим программным обеспечением.
Или допустим, что у вас нет собственного сервера, но вы являетесь клиентом поставщика веб-услуг, который также заботится о конфигурации системы. Предположим также, что этот поставщик услуг заботится о безопасности и имеет какое-то обнаружение вторжений, например, fail2ban. Все это может работать очень хорошо, пока вы не представите свою программу в среде поставщиков услуг (наоборот) и, возможно, позволит злоумышленнику взломать fail2ban с помощью чего-то очень недружественного, чтобы занять систему как часть атаки отказа в обслуживании (просто догадка здесь, но суть ясна, я надеюсь).