Назад | Перейти на главную страницу

Как включить два последовательных периода в URL-адресе, не создавая уязвимости безопасности

У меня есть сайт, работающий на IIS 7.5, на котором размещается некоторый пользовательский контент. Недавно мне попался файл с двумя точками в имени файла. Назовем это foo..bar.jpg. Когда я пытаюсь получить к нему доступ, я получаю ошибку 400, которая бесполезно просто говорит Bad Request в виде открытого текста.

Поиск почти ничего не дал, просто этот вопрос с форумов IIS, где заявлено, что это предполагаемое поведение, предназначенное для предотвращения доступа к файлам вне веб-приложения через родительский каталог, ../. Они предоставляют инструкции о том, как отключить эту проверку, которая предположительно откроет мой сайт для атак обхода пути.

Эта проверка чрезвычайно усердна и блокирует многие безобидные имена файлов, которые я хочу поддерживать в моем приложении. Я могу придумать несколько обходных путей, например принудительное переименование файлов или их обслуживание через .ashx обработчик, ни один из которых не очень привлекателен.

Есть ли способ поддерживать URL-адреса, содержащие двойные точки, через StaticFileHandler без использования эксплойта обхода пути?