Любые потенциальные риски безопасности с включением relaxedUrlToFileSystemMapping, чтобы URL-адреса имели часть, заканчивающуюся на "."?
У нас возникает проблема, когда наше приложение терпит неудачу, когда у URL-адреса есть какая-либо часть, заканчивающаяся на. в этом'; мы не можем избежать этого из-за функциональных требований. Предлагаемое решение состоит в том, чтобы включить relaxedUrlToFileSystemMapping в файле web.config. Мы хотели бы знать, есть ли какие-либо потенциальные угрозы безопасности при таком подходе.
Формат неудачного URL: http://server.com/path1/krishnakk./path2
Он возвращает ошибку 404.
Ответы
Ответ 1
Несмотря на то, что этот вопрос составляет семь месяцев, вот ответ на тот случай, если кто-то еще столкнется с подобной ситуацией.
Что касается защитной части вопроса, по умолчанию relaxedUrlToFileSystemMapping
установлено значение false, а ASP.NET предполагает, что часть пути URL-адреса является допустимым файлом NTFS файла. Если вы отключите это, установив relaxedUrlToFileSystemMapping
в значение true, вы потенциально откроете свой сайт для атаки, потому что отключите защиту по умолчанию, предоставляемую ASP.NET.
Если вам абсолютно необходимо установить relaxedUrlToFileSystemMapping
в true, вы также должны быть уверены, что вы проверяете все URL-адреса в рамках ограничений ваших требований приложения.
Ответ 2
Немного опоздал на вечеринку, но я подумал, что добавлю, что сработало для меня.
Я только что столкнулся с этим сегодня, но, к счастью, смог обойти это. Решением было передать значение, содержащее точку (точку), как часть строки запроса, а не URL-адрес. Вы теряете элегантность наличия чистого URI без строки запроса, но это работает без снижения безопасности или изменения каких-либо настроек.
Например. http://localhost/Home/hi.how:areyou завершится ошибкой, поскольку содержит два недопустимых символа в составе URI, точку и двоеточие. Однако http://localhost/Home/id=hi.how:areyou будет отлично работать.
Поговорим о Скотте Хансельмане, который, как всегда, будет вести блог о практически всех безумных сценариях и проблемах, с которыми можно столкнуться при разработке .NET.