[.htaccess] запретить выполнять скрипты в папке из другой папки

Тема в разделе "Как сделать...", создана пользователем dandandan, 9 мар 2012.

  1. dandandan

    dandandan

    Регистр.:
    7 авг 2008
    Сообщения:
    996
    Симпатии:
    268
    Есть код для .htaccess сейчас он размещен в кореньСайта/demka/.htaccess Он запрещает выполнение всех скриптов в папке demka
    PHP:
    RemoveHandler .phtml .php .php3 .php4 .php5 .php6 .phps .cgi .exe .pl .asp .aspx .shtml .shtm .fcgi .fpl .jsp .wml
    AddType application
    /x-httpd-php-source .phtml .php .php3 .php4 .php5 .php6 .phps .cgi .exe .pl .asp .aspx .shtml .shtm .fcgi .fpl .jsp .wml
    Стоит задача запретить выполнение скриптов в папке demka, но из родительской папки. Как это сделать?
    кореньСайта/.htaccess

    p.s. Если забыл еще какой-нибудь выполняемый формат файла - подправьте пожалуйста.
     
  2. stealthdebuger

    stealthdebuger Механик

    Administrator
    Регистр.:
    25 авг 2008
    Сообщения:
    634
    Симпатии:
    1.422
    Смотрите в сторону <Files>
    Код:
    <Files ~ "demka\*">
    #чего-то указываем
    </Files>
     
  3. dandandan

    dandandan

    Регистр.:
    7 авг 2008
    Сообщения:
    996
    Симпатии:
    268
    Код:
    <Files ~ "demka\*">
    RemoveHandler .phtml .php .php3 .php4 .php5 .php6 .phps .cgi .exe .pl .asp .aspx .shtml .shtm .fcgi .fpl .jsp .wml
    AddType application/x-httpd-php-source .phtml .php .php3 .php4 .php5 .php6 .phps .cgi .exe .pl .asp .aspx .shtml .shtm .fcgi .fpl .jsp .wml
    </Files>
    
    php код все равно исполняется.
     
  4. uNknownMark

    uNknownMark

    Регистр.:
    22 сен 2007
    Сообщения:
    393
    Симпатии:
    169
  5. stealthdebuger

    stealthdebuger Механик

    Administrator
    Регистр.:
    25 авг 2008
    Сообщения:
    634
    Симпатии:
    1.422
    Зависит от настроек... Но да, вполне согласен, можно использовать и <Directory> и <Location> и даже <LocationMatch>. Хотя, лучше все же это указывать в httpd.conf а не в .htaccess, если такая возможность существует.
    Ну и не стоит забывать, что кроме выполнения php необходимо запретить и обработку .htaccess в указанной папке.

    P.S. Есть одна известная многим CMS, разрабы которой моск сломали как ее защитить. В последней версии так старались обезопаситься, что это сказалось на стабильности работы всей системы. Но, к сожалению, в силу их ограниченных умственных способностей подобное решение им в голову не пришло.
     
  6. dandandan

    dandandan

    Регистр.:
    7 авг 2008
    Сообщения:
    996
    Симпатии:
    268
    А что главнее будет? htaccess в корне с правилами для папки или htaccess в папке? Я так понимаю из фразы, что главнее будет в папке.
     
  7. stealthdebuger

    stealthdebuger Механик

    Administrator
    Регистр.:
    25 авг 2008
    Сообщения:
    634
    Симпатии:
    1.422
    Конечно в папке, если вы не запретили обработку в корне.
     
  8. DrakonHaSh

    DrakonHaSh

    Регистр.:
    29 июн 2010
    Сообщения:
    358
    Симпатии:
    122
    files, по моему, обрабатывает только имена файлов, без пути к файлу.
     
  9. pitkina

    pitkina

    Регистр.:
    1 апр 2007
    Сообщения:
    253
    Симпатии:
    176
    Код:
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} demka/.+\.(php\d?|cgi|pl|phtml)\.? [NC]
    RewriteRule .* - [F]
     
    dandandan нравится это.
  10. dandandan

    dandandan

    Регистр.:
    7 авг 2008
    Сообщения:
    996
    Симпатии:
    268
    Location и LocationMatch выдают Internal Server Error. Делал по аналогии с <Files>
    По поводу кода
    Все отлично заработало. А можно ли этот код запретить (перекрыть эти правила), если что-нибудь прописать прописать в htaccess в папке demka ? И если можно это сделать, то как запретить перекрыть эти правила?