Я перехожу из IIS в Apache и недавно обнаружил, что Apache по умолчанию обслуживает файлы с неизвестным расширением как ЧИСТЫЙ ТЕКСТ.
Это может быть проблемой, если пользователь использует определенные программы, которые создают резервные копии файлов .php как .php ~. Затем файл .php ~ становится полностью читаемым, просто перейдя к нему в браузере. Что еще хуже, эти .php ~ файлы часто считаются «скрытыми» в среде Linux от пользователя, поэтому некоторые могут даже не знать о их существовании. В связи с этим были созданы боты, которые рыщут по Интернету в поисках популярных резервных копий имен файлов и извлекают из них потенциально безопасную информацию.
Я уже знаю, как перестать обслуживать файлы .php ~ или любые конкретные расширения файлов. Я также знаю, что нельзя использовать никакие редакторы, которые сохраняли бы такие файлы резервных копий.
Мой вопрос в том, как я могу вообще остановить это поведение Apache по умолчанию, связанное с обслуживанием ЛЮБОГО типа файлов, отличных от MIME? Мне просто не нравится такое поведение, и я хочу его прекратить. Я не хочу, чтобы он обслуживал .aspx ~, .html ~, .bob, .carl, без расширения или чего-либо еще, что не является настоящим типом MIME.
Я знаю, что, вероятно, могу пойти и использовать директиву, чтобы сначала запретить доступ ко всем типам файлов. Затем добавьте те, которые я хочу подать, один за другим. Но мне интересно, есть ли более простой / быстрый способ.
Спасибо за любую помощь.
Apache HTTPd по умолчанию использует mime-тип application / octet-stream для неизвестных файлов. Поэтому вы должны (теоретически) иметь возможность установить действие с помощью mod_actions на нем следующим образом:
Action application/octet-stream /cgi-bin/unknown-mime-type.cgi
Если сценарий CGI, конечно, должен быть доступен и исполняться, или вы можете добавить перезапись для данного пути, чтобы обслуживать страницу 404. Я не уверен, что это разумно.