У меня есть сайт, работающий на IIS 7.5, на котором размещается некоторый пользовательский контент. Недавно мне попался файл с двумя точками в имени файла. Назовем это foo..bar.jpg
. Когда я пытаюсь получить к нему доступ, я получаю ошибку 400, которая бесполезно просто говорит Bad Request
в виде открытого текста.
Поиск почти ничего не дал, просто этот вопрос с форумов IIS, где заявлено, что это предполагаемое поведение, предназначенное для предотвращения доступа к файлам вне веб-приложения через родительский каталог, ../
. Они предоставляют инструкции о том, как отключить эту проверку, которая предположительно откроет мой сайт для атак обхода пути.
Эта проверка чрезвычайно усердна и блокирует многие безобидные имена файлов, которые я хочу поддерживать в моем приложении. Я могу придумать несколько обходных путей, например принудительное переименование файлов или их обслуживание через .ashx
обработчик, ни один из которых не очень привлекателен.
Есть ли способ поддерживать URL-адреса, содержащие двойные точки, через StaticFileHandler
без использования эксплойта обхода пути?