IIS6: запретить определенные шаблоны URL
Наш устаревший веб-сайт ASP.NET 2.0, работающий в IIS6 на Windows 2003 Server, принимает множество загруженных пользователем и загружаемых пользователем файлов. Не содержание страницы; файлы активов, такие как PDF и PNG в основном. Однако, конечно, желательно не позволять непослушным баггерам загружать файлы ASPX и внезапно иметь возможность выполнять код на нашем сервере.
Итак... вы могли бы подумать, что мы могли бы просто установить "Разрешения на выполнение: нет" в соответствующей папке, в которую загружаются пользовательские файлы, и на этом все. Увы.
Загруженные пользователем файлы попадают в папки с именами, подобными этим шаблонам: (nnnn, kkkk и llll представляют собой строки цифр различной длины)
/sites/nnnn/files/ftp
/sites/nnnn/files/orders/kkkk/llll
/sites/nnnn/files/proofs
/sites/nnnn/files/webFiles
НО... есть также CSS-файлы, которые хранятся в таких папках:
/sites/nnnn/files/skins/kkkk/*.css
А CSS-файлы фактически интерпретируются как ASPX-код, поэтому в строке запроса можно передать замены цветовой палитры, например:
/sites/2132/skins/83/layout.css?palette=cc33dd,aa22bb,1155ff
Итак, "Выполнить разрешения: нет" - это "нет-нет" на уровне /sites. И я действительно не хотел бы делать это в /sites/nnnn/files, по отдельности за несколько тысяч nnnn.
Итак, мне сказали, что URLScan 3.1 - это билет, но после часа или двух, когда я смотрю на документацию, я запутался больше, чем когда-либо.
Есть идеи?