Аутентификация Apache с использованием ключа [закрыто]

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

Похоже, что методы аутентификации Apache требуют ввода имени пользователя и пароля или чего-то подобного. Все, что я действительно хочу, - это чтобы кому-то было временно разрешено видеть запрашиваемый контент при вводе соответствующего ключа на домашней странице. Я не совсем уверен, как это сделать, поэтому приветствуется любая помощь.

-1
задан 24 March 2013 в 09:05
3 ответа

Позвольте мне начать с того, что я считаю это плохой идеей; вы хотите сделать знание общего секрета (« ключ для моделирования ») возможностью; то есть секрет, который идентифицирует конкретный набор данных и где знание секрета является доказательством авторизации для доступа к набору данных. Это мера безопасности через непрозрачность и даст вам очень мало контроля над доступом к данным прогона с течением времени: если вы думаете, что знания распространились, вы не можете исключить некоторых людей, владеющих секретом, без исключения всех.

Но если вы настаиваете на этом, то вам вообще не нужно делать ничего умного: просто поместите секрет в URL. Например, предположим, что ваши наборы данных хранятся в http://sets.example.com/data/ , и этот каталог недоступен в списке. Учитывая набор секретов, ключ которого, скажем, b8ab010d69f6008384d39bd3c0efeb0c, сохраните их в http://sets.example.com/data/b8ab010d69f6008384d39bd3c0efeb0c/ ; учитывая набор секретов с другим ключом, сохраните их под соответствующим другим URL.

Если вам нужен перенаправитель с вашей главной страницы (« разрешено видеть контент, который они запрашивают, когда они вводят соответствующий ключ на домашняя страница ") написание становится тривиальным: однострочник, где вы вводите любой ключ и перенаправляетесь на http://sets.example.com/data/THAT-KEY/ . Никакой проверки «ключа» не требуется; если введен недопустимый ключ, пользователь просто получает ошибку 404 не найден .

Изменить : самый быстрый способ сделать каталог недоступным в списке - это поместить индекс нулевой длины .html в нем. Но есть и другие, как указано в ioctl. И когда я пишу это, я понимаю, что все, что я описал, это именно то, на что Майкл Хэмптон намекал в своем (чрезвычайно, возможно, чрезмерно) содержательном, но точном комментарии по вашему вопросу выше.

2
ответ дан 5 December 2019 в 19:30

Вы могли бы полностью сделать это без apache.

Используете ли вы страницу php / .net / ruby ​​/ любую другую, которая обслуживает изображения?

Если да, вы можете использовать сгенерированный ключ md5 ( есть функция php, которая делает это ) из идентификатора изображения плюс «соль», которая также может быть их паролем, чтобы было менее очевидно, что вы используете идентификатор (например, если id равен 1, вы можете добавить к нему «flood», а затем сделать ключ md5 : $ key = md5 ("1". "flood")).

Затем вы можете отправить ссылку пользователю другими способами, такими как электронная почта, внутренняя веб-страница, приложение и т. д.

Например, httttp : //myflodpage.coom/images.php? floodimage = <\ MD5HERE>

0
ответ дан 5 December 2019 в 19:30

Извините, я не хочу украсть ответ MadHatter. Чтобы сделать каталог недоступным из списка, вы добавляете параметр "-Indexes" (без кавычек) в свой запись виртуального хоста.

ServerAlias ​​domain.com

ServerAdmin webmaster@domain.com

DocumentRoot / DocumentRoot

Параметры -индексы OtherOption1 OtherOption2 и т. Д.

<\ VirtualHost>

0
ответ дан 5 December 2019 в 19:30

Теги

Похожие вопросы