[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблема с Deny from all и доступом к файлам.
guest
Здравствуйте.
Как быть?
Хочу закрыть директорию с js-скриптами. Закрываю. В htaccess прописываю директиву deny from all. Директория не доступна. Все хорошо.

Далее. В корне сайта есть htaccess. В нем есть следующее:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php?url=$1 [L,QSA]


И url парсится в index'е. Но при использовании такого варианта необходимо указывать пути к файлам (css и js) начиная со слеша, иначе не работает. Но! при таком варианте не грузятся скрипты из директории с deny from all.
Guest
Цитата (guest @ 4.08.2013 - 21:01)
Но! при таком варианте не грузятся скрипты из директории с deny from all.

А почему они должны грузиться, если вы доступ перекрыли?
guest
Оно и понятно. Если со слеша пути начинаются то грузится через http. Как сделать, чтобы это было не так при указанной схеме?
guest
up
bestxp
может тебе посмотреть в сторону hotlink protection, правда делают в основном для картинок, но и для скриптов должно поидее подойти
twin
А какая цель вообще защищать javascript?

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
guest
Да, забыл дополнить. Ошибся, не js-скриптов, конечно а папку с php-скриптами, не каждый из которых инклюдится (т.е. константами не обойтись).
gost
Добавил
order deny,allow
deny from all
allow from 127.0.0.1

На локальном хосте заработало. На хостинге не проверял.
Это подойдет?
twin
guest
Цитата
необходимо указывать пути к файлам (css и js) начиная со слеша, иначе не работает. Но! при таком варианте не грузятся скрипты из директории с deny from all.
Так если это php, а не JS, то наверное проблема в парсере url?

Очень невнятно задан вопрос.

Цитата
На локальном хосте заработало. На хостинге не проверял.
Это подойдет?
Конечно нет.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
guest
Упрощу ситуацию и перефразирую.

Имеется файл index.php, с каким-то стилизованным содержимым. В теге head подключены стили и js. Пути начинаются с имени папки. Например "folder/folder/file.css". Навигация по будущему сайту осуществляется с помощью "роутинга". Т.е. все запросы
перенаправляются на index.php, там парсится url и происходит нужное действие. Перенаправление осуществляется с помощью htaccess. Его содержимое:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php?url=$1 [L,QSA]


Первая проблема заключается в том, что после того, как отрабатывают эти директивы файлы стилей и js не подключаются. Необходимо править пути. С того, что было на "/folder/folder/file.css". Т.е. ставить впереди слеш. Но после подстановки этого слеша возникает следующий конфликт. Эти файлы не подключаются после того как доступ к родительской папке перекрывается с помощью deny from all htaccess'а.

Пока писал понял, что сам себя запутал. Мне это нужно было для директории с php. А при инклюде php всегда используется путь от корневой директории сервера, т.е. доступ осуществляется не через http и все работает (при помещении туда htaccess с deny from all).

Тем не менее, просто из любопытства. Есть ли выход из описанной выше ситуации. Если бы мне было нужно запретит доступ к директории с js?
twin
Если вы запрещаете доступ к директории, то значит запрещаете. Как браузер увидит скрипты? Пути тут совершенно непричем.

Вот это:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
означает, что запрос не будет перенаправлен на индекс, если на сервере имеется физически такая директория либо файл. Другими словами, если запрос такой:
http://site.ru/js/script.js
то запрос пойдет на файл js/script.js (если такой действительно есть), а не на index.php

Директива
deny from all
зпрещает доступ к файлам директории по HTTP протоколу. Соотетственно ничего браузер не увидит, какие бы вы пути не ставили.

Вот это
allow from 127.0.0.1

значит "кроме хоста 127.0.0.1", тоесть запрещено всем, кроме локального хоста.

Так я не услышал ответа, какая цель защитить папку со скриптами с помощью .htaccess?

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
guest
Цитата
Ошибся, не js-скриптов, конечно а папку с php-скриптами

Цитата
Пока писал понял, что сам себя запутал. Мне это нужно было для директории с php.

Цитата
Тем не менее, просто из любопытства. Есть ли выход из описанной выше ситуации. Если бы мне было нужно запретит доступ к директории с js?

Вроде бы написал...
twin
Нет, такого "выхода" нет. Все эти hotlink protection - детский сад. Все, что отдается в браузер, защитить никак нельзя. Даже обфускация дает очень микроскопическую "защиту".

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
bestxp
скорее хотлинк это защита от лишнего трафика и мусорных запросов
так как я думал это была изначальной целью, а раз цель другая то согласен, ничем не поможешь
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.