This commit is contained in:
Jester
2026-01-19 08:35:00 +03:00
parent cbbc605336
commit 55b3d5f088
27 changed files with 183 additions and 841 deletions

View File

@@ -1,52 +0,0 @@
# 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-строки)