Как запаролить php файл

Обновлено: 06.07.2024

Нужно как то закрыть доступ к файлу, чтобы он выполнял свои функции но не был доступен через браузер, т.е. сам файл выполняет ряд функций и так же в нем что-то типа админки, поэтому нужно его запаролить.
Админку мне видить не обязательно, главное чтобы она (админка) не была видна через браузер.

Это реально? Если да, то как это сделать?

У меня есть схожий файл, там админка запаролена с помощью

как такую систему прикрутить к другому файлу, может есть варианты проще.

Можно поместить его в отдельный каталог и закрыть к нему доступ с помощью Deny from all или использовать AuthType Basic - будет запрашиваться пароль.

Если используется Apache.

вроде используется, .htaccess есть, значит используется, видимо
А если его (каталог) закрыть с помощью Deny from all или использовать AuthType Basic, сам файл будет работать?
И какие строчки нужно прописать в .htaccess для Deny from all?

Файл будет доступен только на самом сервере, если в .htaccess прописать:

Order deny,allow
Deny from all

Кто знает, где в denwer Apache, мне для создания пароля (AuthType Basic) нужен Apache, хочу попробовать запаролить директорию.

AuthType тоже прописывается в .htaccess
Пример:

Доступ разрешен по файлу .htpasswd для пользователей hacker и guest. Тип авторизации Basic.

Содержимое файла .htpasswd:

hacker:Захэшированный пароль
guest:Захэшированный пароль

Добавлено через 4 минуты

Логин и пароль через двоеточие, зашифрованный по системе MD5.

Для создания файла .htpasswd есть программа htpasswd.exe, поставляемая с сервером apache. Можно запустить эту программу с командой -cb .htpasswd login password (вместо login будет ваше имя пользователя, а вместо password - пароль).

Макс-Текс, а зачем программа, я так зашифровал в мд5 и сохранил файл как .htpasswd
Это работает или в htpasswd.exe есть другой сакральный смысл?
Просто я скачал эту программу, жму запустить, она моргает и все.

Добавлено через 2 минуты

