Подмена .htpasswd php-скриптом

Статус
В этой теме нельзя размещать новые ответы.

SeaGull

Junior Member
Подмена .htpasswd php-скриптом

Задача: при авторизации пользователя генерировать налету из БД файл формата .htpasswd и отдавать Апачу.
Т.е. в .htaccess прописать ссылку не на готовый .htpasswd, а на php-скрипт, который бы отдавал логины-пароли в нужном формате.

AuthUserFile ....../admin/authorization.phtml

При генерации скрипта обнаружил, что если файл состоит из "простого текста", то авторизация проходит нормально, а если тот же текст выдается командами РHP, то не срабатывает.
Т.е. если скрипт authorization.phtml содержит текст
seagull:1QU0AgiFMA5fg
то всё работает, а если вместо этого содержит
<?="seagull:1QU0AgiFMA5fg";?>
то авторизация не срабатывает.
При обращении через браузер скрипт в обоих случаях выдает одно и то же.

Не подскажете, в чем проблема ?
Нужно какие-то заголовки прописать ?
Или такой подход c подменой .htpasswd в принципе не жизнеспособен и его нужно генерить исключительно заранее ?
 

SeaGull

Junior Member
Спасибо.
Но, насколько я понял при беглом взгляде, там скрипт все-равно генерит физический файл на диске. Это не совсем то.

Параллельно сообразил, что прямое обращение из .htaccess к скрипту - это полная глупость, поскольку скрипт парсером не обрабатывается. Попробовал прописать
AuthUserFile /bin/php ....../admin/authorization.phtml
но Апач такую строку есть отказался. Буду копать дальше...
 

MuXaJIbI41981

Новичок
зачем все это .. не проще послать заголовки на запрос пароля и логина
 

SeaGull

Junior Member
Автор оригинала: MuXaJIbI41981
зачем все это .. не проще послать заголовки на запрос пароля и логина
Через WWW-Authenticate без сомнения проще и правильнее.
Но там дурацкая ситуация - в защищаемой директории не должно быть индексного файла :)
Поэтому ищется решение, держащееся на .htaccess
 

Фанат

oncle terrible
Команда форума
поскольку никаких других вариантов авторизации мы не знаем.

-~{}~ 19.05.09 13:11:

а кроме апача не бывает других веб-серверов

-~{}~ 19.05.09 13:12:

при чем же здесь индексный файл - загадка
 

SeaGull

Junior Member
Да, я не знаком с другими способами авторизации, только средствами сервера или с помощью заголовков.

Да, кроме Апача у хостеров с которыми я работаю других веб-серверов не бывает.

Да, индексный файл - не при чем. Но защищаемая директория не должна содержать в принципе никаких скриптов (это свалка файлов для скачивания через http), посему авторизация через WWW-Authenticate не подходит.

Кроме того, ищется не альтернативный способ обхода этих ограничений, а именно выясняется возможность работы через .htaccess и подмены статичного файла .htpasswd налету php-скриптом.
 

John1978

Новичок
А зачем тебе формировать файл при каждой авторизации? Формировать надо при добавлении/удалении/редактировании юзеров.
 

SeaGull

Junior Member
Автор оригинала: John1978
А зачем тебе формировать файл при каждой авторизации? Формировать надо при добавлении/удалении/редактировании юзеров.
Иногда юзеры попадают в базу или получают статус авторизации в обход стандартных интерфейсов. Например, прямыми запросами к БД. Иногда так проще.
После этого скрипт генерации файла с паролями может остаться не запущенным.
 

SeaGull

Junior Member
Автор оригинала: John1978
тогда по крону запускай его
Спасибо за совет :)
Я просто хочу повториться, что ищется именно способ работы связки .htaccess и php-скрипта без предварительной генерации файла с паролями.

Автор оригинала: *****
решить не реальную проблему, а высосанную из пальца с искусственными ограничениями.
Да, именно так. И мне кажется, что это повод для хамства.
 

Фанат

oncle terrible
Команда форума
Пардон, я сразу не понял анекдотичности вопроса :)
Исправляюсь!

-~{}~ 19.05.09 14:16:

Сёдня зачту на юбилее. С выражением!
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху