Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Warum nicht die integrierten MySQL-Benutzer und -Berechtigungen für eine Website verwenden?

MySQL-Benutzer sind für die Benutzer des MySQL-Servers selbst. Diese Benutzer sollten nur dem Serveradministrator oder Anwendungen vorbehalten sein, für deren Ausführung ein Benutzer erforderlich ist (geben Sie jeder Anwendung einen separaten Benutzer). Das MySQL-Benutzerverwaltungssystem wurde speziell für den kontrollierten Zugriff auf die auf dem Server laufende Datenbank entwickelt und NICHT als Grundlage für die Benutzerauthentifizierung in einer Webanwendung. Darüber hinaus erfordern alle Datenbankerweiterungen (und Benutzererstellungen), dass Sie einen Benutzer haben, der die Anwendung ausführt, der über diese Berechtigungen für die Datenbank verfügt. Auch wenn es sich nicht um eine direkte Schwachstelle handelt, könnte sie Ihr Leben erheblich verschlechtern, wenn eine in Ihrem PHP-System gefunden wird.

Sie möchten niemals, dass Ihre Anwendung Ihren MySQL-Datenbank-Namespace mit zusätzlichen Datenbanken oder (Tabellen für diese Angelegenheit) verschmutzen kann. Während des Betriebs Ihrer Anwendung sollte sie nur in der Lage sein, Datensätze mit dem Prinzip der geringsten Berechtigung , was bedeutet, dass Sie Ihrem Datenbankbenutzer Zugriff gewähren, damit er nur die Dinge tun kann, die er benötigt, und nicht mehr.

Verwenden Sie zum Passwort-Hashing bcrypt über die Funktion crypt() von PHP . Speichern Sie das in der Datenbank innerhalb einer Benutzertabelle.