Глоссарий

Словарь веб-разработчика

Визначення технічних термінів з PHP, DevOps, MySQL та AI — з прикладами коду та поясненнями простою мовою.

228 терминов
46 букв
O
OAuth 2.0
OAuth 2.0 — протокол авторизации, позволяющий приложению получить ограниченный доступ к ресурсам пользователя на другом сервисе без передачи пароля. «Войти через Google» — это OAuth 2.0.Основные ролиResource Owner — пользователь, владелец данныхClient — ваше приложение, запрашивающее доступAuthorization Server — сервер (Google, GitHub), выдающий токеныResource Server — API, хранящее данные пользователяFlows (Grant Types)Authorization Code + PKCE — наиболее безопасный; для веб и мобильных приложенийClient Credentials — для машинного взаимодействия (без участия пользователя)Implicit — устаревший, не рекомендуетсяOAuth vs OpenID ConnectOAuth 2.0 даёт авторизацию (доступ к ресурсу). OpenID Connect (OIDC) — надстройка над OAuth, добавляющая аутентификацию (кто ты). OIDC возвращает ID Token (JWT) с данными пользователя.
Observer Pattern
Observer (наблюдатель) — паттерн, в котором объект-субъект ведёт список зависимых объектов-наблюдателей и автоматически уведомляет их при изменении своего состояния. Основа систем событий.УчастникиSubject (Publisher) — хранит список наблюдателей, предоставляет методы subscribe / unsubscribe / notifyObserver (Subscriber) — реализует метод update(), вызываемый субъектомГде встречаетсяDOM-события в браузере (addEventListener)Системы событий во фреймворках (EventEmitter в Node.js)Reactive Programming (RxJS Observable)Внутренняя шина событий приложенияObserver vs Pub/SubВ Observer субъект знает о своих наблюдателях напрямую. В Pub/Sub между ними есть посредник (брокер): издатель и подписчик не знают друг о друге.
OPcache
OPcache — встроенное расширение PHP, которое хранит скомпилированный байткод скриптов в разделяемой памяти. PHP компилирует каждый файл один раз, а все последующие запросы читают готовый байткод прямо из памяти, полностью минуя парсинг и компиляцию. Типичный результат — рост пропускной способности в 2–5 раз без изменений в коде.Как это работаетПри первом выполнении скрипта PHP превращает исходный код в байткод (opcodes) и записывает его в разделяемую память процесса. Все последующие запросы — в том числе от разных воркеров — читают уже готовый байткод напрямую, обходя лексер, парсер и компилятор.Ключевые директивыopcache.enable = 1 — включает расширение (по умолчанию включено в большинстве дистрибутивов)opcache.memory_consumption = 128 — размер памяти под кэш в МБ; для больших проектов используйте 256+opcache.max_accelerated_files = 10000 — максимальное количество файлов в кэшеopcache.validate_timestamps = 0 — отключает проверку времени изменения файлов; обязательно для продакшна, даёт наибольший прирост скоростиopcache.revalidate_freq = 60 — если validate_timestamps = 1, проверять изменения раз в N секундИнвалидация кэшаНа продакшне с validate_timestamps = 0 OPcache не отслеживает изменения файлов, поэтому после деплоя кэш нужно сбрасывать вручную. Чище всего — перезапустить PHP-FPM. Если это невозможно, вызовите opcache_reset() или opcache_invalidate($path, true) из скрипта, запускаемого после деплоя.
Open Redirect
Open Redirect — уязвимость, при которой приложение перенаправляет пользователя на произвольный внешний URL без проверки. Злоумышленник создаёт ссылку вида https://trusted.com/redirect?url=https://phishing.com — жертва видит доверенный домен и попадает на вредоносный сайт. Типичное использование в атаках Фишинг — ссылка выглядит доверенной OAuth redirect hijacking — подмена redirect_uri в OAuth flow Обход referer-проверок Защита Whitelist разрешённых URL или доменов для редиректа Не принимать внешние URL в параметрах редиректа Сравнивать host URL с текущим доменом перед редиректом // Проверка: только относительные URL function safeRedirect(string $url): string { $parsed = parse_url($url); // отклонить если есть scheme или host if (isset($parsed['scheme']) || isset($parsed['host'])) { return '/'; // fallback на главную } return $url; }
OpenAPI / Swagger
OpenAPI — стандарт машиночитаемого описания REST API в формате YAML или JSON. Swagger — набор инструментов вокруг этого стандарта (Swagger UI, Swagger Editor). Документация, которая не устаревает, поскольку генерируется из кода или является источником правды для генерации кода.Что даётИнтерактивная документация (Swagger UI) — можно тестировать endpoint-ы прямо в браузереГенерация клиентских SDK — автоматический TypeScript/Python/PHP-клиент из описаний APIВалидация запросов и ответов на соответствие спецификацииКонтракт между frontend и backend — сначала описываем API, потом реализуемМинимальный примерpaths: /users/{id}: get: summary: Получить пользователя parameters: - name: id in: path required: true schema: type: integer
ORM
ORM (Object-Relational Mapping) — прослойка между кодом и базой данных, позволяющая работать с таблицами как с объектами. Вместо SQL-запросов вы оперируете классами и методами, а ORM генерирует SQL самостоятельно.Преимущества и ценаORM ускоряет разработку, защищает от SQL-инъекций и позволяет легко менять СУБД. Цена — накладные расходы и риск неэффективных запросов. Классический пример: N+1 проблема, когда ORM делает отдельный запрос для каждой записи вместо одного JOIN.Два паттернаActive Record — модель сама знает, как сохранить себя. Код выглядит как $user->save(). Проще, но жёстче связывает модель с персистентностьюData Mapper — модель и логика сохранения разделены отдельным классом (Repository/Mapper). Сложнее, но гибче для крупных проектов
OWASP Top 10
OWASP (Open Web Application Security Project) — некоммерческая организация, публикующая стандарты веб-безопасности. OWASP Top 10 — ежегодный список наиболее распространённых уязвимостей. Стандарт де-факто для аудита безопасности приложений.Top 10 (2021)Broken Access Control — доступ к данным других пользователейCryptographic Failures — слабое шифрование, утечка паролейInjection — SQL, NoSQL, OS, LDAP инъекцииInsecure Design — ошибки на уровне архитектурыSecurity Misconfiguration — дефолтные пароли, открытые портыVulnerable Components — устаревшие зависимости с уязвимостямиAuthentication Failures — слабая аутентификацияSoftware Integrity Failures — небезопасный CI/CD, обновления без проверкиLogging Failures — отсутствие мониторинга атакSSRF — Server-Side Request Forgery