Sécurité
Utilisateur d'exécution
Il est recommandé de définir l'utilisateur d'exécution comme un utilisateur ayant des privilèges limités, par exemple, en accord avec l'utilisateur d'exécution de nginx. L'utilisateur d'exécution est défini dans config/server.php
dans user
et group
. De même, l'utilisateur des processus personnalisés est spécifié par user
et group
dans config/process.php
. Il est à noter que le processus monitor ne doit pas avoir d'utilisateur d'exécution spécifié, car il nécessite des privilèges élevés pour fonctionner normalement.
Normes des contrôleurs
Le répertoire controller
ou ses sous-répertoires ne doivent contenir que des fichiers de contrôleur, l'insertion d'autres fichiers de classe est interdite, sinon, en l'absence de suffixe de contrôleur, des fichiers de classe pourraient être accessibles de manière illégale par l'URL, entraînant des conséquences imprévisibles. Par exemple, app/controller/model/User.php
est en réalité une classe Model, mais elle a été incorrectement placée dans le répertoire controller
. Sans le suffixe de contrôleur, cela permettrait aux utilisateurs d'accéder à n'importe quelle méthode dans User.php
via une URL telle que /model/user/xxx
. Pour éliminer cette situation, il est fortement recommandé d'utiliser le suffixe de contrôleur pour marquer clairement quels fichiers sont des fichiers de contrôleur.
Filtrage XSS
Pour des raisons de compatibilité, webman n'effectue pas d'échappement XSS sur les requêtes.
Webman recommande fortement de procéder à l'échappement XSS lors du rendu, plutôt qu'avant de stocker en base de données.
De plus, des templates tels que twig, blade, think-template exécutent automatiquement l'échappement XSS sans nécessiter d'échappement manuel, ce qui est très pratique.
Astuce
Si vous effectuez l'échappement XSS avant de stocker en base de données, cela pourrait entraîner des problèmes d'incompatibilité avec certains plugins d'application.
Prévention des injections SQL
Pour prévenir les injections SQL, il est préférable d'utiliser un ORM, tel que illuminate/database, think-orm, et lors de son utilisation, essayez d'éviter de assembler 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 devant webman. Cela peut filtrer certaines requêtes HTTP illégales et améliorer la sécurité. Pour plus de détails, veuillez consulter le proxy nginx.