Sicurezza
Utente di esecuzione
Si consiglia di impostare l'utente di esecuzione come un utente con privilegi inferiori, ad esempio coerente con l'utente di esecuzione di nginx. L'utente di esecuzione è impostato nelle chiavi user
e group
in config/server.php
. Gli utenti per i processi personalizzati simili vengono specificati tramite user
e group
in config/process.php
. È importante notare che non bisogna impostare un utente di esecuzione per il processo monitor, poiché richiede privilegi elevati per funzionare correttamente.
Specifiche del controller
Nella directory controller
o nelle relative sottodirectory possono essere posizionati solo file di controller; è vietato posizionare altri file di classe, altrimenti, se non è attesa l'estensione del controller, i file di classe potrebbero essere accessibili in modo illegittimo tramite URL, causando conseguenze imprevedibili. Ad esempio, app/controller/model/User.php
è effettivamente una classe Model, ma è stata erroneamente posizionata nella directory controller
; se l'estensione del controller non è abilitata, ciò permetterebbe agli utenti di accedere a qualsiasi metodo in User.php
tramite un URL come /model/user/xxx
. Per eliminare completamente questa situazione, si raccomanda vivamente di utilizzare l'estensione del controller per contrassegnare chiaramente quali sono i file di controller.
Filtro XSS
Considerando la generalità, webman non effettua l'escaping XSS delle richieste. Webman raccomanda vivamente di eseguire l'escaping XSS durante il rendering, piuttosto che prima dell'inserimento nel database. Inoltre, i template come twig, blade, think-template, ecc., eseguono automaticamente l'escaping XSS, senza bisogno di farlo manualmente, il che è molto conveniente.
Suggerimento
Se effettui l'escaping XSS prima dell'inserimento nel database, potrebbero verificarsi problemi di incompatibilità con alcuni plugin dell'applicazione.
Prevenzione dell'iniezione SQL
Per prevenire l'iniezione SQL, si consiglia di utilizzare ORM, come illuminate/database, think-orm, evitando di assemblare SQL manualmente.
Proxy nginx
Quando la tua applicazione deve essere esposta a utenti esterni, si consiglia vivamente di aggiungere un proxy nginx davanti a webman, in modo da filtrare alcune richieste HTTP illegittime e aumentare la sicurezza. Per ulteriori dettagli, si prega di consultare il proxy nginx.