X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Выборочная авторизация apache, Решение проблемы htaccess с авторизацией по ip и паролю
matveichex
matveichex
Topic Starter сообщение 24.3.2010, 12:55; Ответить: matveichex
Сообщение #1


Здравствуйте!
Коротко: необходимо сделать следующее: ограничить доступ к определенной директории сайта так, чтобы пользователи локальной сети (находятся в четко определенном диапазоне ip адресов) могли получать доступ к этой директории без ввода логина и пароля (т.е. доступ по ip), а пользователи ходящие на сайт с других ip должны были вводить логин и пароль.
На данный момент: доступ обеспечен с помощью файла htaccess и пускает лишь пользователей локальной сети.
Как в htaccess сделать по отдельности авторизацию по ip или логину с паролем - знаю, а как совместить подобным образом (пусть даже не в htaccess) - без понятия!
Уверен, что кто нибудь да сталкивался с подобной проблемой, однако поиск в инете к сожалению результатов не дал (не исключаю что не то искал). Заранее спасибо!

P.S. если информация поможет, то сайт крутится на корпоративном сервере, стабильно работает LAMP, ось Debian
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 28.3.2010, 18:44; Ответить: ZiTosS
Сообщение #2


matveich_ex,
Хех, сделал но конечно через такую опу. Допустим, мы хотим запрашивать авторизацию с IP не из сетки:
1) Создаём файл .htaccess в корне с таким содержимым
# запрещаем чтение файла .htpasswd
<Files .htpasswd>
   deny from all
</Files>

RewriteEngine On # включаем модуль mod_rewrite

RewriteCond %{REMOTE_ADDR} 192.168.*.* # если из сетки
RewriteRule ^(.+)$ $1 [L] # перенаправляем на что запросили, то и получили

RewriteCond %{REMOTE_ADDR} !192.168.*.* # если НЕ из сетки
RewriteCond %{SCRIPT_FILENAME} !dsafwqggnqwe.php$ # и если имя скрипта НЕ заканчивается на dsafwqggnqwe.php
RewriteRule ^(.+)$ dsafwqggnqwe.php?http=$1 [QSA,L] # перенаправляем на файл dsafwqggnqwe.php с http - тем что запросили, так же не забываем передать все остальные GET параметры с помощью флага "QSA"

# Ставим на файл dsafwqggnqwe.php авторизацию
<Files dsafwqggnqwe.php>
AuthType Basic
AuthName "Authorization"
AuthUserFile [полный путь с именем до файла .htpasswd]
require valid-user
</Files>

2) Создаём файл .htpasswd с помощью одноименной утилиты или ещё как. Затем помещаем его куда хотим, главное затем в .htaccess абсолютный путь до него правильно прописать

3) Создаём в корне файл с именем dsafwqggnqwe.php и содержимым
[php]<?php

if( isset($_GET['http']) && file_exists($_GET['http']) ) // если передан параметр http и такой файл или папка существуют
{
$file = $_GET['http']; // заносим в $file содержимое GET-параметра http
if( !is_file($file) ) // Если передан не файл, а папка
$file = realpath($file)."/index.php"; // строим путь до файла index.php в этой папке
include_once($file); // включаем переданный файл в скрипт
}
else
echo "Файл не существует"; // если GET-параметр не был передан или не является файлом или папкой

?>[/php]
4) Попробовать в работе.

P.s.: Проверял на сервере HC - Linux: передаётся строка с GET, поддерживаются отправления формы.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
matveichex
matveichex
Topic Starter сообщение 29.3.2010, 11:00; Ответить: matveichex
Сообщение #3


Огромное спасибо за помощь! Сделал все по рекомендациям, возникла проблема, цитирую из логов ошибок апача:
htaccess: RewriteCond: bad flag delimiters, referer: http://адрес сайта
Непосредственно при входе на сайт: Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 5.4.2010, 13:02; Ответить: ZiTosS
Сообщение #4


matveich_ex, Сейчас скину архивчиком мой рабочий вариант. Возможно у вас сервер не поддерживает какие-то флаги. Надо поразбираться.
Прикрепленные файлы
Прикрепленный файл  IP.ZIP ( 1,68 килобайт ) Кол-во скачиваний: 197
 
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 20.4.2010, 22:24; Ответить: ZiTosS
Сообщение #5


matveich_ex, ну так и не заработал? Просто так долго мучался с этим скриптом, что даже стало интересно, работает ли он в реалии на всех серверах, или только на моем...

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) обновить версию php apache
1 Snejebelka 1652 29.1.2019, 18:11
автор: Snejebelka
Открытая тема (нет новых ответов) Научить работать с WebDAV (на Apache) на PHP или JS
4 eugen35 2953 31.7.2014, 12:37
автор: -HTMLandPHP-
Открытая тема (нет новых ответов) Авторизация на HTML сайте
1 yzol 2840 3.6.2014, 8:33
автор: -Apay-
Открытая тема (нет новых ответов) Авторизация с помощью API
4 Danielee 1111 24.1.2013, 1:04
автор: isvetlichniy
Открытая тема (нет новых ответов) Авторизация VK
1 attractive 3303 3.11.2012, 22:51
автор: -html-performer-


 



RSS Текстовая версия Сейчас: 23.4.2024, 21:57
Дизайн