53 lines
1.7 KiB
Markdown
53 lines
1.7 KiB
Markdown
|
|
# 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-строки)
|