php + .htpasswd

webmaxx

Новичок
php + .htpasswd

Такая ситуация:
1. Есть папка, защищенная .htpasswd ( http://site/folder/ )
2. Есть страница сайта, запрашивающая некоторые данные из этой папки. Соответственно выскакивает окошко авторизации.

Вопрос:
Как можно сделать так, что бы папка как и прежде была защищена именно файлом .htpasswd ( т.е. при запросе браузером адреса http://site/folder/ выскакивало окно авторизации ), но в то же время при загрузке страницы нормально грузились данные из этой папки без запросов.
 

Gas

может по одной?
Никак

но фраза "при загрузке страницы нормально" в данном контексте очень интересная.

[update]
возможно я неправильно понял, то-есть при запросе существующей страницы она отдавалась, а при запросе к корню "папки" (обращении к IndexDirectory файлу) требовалась бы авторизация?
 

Alexandre

PHPПенсионер
Есть страница сайта, запрашивающая некоторые данные из этой папки. Соответственно выскакивает окошко авторизации.
а если сделать доступ к данным по полному пути???
.htpasswd - работает только для WEB
 

webmaxx

Новичок
По полному пути не пойдет.

Допустим из папки /fckeditor/ грузится собственно сам редактор.
Хотелось бы, что бы при запросе адреса http://site/fckeditor/ выдавалось окно авторизации, а при вызове какой нибудь страницы с редактором ( например http://site/add-comment.php ), все грузилось без всяких запросов.
 

iceman

говнокодер
webmaxx
нельзя

-~{}~ 07.07.09 07:40:

твои js, css, jpg, gif, png и т.д. тоже браузер запрашивает...
 

webmaxx

Новичок
Автор оригинала: iceman
webmaxx
нельзя
Ну почему же нельзя?
Удалось сделать, но только пока для FireFox и Safari. В Опере и Осле работать не хочет.

Суть в том, что я аяксом посылаю get-запрос такого вида: http://user:password@site/folder/
Т.е. получается как я и хотел, при прямом запросе папки выдается запрос авторизации, а при загрузке страницы авторизация проходит на заднем плане и все подгружается без всяких запросов авторизации. При условии, что такой запрос отправляется только при успешной авторизации админа, логин и пароль для http-авторизации никто увидеть не должен.

Минус в том, что в Осле, с какй-то там версии, не работают адреса такого вида и ничего не работает. В Опере тоже не работает, но так и не понял почему. Если прямо в строке браузера набрать http://user:password@site/folder/, то вроде все проходит нормально, а если через аякс, то нифига.

Есть мысль попробывать сделать через аякс + сокеты. Может что и выйдет.
 

Alexandre

PHPПенсионер
Суть в том, что я аяксом посылаю get-запрос такого вида: http://user:password@site/folder/
HTTPRequest компонента (так же как и msxml ) для Basic Autentification имеет специальные параметры в методе open
Код:
 // для msxml необходимо смотреть АПИ
void open(
  in AUTF8String method,
  in AUTF8String url,
  [optional] in boolean async,
  [optional] in AString user,
  [optional] in AString password
);
соответственно AJAX запрос должен быть на урл http://site/folder/
ксброузерность твою мать

-~{}~ 07.07.09 10:54:

Для Осла
Код:
JScript Syntax

oXMLHttpRequest.open(bstrMethod, bstrUrl, varAsync, bstrUser, bstrPassword);

Parameters

bstrMethod

    The HTTP method used to open the connection, such as GET, POST, PUT, or PROPFIND. For XMLHTTP, this parameter is not case-sensitive. The verbs TRACE and TRACK are not allowed when IXMLHTTPRequest is hosted in the browser.

bstrUrl

    The requested URL. This can be either an absolute URL, such as "http://Myserver/Mypath/Myfile.asp", or a relative URL, such as "../MyPath/MyFile.asp".

varAsync[optional]

    A Boolean indicator of whether the call is asynchronous. The default is True (the call returns immediately). If set to True, attach an onreadystatechange property callback so that you can tell when the send call has completed.

bstrUser[optional]

    The name of the user for authentication. If this parameter is Null ("") or missing and the site requires authentication, the component displays a logon window.

bstrPassword[optional]

    The password for authentication. This parameter is ignored if the user parameter is Null ("") or missing.

Example

The following JScript example creates an XMLHTTP object, and then uses the open method to get a copy of books.xml at the IIS Web server running locally. The code then selects the <book id="bk101"> element to display as output.
 

webmaxx

Новичок
Alexandre

Респект. Совсем забыл про такую вещь. Сделал элементарно через jQuery.ajax. Только Опера так и не хочет работать. Но это пофиг, нужны только Лиса и Осел.

iceman

Нужно для того, что бы никто не мог через редактор что нить загрузить на сервер.
Например, если кто то узнает адрес fckeditor-а, то может спокойно открыть форму загрузки файлов и, собственно, спокойно кидать на сервак файлы, без всяких авторизаций.
Понятно, что ничего катастрофического не будет, но все таки не приятно. Хотя если найдется очередная дырка в редакторе, то конечно хорошего ничего не будет.
 

Adelf

Administrator
Команда форума
Своей проблемы вы так и не решите. Логин и пароль известны станут сразу. Также как и путь к fck.
 

webmaxx

Новичок
Автор оригинала: Adelf
Своей проблемы вы так и не решите. Логин и пароль известны станут сразу. Также как и путь к fck.
Каким образом? Его можно будет увидеть только после авторизации админа ( которых только 3 человека ).
 

webmaxx

Новичок
PHP:
<script type="text/javascript">
    jQuery.ajax({ url: "/fckeditor/", type: "GET", username: "<?php echo $login; ?>", password: "<?php echo $password; ?>" });
</script>
Этот код показывается только в шаблоне админки и только если это нужно.
 

Фанат

oncle terrible
Команда форума
а простые-то люди как загружают редактор в таком случае?
 

dimagolov

Новичок
а админка не защищена по HTTP_AUTH? только авторизацией движка?
 

webmaxx

Новичок
*****
На этом сайте обычным людям он совершенно не нужен.

dimagolov
Да. Только своей авторизацией + капча.
 

nexen

Новичок
открываете в apache httpd.config ищите

<Directory />
Options Includes Indexes FollowSymLinks
AllowOverride All
Order deny,allow
Allow from all
Satisfy all
</Directory>

меняете атрибуты директивы Options на
Options -Includes -Indexes -FollowSymLinks

а так же создаете файл .htaccess и запрещаете доступ к файлу редактора или групе файлов, а себе разрешаете

<Files config.php>
deny from all
allow from ваш йп адрес
</Files>

это лишь самые скромные возможности .htaccess - обязательно почитайте об этом файле это очень мощный инструмент

http://ru.wikipedia.org/wiki/.htaccess
 
Сверху