Sécurité

Utilisateur d'exécution

Il est recommandé de définir l'utilisateur d'exécution comme un utilisateur avec des autorisations plus basses, par exemple le même utilisateur que nginx. L'utilisateur d'exécution est configuré dans config/server.php dans les sections user et group. De même, l'utilisateur des processus personnalisés est spécifié via user et group dans config/process.php. Il est à noter que le processus de surveillance ne doit pas avoir d'utilisateur d'exécution spécifié, car il a besoin de permissions élevées pour fonctionner correctement.

Normes des contrôleurs

Le répertoire controller ou ses sous-répertoires ne doivent contenir que des fichiers de contrôleurs, les autres types de fichiers étant interdits. Sinon, en l'absence de suffixe de contrôleur, il se peut que des fichiers de classe soient accédés de manière non autorisée via l'URL, ce qui pourrait entraîner des conséquences imprévisibles. Par exemple, le fichier app/controller/model/User.php est en réalité une classe Model, mais il a été accidentellement placé dans le répertoire controller. En l'absence de suffixe de contrôleur, cela permettrait aux utilisateurs d'accéder à n'importe quelle méthode de User.php via des URL telles que /model/user/xxx. Pour éviter complètement ce genre de situation, il est fortement recommandé d'utiliser le suffixe de contrôleur pour marquer clairement les fichiers de contrôleurs.

Filtrage XSS

Pour des raisons de généralité, webman ne filtre pas les requêtes XSS. webman recommande fortement de réaliser le filtrage XSS lors du rendu, plutôt que lors de l'entrée des données. De plus, les modèles tels que Twig, Blade, think-template effectuent automatiquement le filtrage XSS, ce qui rend la tâche très pratique.

Conseil
Si vous effectuez le filtrage XSS avant l'entrée des données, cela risque de causer des problèmes d'incompatibilité avec certains plugins de l'application.

Prévention des injections SQL

Pour prévenir les injections SQL, il est fortement recommandé d'utiliser des ORM, tels que illuminate/database ou think-orm, et d'éviter de composer vous-même des requêtes SQL.

Proxy nginx

Lorsque votre application doit être exposée aux utilisateurs externes, il est fortement recommandé d'ajouter un proxy nginx en amont de webman, ce qui permet de filtrer certaines requêtes HTTP non autorisées et d'améliorer la sécurité. Pour plus de détails, veuillez consulter le document sur le proxy nginx.