Мне нужно обеспечить /app
каталог и его файлы от зондирования. Я пытался с помощью <hiddenSegment>
в web.config
файл, и он работает хорошо … за исключением того, что, когда я добавляю пользовательскую страницу ошибок IIS, она не работает.
.
├── app
│ ├── template
│ │ ├── footer.php
│ │ ├── header.php
│ │ └── index.php
│ ├── error-handler.php
│ ├── footer.php
│ └── header.php
├── template
│ ├── css
│ └── js
└── web.config
Целиком /app
каталог должен быть скрыт; его содержимое должно быть защищено от исследования.
web.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<httpErrors errorMode="Custom">
<remove statusCode="404" />
<error statusCode="404" prefixLanguageFilePath="" path="/app/error-handler.php" responseMode="ExecuteURL" />
<remove statusCode="403" />
<error statusCode="403" prefixLanguageFilePath="" path="/app/error-handler.php" responseMode="ExecuteURL" />
</httpErrors>
<security>
<requestFiltering>
<hiddenSegments>
<add segment="app" />
</hiddenSegments>
</requestFiltering>
</security>
</system.webServer>
</configuration>
Я действительно изо всех сил пытался скрыть /app
каталог и заставить IIS обслуживать обработчик ошибок в /app/error-handler.php
, Буду признателен за любую оказанную помощь.
как насчет создания еще одной папки под папкой приложения (myFolder) и перемещения всего, кроме error_handler.php, в эту новую папку (myFolder) и соответственно измените тег Hiddensegments. Это может потребовать внесения некоторых изменений в ваш код.
Или просто переместите error-handler.php на один уровень вверх и соответственно измените тег CustomErrors. Не уверен, что это что-нибудь сломает.
Других решений пока нет …