Есть ли способ запретить браузеру запрашивать файл непосредственно из IIS, в то же время разрешая запрашивать его в теге <script>? - PullRequest
0 голосов
/ 14 февраля 2020

Я в чем-то сомневаюсь, потому что теги <script> просто выполняют обычный HTTP-запрос к файлу сценария, верно? Или на самом деле есть способ сделать это? У меня есть несколько сценариев ASPX, которые я хочу загрузить в теги <script> такими, какие они есть сейчас:

<script runat="server" language="VB" src="../AdditionalField/AdditionalFieldReport.aspx"></script>

Но проблема в том, что если кто-то случайно введет URL-адрес сценария в свой браузер, они могут увидеть исходный код скрипта! Если это невозможно, как я ожидал, как я могу защитить эти сценарии, не нарушая ничего? Сценарии имеют все виды странностей, когда переменные объявляются на страницах и упоминаются во включенных сценариях, и наоборот. Так что это не просто вопрос их инкапсуляции в элементы управления ASCX или классы / модули VB. Или есть какой-то способ на самом деле запретить прямой доступ к этим скриптам из браузера, в то же время позволяя загружать их в тег <script>?

1 Ответ

0 голосов
/ 17 февраля 2020

Правило перезаписи URL-адреса можно использовать для предотвращения прямого доступа пользователя к сценарию aspx.

 <rule name="Block browser" stopProcessing="true">
                    <match url="AdditionalField/AdditionalFieldReport.aspx$" />
                    <conditions>
                        <add input="{HTTP_REFERER}" pattern="^$" />
                    </conditions>
                    <action type="CustomResponse" statusCode="401" subStatusCode="0" statusReason="Direct access denied" statusDescription="Not allowed" />
                </rule>

Поскольку HTTP_REFERRER может быть подделан на стороне клиента. Это правило можно использовать только для предотвращения прямого доступа. Вам также необходимо изменить и добавить больше ограничений к этому правилу. В этом случае также могут помочь ограничение / фильтр IIS IP.

Вам может потребоваться некоторая уникальная идентификация для фильтра запроса, чтобы предотвратить ложный запрос.

...