Seguridad

Usuario de Ejecución

Se recomienda configurar el usuario de ejecución como un usuario con permisos reducidos, por ejemplo, que coincida con el usuario de ejecución de nginx. El usuario de ejecución se establece en config/server.php en user y group.
Usuarios para procesos personalizados similares se especifican a través de user y group en config/process.php.
Es importante notar que no se debe configurar un usuario de ejecución para el proceso monitor, ya que necesita altos permisos para funcionar correctamente.

Normativa de Controladores

En el directorio controller o sus subdirectorios, solo se deben colocar archivos de controlador; se prohíbe colocar otros archivos de clase. De lo contrario, si no se habilita el sufijo del controlador, los archivos de clase pueden ser accedidos ilegalmente a través de la URL, lo que podría resultar en consecuencias impredecibles.
Por ejemplo, app/controller/model/User.php en realidad es una clase Model, pero fue colocado erróneamente en el directorio controller. Sin habilitar el sufijo del controlador, esto permitiría a los usuarios acceder a cualquier método dentro de User.php a través de una URL como /model/user/xxx.
Para eliminar esta situación por completo, se recomienda encarecidamente utilizar el sufijo del controlador para marcar claramente cuáles son archivos de controlador.

Filtrado XSS

Por razones de versatilidad, webman no aplica escape XSS a las solicitudes.
webman recomienda encarecidamente realizar el escape XSS durante el renderizado, en lugar de hacerlo antes de almacenar en la base de datos.
Además, plantillas como twig, blade y think-template aplicarán automáticamente el escape XSS, lo que evita la necesidad de hacerlo manualmente, lo que resulta ser muy conveniente.

Consejo
Si realizas el escape XSS antes de almacenar en la base de datos, es probable que causes problemas de incompatibilidad con algunos complementos de la aplicación.

Prevención de Inyección SQL

Para prevenir inyecciones SQL, se recomienda utilizar ORM, como illuminate/database, think-orm, y al utilizarlos, es preferible no ensamblar SQL manualmente.

Proxy nginx

Cuando tu aplicación necesita ser expuesta a usuarios externos, se recomienda encarecidamente añadir un proxy nginx delante de webman. Esto puede filtrar algunas solicitudes HTTP ilegales y mejorar la seguridad. Para más detalles, consulta nginx proxy.