Sicherheit

Ausführender Benutzer

Es wird empfohlen, den ausführenden Benutzer auf einen Benutzer mit niedrigeren Rechten einzustellen, der beispielsweise mit dem nginx-Benutzer übereinstimmt. Der ausführende Benutzer wird in der Datei config/server.php unter user und group festgelegt. Ähnlich wird der Benutzer für benutzerdefinierte Prozesse in config/process.php durch user und group festgelegt. Es ist zu beachten, dass der monitor-Prozess keinen ausgeführten Benutzer haben sollte, da er höhere Berechtigungen benötigt, um ordnungsgemäß zu funktionieren.

Controller-Normen

Im controller-Verzeichnis oder in Unterverzeichnissen dürfen nur Controller-Dateien abgelegt werden; das Ablegen anderer Klassen-Dateien ist untersagt. Ansonsten könnte es bei nicht aktivierter Controller-Erweiterung dazu kommen, dass Klassendateien illegal über die URL aufgerufen werden, was zu unvorhersehbaren Folgen führen kann.
Zum Beispiel ist app/controller/model/User.php tatsächlich eine Model-Klasse, die jedoch fälschlicherweise im controller-Verzeichnis abgelegt wurde. Wenn die Controller-Erweiterung nicht aktiviert ist, können Benutzer über einen Pfad wie /model/user/xxx auf beliebige Methoden in User.php zugreifen.
Um solche Situationen vollständig zu vermeiden, wird dringend empfohlen, die Controller-Erweiterung zu verwenden, um klar zu kennzeichnen, welche Dateien Controller-Dateien sind.

XSS-Filterung

Aus Gründen der allgemeinen Anwendbarkeit führt Webman keine XSS-Escaping auf Anfragen durch. Webman empfiehlt dringend, das XSS-Escaping beim Rendern durchzuführen, anstatt es vor dem Speichern in der Datenbank zu machen. Außerdem führen Vorlagen wie twig, blade, think-template usw. automatisch XSS-Escaping durch, sodass kein manuelles Escaping erforderlich ist, was sehr praktisch ist.

Hinweis
Wenn Sie das XSS-Escaping vor dem Speichern in der Datenbank durchführen, kann dies zu Inkompatibilitätsproblemen mit einigen Anwendungs-Plugins führen.

Verhindern von SQL-Injection

Um SQL-Injection zu verhindern, sollten Sie nach Möglichkeit ORM wie illuminate/database oder think-orm verwenden und dabei vermeiden, SQL selbst zusammenzustellen.

Nginx-Proxy

Wenn Ihre Anwendung externen Benutzern zugänglich gemacht werden muss, wird dringend empfohlen, einen Nginx-Proxy vor Webman hinzuzufügen, um einige illegale HTTP-Anfragen zu filtern und die Sicherheit zu erhöhen. Weitere Informationen finden Sie im Nginx-Proxy.