Пароль защищает страницу без доступа к db с помощью php

Возможно ли защитить паролем страницу без доступа к db? У меня может быть только несколько страниц. Но я должен иметь возможность менять пароль, а также сохранять сеансы и т. Д. И я хочу, чтобы он был безопасным способом, как для производственного сайта!

Как его хранить в config.php после md5:

<?php username="admin"; password="1a1dc91c907325c69271ddf0c944bc72"; ?> 

Если это хорошая идея, существует ли способ ограничить доступ к этому php только из одного скрипта, называемого check.php или чего-то еще?

Related of "Пароль защищает страницу без доступа к db с помощью php"

Конечно, почему бы и нет? Вы можете использовать плоские файлы в недоступном каталоге (защищенном .htaccess или вне корневого каталога www) и использовать его как базу данных.

Вот простой класс входа, который я взбивал:

 class SimpleLogin { private $users; private $db = './pass.txt'; function __construct() { $data = file_get_contents($this->db); if (!$data) { die('Can\'t open db'); } else { $this->users = unserialize($data); } } function save() { if (file_put_contents($this->db, serialize($this->users)) === false) die('Couldn\'t save data'); } function authenticate($user, $password) { return $this->users[$user] == $this->hash($password); } function addUser($user, $password) { $this->users[$user] = $this->hash($password); $this->save(); } function removeUser($user) { unset($this->users[$user]); $this->save(); } function userExists($user) { return array_key_exists($user, $this->users); } function userList() { return array_keys($this->users); } // you can change the hash function and salt here function hash($password) { $salt = 'jafo2ijr02jfsau02!)U(jf'; return sha1($password . $salt); } } не class SimpleLogin { private $users; private $db = './pass.txt'; function __construct() { $data = file_get_contents($this->db); if (!$data) { die('Can\'t open db'); } else { $this->users = unserialize($data); } } function save() { if (file_put_contents($this->db, serialize($this->users)) === false) die('Couldn\'t save data'); } function authenticate($user, $password) { return $this->users[$user] == $this->hash($password); } function addUser($user, $password) { $this->users[$user] = $this->hash($password); $this->save(); } function removeUser($user) { unset($this->users[$user]); $this->save(); } function userExists($user) { return array_key_exists($user, $this->users); } function userList() { return array_keys($this->users); } // you can change the hash function and salt here function hash($password) { $salt = 'jafo2ijr02jfsau02!)U(jf'; return sha1($password . $salt); } } 

ПРИМЕЧАНИЕ . Вам действительно следует отключить отчет об ошибках, если вы собираетесь использовать его на реальном сервере. Это можно сделать, вызвав error_reporting () или добавив «@» перед file_put_contents и file_put_contents (то есть: так оно превращается в @file_get_contents )

Пример использования : http://left4churr.com/login/

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

 Order Allow,Deny Deny from All 

Вы можете использовать HTTP-аутентификацию с PHP . Очень хорошие примеры представлены в PHP-документе.

На самом деле база данных не имеет никакого отношения к защите паролем.
вы можете писать логин и пароль непосредственно в своем скрипте, а также хранить в базе данных.

Нет необходимости ограничивать доступ к вашему php-файлу. Вызывается через HTTP, это будет просто пустая страница и не более того.

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