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.