Защитите PHP на IIS 8.5

Netcat сделает это, если я пойму Вас правильно.

Мне нравится использовать версию netcat отсюда, поскольку этому не связали проблемы безопасности с-e опцией.

Теперь создайте текстовый файл, содержащий что-то как:

echo HTTP/1.0 200 OK



hello


hello world

send something:

При выполнении следования командной строки где page.txt является названием текстового файла выше, netcat будет действовать как один веб-сервер строки.

for /l %a in (1,0,2) do type page.txt | nc -w 1 -l -p 80 | findstr "postText"

Соединение с http://localhost покажет веб-страницу выше. Ввод чего-то "отправляет, что-то" поле и нажатие отправляет, покажет значение, отправленное на командной строке, куда Вы выполнили netcat. "-w 1" (разъединение после одной секунды) является чем-то вроде выдумки, чтобы заставить netcat вести себя как веб-сервер, но это работает, все быть этим с одной второй задержкой.

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

2
задан 18 October 2015 в 03:00
1 ответ

+1 для @ahmels сказал свой ответ. Но вы можете легко создать несколько приложений FastCGI в IIS с разными файлами php.ini с помощью Appcmd. Но только один обработчик / php.ini на пул приложений, см .:

Настройте два приложения FastCGI:

Appcmd.exe set config /section:system.webServer/fastCGI
/+"[fullPath='c:\php5\php-cgi.exe', arguments='-c c:\php5\php.site1.ini'], 
maxInstances='0', idleTimeout='300', activityTimeout='70', 
requestTimeout='90', instanceMaxRequests='9999', 
protocol='NamedPipe', flushNamedPipe='False']" /commit:apphost

Appcmd.exe set config /section:system.webServer/fastCGI
/+"[fullPath='c:\php5\php-cgi.exe', arguments='-c c:\php5\php.site2.ini', 
maxInstances='0', idleTimeout='300', activityTimeout='70', 
requestTimeout='90', instanceMaxRequests='9999', 
protocol='NamedPipe', flushNamedPipe='False']" /commit:apphost

Затем каждый веб-сайт может иметь свой собственный обработчик для .php, указывающий на один из файлов php.ini:

AppCmd.exe set config "site1.com" /section:system.webServer/handlers 
  "-+[name=`'PHP`',
    path=`'*.php`',
    verb=`'*`',
    modules=`'FastCgiModule`',
    scriptProcessor=`'c:\php5\php-cgi.exe|-c c:\php5\php.site1.ini`',
    resourceType=`'File`',
    allowPathInfo=`'true`',
    requireAccess=`'Script`']"

AppCmd.exe set config "site2.com" /section:system.webServer/handlers 
  "-+[name=`'PHP`',
    path=`'*.php`',
    verb=`'*`',
    modules=`'FastCgiModule`',
    scriptProcessor=`'c:\php5\php-cgi.exe|-c c:\php5\php.site2.ini`',
    resourceType=`'File`',
    allowPathInfo=`'true`',
    requireAccess=`'Script`']"

Если вам не нравится командная строка, вы, конечно, можете щелкнуть мышью через диспетчер IIS :) Кстати, при условии правильной настройки идентификаторов пула приложений и разрешений файлов NTFS, я считаю, что нет необходимости в open_basedir.

Редактировать : Две ссылки: https://www.saotn.org/php-wincache-on-iis/ и https: //www.saotn.

0
ответ дан 3 December 2019 в 15:09

Теги

Похожие вопросы