Безопасность
Пользователь выполнения
Рекомендуется настраивать пользователя выполнения с более низкими правами, например, таким же, как у пользователя nginx. Пользователь выполнения задаётся в config/server.php
в полях user
и group
.
Аналогично, пользователь для пользовательских процессов указывается через user
и group
в config/process.php
.
Важно отметить, что для процесса monitor не следует настраивать пользователя выполнения, так как он требует высоких привилегий для корректной работы.
Спецификации контроллера
В каталоге controller
или его подкаталогах могут находиться только файлы контроллеров, размещение других файлов классов запрещено. В противном случае, при неактивированном суффиксе контроллера, файлы классов могут быть недозволительно доступны через URL, что может привести к непредсказуемым последствиям.
Например, app/controller/model/User.php
на самом деле является классом Model, но он ошибочно помещён в каталог controller
. При отсутствии суффикса контроллера пользователь сможет получить доступ к любому методу в User.php
через URL, подобный /model/user/xxx
.
Чтобы полностью избежать такой ситуации, настоятельно рекомендуется использовать суффикс контроллера для явного указания, какие файлы являются контроллерами.
Фильтрация XSS
В целях универсальности webman не выполняет экранирование запросов от XSS.
webman настоятельно рекомендует выполнять экранирование XSS во время рендеринга, а не перед сохранением в базу данных.
Кроме того, такие шаблоны, как twig, blade, think-template автоматически выполняют экранирование XSS, что избавляет от необходимости вручную выполнять экранирование, что очень удобно.
Подсказка
Если вы выполните экранирование XSS перед сохранением в базу данных, это может привести к проблемам несовместимости с некоторыми плагинами приложения.
Защита от SQL-инъекций
Чтобы предотвратить SQL-инъекции, старайтесь использовать ORM, такие как illuminate/database, think-orm, и старайтесь не собирать SQL-запросы самостоятельно.
Прокси nginx
Когда ваше приложение должно быть доступно для внешних пользователей, настоятельно рекомендуется установить прокси nginx перед webman, чтобы фильтровать некоторые недозволенные HTTP-запросы и повысить уровень безопасности. Подробности см. в nginx-прокси.