Files
web_auth/README.md
2026-01-19 05:35:37 +03:00

1.7 KiB
Raw Blame History

Auth Form (PHP drop-in)

Современная форма авторизации с проверкой доступа к сайту через MariaDB. Файлы можно копировать прямо в папку существующего сайта.

Требования

  • PHP 7.4+ (mysqli, sessions)
  • MariaDB

Установка

  1. Создайте базу и таблицы:
    • Запустите SQL из db/schema.sql
  2. Заполните подключение к БД:
    • Отредактируйте auth/config.php
  3. Добавьте пользователя и доступ:
    • INSERT INTO users (login, password_hash) VALUES ('demo', '<HASH>');
    • INSERT INTO user_access (user_id, site_key) VALUES (1, 'example.com');

Хэш пароля

Создать bcrypt-хэш можно так:

<?php
echo password_hash("yourPassword", PASSWORD_BCRYPT);

Интеграция в сайт (NAS)

  1. Скопируйте папку auth в корень сайта.
  2. На защищаемых HTML-страницах (кроме главной) добавьте:
<meta name="site-key" content="example.com" />
<script src="/auth/guard.js"></script>
  1. Главную страницу не защищайте — вход находится в /auth/login.html.
  2. Если страницы могут быть PHP, используйте серверную защиту:
<?php
define("AUTH_SITE_KEY", "example.com");
require __DIR__ . "/auth/guard.php";

Лимиты и логирование

  • Ограничение попыток: 10 запросов за 5 минут на IP
  • Логи авторизации: auth/logs/auth.log (JSONL-строки)