Russian Apache Switch to English
Switch to Russian koi8-r
windows=1251
cp-866
iso8859-5
Russian Apache Как это работает Рекоммендации Где взять Как установить Как настроить Статус и поддержка
Краткий обзор FAQ Список рассылки Благодарности Поиск по серверу Powered by Russian Apache
Russian Apache mailing list archive (apache-rus@lists.lexa.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [apache-talk] CGI for users?



On Wed, Jan 26, 2000 at 04:41:30PM +0300, Serge Shikov wrote:

> Пусть есть база данных, открытая для публичного доступа. Пускают туда
> при указании userid и пароля, которые где-то в скрипте (или в файле с
> данными) хранятся. И я лично не против, чтобы юзера лазали в базу при
> помощи моего скрипта, но не хочу, чтобы они туда лазали сами, через
> какой-то другой API. Ну и чем это пароль и имя юзера не конфиденциальная
> информация? Скажешь - пароль куда-нибуь в конфиг Апача засунуть? А чем
> это будет отличаться от исходника скрипта? Мораль - на некоторые файлы
> давать r/o все-таки не стоит.

  Покритикуйте-ка решение проблемы с "секретными словами" (под такими словами
я понимаю пароли на базы и прочие важные строчки..)

  Используем базу данных BerkeleyDB ("SecretDB"), владельцем которой является 
пользователь 'secretdb'. Права на запись и чтение базы имеет ТОЛЬКО 
пользователь secretdb. 

 Специальная setuid-утилита (owned by secretdb) позволяет добавлять/удалять и
изменять пары NAME=VALUE (например, DBPassword=simplepass). Однако утилита
выполняет прозрачное для пользователя преобразование 'NAME': реально в базе 
хранятся значения USERNAME:NAME=VALUE, где USERNAME - имя пользователя, 
вызвавшего утилиту. Таким образом каждый пользователь получает свое 
собственное пространство (недоступное остальным).

 Web-сервер инициализирует php3 engine во время старта - еще имея 
root-привилегии, так что php3 engine может открыть SecretDB на чтение 
и сохранить файловый дескриптор для дальнейшего использования. 

  Добавляем простую функцию в php3: getsecretword(name) 

  Она возвращает VALUE для заданного USERNAME:NAME. В качестве USERNAME 
используется имя владельца скрипта. Поэтому скрипт может читать только те 
значения, доступ к которым есть у его владельца.

  Таким образом, если ранее использовалось Ora_Login("dbusername", "password"), 
в данной схеме рекомендуется использовать следующую конструкцию:

    Ora_Login("dbusername", getsecretword("DBPassword")). 
  
  php3-исходники более не содержат "секретных слов"..

  Если кто-то видит в этой схеме изъяны - пишите.

V.
=============================================================================
=               Apache-Talk@xxxxxxxxxxxxx mailing list                      =
Mail "unsubscribe apache-talk" to majordomo@xxxxxxxxxxxxx if you want to quit.
=       Archive avaliable at http://www.lexa.ru/apache-talk                 =






Спонсоры сайта:

[ Russian Apache ] [ Как это работает ] [ Рекомендации ] [ Где взять ] [ Как установить ] [ Как настроить ] [ Статус и поддержка ] [ Краткий обзор ] [ FAQ ] [ Список рассылки ] [ Благодарности ] [ Поиск по серверу ] [ Powered by Russian Apache ] [ Apache-talk archive ]

"Russian Apache" includes software developed by the Apache Group for use in the Apache HTTP server project (http://www.apache.org/) See Apache LICENSE.
Copyright (C) 1995-2001 The Apache Group. All rights reserved.
Copyright (C) 1996 Dm. Kryukov; Copyright (C) 1997-2009 Alex Tutubalin. Design (C) 1998 Max Smolev.