У меня .htpasswd и .htaccess в одной директории, в той которую закрываю, нужно видимо не так, так как у меня пароль с логином (здесь: сайт *** запрашивает имя пользователя и пароль. Сайт сообщает: «Please enter your login and password») не проходит (
Это

У сервера apache есть возможность сделать базовую авторизацию. Чтобы закрыть директорию, в неё нужно поместить два файла – .htaccess и .htpasswd.

Содержание файла .htaccess

AuthUserFile /путь_до_директории/.htpasswd – путь до файла с паролями.

Чтобы узнать полный путь к директории достачно поместить в неё PHP файл и запустить его в браузере.

Авторизацией можно закрыть только определенные файлы, например архивы ZIP.

На некоторых хостингах авторизация на статические файлы (изображения, шрифты и т.д.) может не работать т.к. они отдаются через Nginx.

Стоит проверить прямой доступ к самим файлам .htaccess и .htpasswd из браузера, если да, то закрыть его:

Пароли в htpasswd

В файле хранится пары логина и хеша пароля, например:

Логин может содержать латинские буквы, цифры, - и _ , регистрозависимый.

Хеш можно сгенерировать в PHP, возможны следующие алгоритмы:

Bcrypt

В настоящее время считается очень безопасным, работает начиная с версии 2.4, формат:

$2y$ или $2a$ + результат алгоритма crypt_blowfish.

MD5 (APR)

Специфический алгоритм Apache (1000 итераций MD5 случайной соли и пароля), работает во всех версиях.

$apr1$ + результат алгоритма.

Работает только на Unix хостингах и до версии Apache 2.2.17. Ограничивает длину пароля до 8 символов. Считается небезопасным.

Этот алгоритм небезопасен по современным стандартам, работает во всех версиях.

+ результат SHA-1 (бинарная строка из 20-ти символов) закодированный в Base64.

Генератор htpasswd

Введите логин и пароль:

Авторизация и выход

Реквизиты доступа к закрытой директории можно передать в URL:

Если такие URL использовать в src изображений, скриптов и стилей, то работать они не будут, вызвав ошибку:

Завершение сеанса происходит по закрытию браузера, но не вкладки. Другого варианта не предусмотрено.

Взаимодействие с PHP

В PHP можно отследить авторизированного пользователя по переменным массива $_SERVER .

Если их нет, значит пользователь не авторизирован. Вывести диалог входа из PHP:

Нужно создать страницу авторизации, пароль должен высылаться администратором сайта
На этой странице мы должны войти на сайт или зарегистрироваться. Суть в том, что при регистрации.

Как поставить пароль на php страницу
Привет! У меня есть скрипт для добавления объявления код в файле ad.php может кто.

ещё нужно в сессию записать,чтоб page2.php просто так не открывался
index.php
Что-то я запутался как всё собрать в работающую систему. Что-то я запутался как всё собрать в работающую систему. Всё очень просто. Сначала в index.php проверяется пароль,если верен-редирект на page2.php и заносим в сессию,что паротль верен. Чтобы нельзя было открыть page2.php провряем есть ли там переменная сессии и равна ли она тру. Если нет,то редирект обратно на index.php Я уже всю голову сломал!
Не получается у меня никак. Не пойму что к чему.
Я создал html-страницу с формой для передачи пароля. Куда он передаваться здесь будет

? Тут же нет пути никакого.
А если весь код index.php вставить, то пароль легко можно будет подглядеть в коде страницы.

Объясните, пожалуйста, поподробнее! Мне тяжело. Я не учился программированию вообще. Кое-какие знания только из интернета и из литературы.

UHSF, Делайте так, как сказал motakuji.

А если весь код index.php вставить, то пароль легко можно будет подглядеть в коде страницы. Полностью исключено. Переменную $pass видит только сервер. Безопасность - 100%. UHSF, Вы сами написали, в коде своей формочки method=POST. Видимо Вы слабо знакомы с тем как отправляются данные на сервер с форм. Метод POST говорит нам о том, что отправлять то что в полях формы невидимо от пользователя. То что вы написали <input type="text" name="paswd">, paswd - это и будет переменной, отправленной на сервер. Если у вас будет обработчиком формы файл например index2.php, то в этом файле вы смело сможете эту переменную вызывать получив её значение с глобального массива: $paswd = $_POST['paswd'];. Что-то типа того, думаю объяснил доходчиво.

Берем код который написал добрый человек motakuji
И так, первый файлик:

Во второй страничке в самом начале, вставляем такую штуку, которая написана ниже, для проверки существует ли сессия для данного пользователя или нет.
page2.php

Добавлено через 6 минут
А если уж вы хотите сразу, тогда вот ВАм следующее, но советую разобраться, и сделать самому:

http authentification

Данный способ достаточно прост, но в тоже время является очень надежным, при условии использования «нормального хостинга», так как данный тип защиты паролем через htaccess и htpasswd строится средствами сервера Apache.

Настройка защиты с помощью htaccess и htpasswd

Для работы нам необходимо несколько вещей:

  • Доступ к сайту по FTP;
  • Наличие прав на редактирование .htaccess ;

Для начала нам необходимо создать файл .htaccess. Проще всего это сделать с помощью обычного блокнота Windows. Нажимаем на рабочем столе правой кнопкой мыши, затем Создать — Текстовый документ. Открываем созданный текстовый документ, затем Файл — Сохранить как. Название меняем на .htaccess (точка перед названием обязательна!), тип файла «Все файлы» (иначе создастся .htaccess.txt).

Запускаем командную строку Пуск — Выполнить — cmd. Пишем cd C:/ , затем нажимаем Enter.

Теперь пишем следующую команду: htpasswd -cm .htpasswd admin

  • htpasswd — наша скаченная программа
  • -cm .htpasswd — параметр для создания файла .htpasswd и шифрования пароля с помощью MD5
  • admin — имя пользователя, для которого создаем пароль

После выполнения команды необходимо ввести и подтвердить пароль для пользователя.

У нас создался файл .htpasswd с логином и паролем, с помощью которых можно будет получить доступ к сайту/директориям.

Теперь нам необходимо загрузить наши файлы .htaccess и .htpasswd на сервер.

.htaccess загружаем в директорию, которую необходимо защитить (будут автоматически защищены все подпапки), а .htpasswd рекомендуется загружать в другую директорию.

После того, как вы загрузили файлы на сервер по FTP, необходимо отредактировать файл .htaccess. Можно сделать это прямо на сервере, либо на компьютере через блокнот и потом снова загрузить на сервер. Пишем в файл следующие строки:

Для этого создаем файл, например, info.php. Пишем в него следующий код:

Копируем все, кроме названия файла и вставляем в .htaccess. После обязательно удалите info.php с сервера!

Все, сохраняем файл .htaccess и загружаем на сервер (если редактировали на локальном компьютере).

Теперь, если попробовать зайти в папку на сервере, то будет выскакивать окошко с запросом логина и пароля. Сессия хранится до закрытия браузера.

Читайте также: