Безопасность маленькой системы
Маленькой библиотеке не нужна система уровня банка. Но ей нужно, чтобы чужой человек не вошёл в кабинет библиотекаря, а данные читателей не утекли. Какие решения для этого приняты.
Небольшие системы обычно ломают не изощрённые хакеры, а автоматические программы, которые перебирают пароли и ищут типичные ошибки на тысячах сайтов подряд. Поэтому главное — закрыть типичные двери.
Меньше дверей
- Нет самостоятельной регистрации. Учётные записи создаёт только библиотекарь.
- Мастер первого запуска закрывается навсегда после создания первого библиотекаря. Иначе тот, кто откроет свежую установку раньше хозяина, мог бы «настроить» её под себя.
Пароли и вход

- Пароль не короче 12 символов, хранится только в виде надёжного хеша. Даже при утечке базы паролей в ней нет.
- Временный пароль от библиотекаря обязательно меняется при первом входе.
- После пяти неудачных попыток пара «адрес + логин» блокируется на 15 минут. Счётчик хранится в базе, а не в памяти сервера, поэтому перезапуск его не сбрасывает.
- Блокируется именно пара, а не весь логин: иначе злоумышленник мог бы нарочно заблокировать вход настоящему библиотекарю.

Защита каждого действия
Все права проверяет сервер, а не страница в браузере. Каждое изменяющее действие несёт защитный код, который знает только открытая вкладка самого сайта. Это защищает от атак, когда чужой сайт пытается нажать кнопку от имени вошедшего пользователя.
Внутренние данные — например, дополнительные поля «только для библиотекаря» — вырезаются на сервере и в браузер читателя не попадают вовсе.
Чего мы не обещаем
Katlog — эксперимент, а не сертифицированный продукт. Перед работой с настоящими читательскими данными библиотеке нужна собственная проверка: правовая и техническая.