Zend Framework 3 следует наилучшим практикам, чтобы дать вам безопасную базу для создания собственных веб-сайтов. Создатели ZF3 регулярно выпускают обновления безопасности. Вы можете встроить эти обновления в свой сайт одной командой через Composer.
Практика показывает, что использование фреймворка для написания вашего веб-сайта улучшает уровень безопасности по сравнению с использованием "чистого" PHP, потому что вам не нужно повторно "изобретать колесо". Большинство уязвимостей в безопасности фреймворков уже давно известны и исправлены сообществом пользователей.
ZF3 предоставляет следующие средства обеспечения безопасности веб-сайта:
Входной скрипт (index.php) - это единственный файл PHP, доступный для веб-посетителей. Все остальные PHP-скрипты находятся вне корневой директории документов веб-сервера Apache. Это гораздо безопаснее, чем давать всем посетителям доступ к любому из PHP-скриптов.
Маршрутизация запросов (Routing) позволяет задавать строгие правила, как должен выглядеть приемлемый URL адрес веб-страницы. Если пользователь вводит неверный URL адрес в строку навигации браузера, он автоматически направляется на страницу с сообщением об ошибке.
Списки контроля доступа (Access control lists) и Доступ на основе ролей (Role-Based Access Control, RBAC) позволяют задавать правила для разрешения или запрета на доступ к конкретным ресурсам вашего веб-сайта. Для примера, анонимный пользователь сможет получить доступ только к главной странице сайта, авторизованный пользователь сможет получить доступ к личной странице, а администратор сможет получить доступ к панели управления сайтом.
Валидаторы (validators) и фильтры (filters) веб-форм позволяют быть уверенными в том, что вредные данные, введенные пользователем, не пройдут через веб-форму. Фильтры, например, позволяют обрезать введенную строку или удалять из нее HTML тэги. Валидаторы используются, чтобы удостовериться, что данные, отправленные через веб-форму, отвечают неким правилам. Например, E-mail валидатор проверяет, что поле электронного почтового адреса содержит правильный адрес, а если нет, выдает сообщение об ошибке и требует ввести корректные данные.
Элементы формы Captcha и CSRF (Cross-Site Request Forgery) используются для предотвращения хакерских атак.
Компонент Zend\Escaper позволяет вырезать нежелательные тэги HTML из данных, выводимых на веб-страницу.
Поддержка криптографии позволяет хранить важные данные, такие как пароли, зашифрованными стойкими криптоалгоритмами, которые сложно взломать.