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

53 lines
1.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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
<?php
echo password_hash("yourPassword", PASSWORD_BCRYPT);
```
## Интеграция в сайт (NAS)
1. Скопируйте папку `auth` в корень сайта.
2. На защищаемых HTML-страницах (кроме главной) добавьте:
```html
<meta name="site-key" content="example.com" />
<script src="/auth/guard.js"></script>
```
3. Главную страницу не защищайте — вход находится в `/auth/login.html`.
4. Если страницы могут быть PHP, используйте серверную защиту:
```php
<?php
define("AUTH_SITE_KEY", "example.com");
require __DIR__ . "/auth/guard.php";
```
## Лимиты и логирование
- Ограничение попыток: 10 запросов за 5 минут на IP
- Логи авторизации: `auth/logs/auth.log` (JSONL-строки)