Запретить выполнение кода IIS7 с помощью web.config - PullRequest
0 голосов
/ 10 апреля 2011

Я хочу, чтобы пользователи запускали определенные расширения в папке загрузки (/ assets / public /) веб-приложения. Пользователи могут загружать файлы изображений, которые также изменяются во время загрузки. Но для большей безопасности я хочу запретить такие скрипты, как aspx, asp, php ...

У меня есть текущий код, который блокирует каждое расширение, но я хочу разрешить такие расширения, как .jpg:

<location path="assets/public">
    <system.web>
        <authorization>
            <deny users="*"/>
        </authorization>
    </system.web>
</location>
<system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>

Также пользователи не имеют доступа к FTP, и приложение предварительно скомпилировано.

Ответы [ 2 ]

0 голосов
/ 12 апреля 2011

Вот как я решил это с global.asax и маршрутизацией.Просто добавили эти правила:

routes.MapPageRoute("any", "assets/public/{file}.{ext}", "~/e/404.aspx");
routes.MapPageRoute("any-sub","assets/public/{sub}/{file}.{ext}","~/e/404.aspx");

routes.Ignore("{any}.jpg");
routes.Ignore("{any}.png");
routes.Ignore("{any}.gif");
routes.Ignore("{any}.pdf");
0 голосов
/ 10 апреля 2011

Попробуйте

<httpModules>
    <clear />
</httpModules>

или

<location path="." inheritInChildApplications="false">
</location>
...