tbee's page
   home  work  myself  mixed  guestbook  
   
      INHALT MySQL Sicherheitsrichtlinien zum Betrieb von Mysql

Wer mir was gutes tun will kauft über diesen Link bei Amazon ein !

Sicherheitsrichtlinien zum Betrieb von Mysql

Modifizierter Auszug aus den MySQl Handbuch

Wenn Sie MySQL laufen lassen, sollten Sie möglichst immer folgende Richtlinien beachten:

  • GEBEN SIE NIEMALS JEMANDEM AUSSER DEM MySQL-ROOT-BENUTZER ZUGRIFF AUF DIE user-TABELLE IN DER mysql-DATENBANK! Das verschlüsselte Passwort ist das echte Passwort in MySQL.
  • Checkliste:
    • Probieren Sie mysql -u root. Wenn es Ihnen gelingt, sich erfolgreich mit dem Server zu verbinden, ohne nach einem Passwort gefragt zu werden, haben Sie ein Problem!
    • Benutzen Sie den Befehl SHOW GRANTS und prüfen Sie nach, wer Zugriff auf was hat.
  • Keine Klartext-Passwörter in Ihrer Datenbank.
    Benutzen Sie statt dessen MD5() oder eine andere Einweg-Hash-Funktion.
  • Benutzen Sie keine Passwörter aus Lexika
  • Investieren Sie in eine Firewall.
  • Trauen Sie keinen Daten, die von Benutzern eingegeben werden. Sie können versuchen, Ihren Code auszutricksen, indem Sie spezielle oder escapete Zeichenfolgen in Web-Formulare, URLs oder sonstige Applikationen, die Sie hergestellt haben, eingeben.
    Stellen Sie sicher, dass Ihre Applikation sicher bleibt, wenn ein Benutzer etwas wie ``; DROP DATABASE mysql;'' eingibt. Das ist ein extremes Beispiel, aber große Sicherheitslücken und Datenverlust können eintreten, wenn ein Hacker ähnliche Techniken benutzt und Sie nicht darauf vorbereitet sind.
    Denken Sie auch daran, numerische Daten zu überprüfen.
    Die einfachste Art, sich vor dieser Art von Angriffen zu schützen, ist, Apostrophe um numerische Konstanten herum zu benutzen: SELECT * FROM tabelle WHERE ID='234' statt SELECT * FROM tabelle WHERE ID=234.
  • Checkliste:
    • Alle Web-Applikationen:
      • Versuchen Sie, `'' und `"' in alle Ihr Web-Formulare einzugeben. Wenn Sie irgend welche MySQL-Fehler erhalten, untersuchen Sie das Problem unverzüglich!
      • Versuchen Sie, jedwede dynamischen URLs zu ändern, indem Sie %22 (`"'), %23 (`#') und %27 (`'') zu den URLs hinzufügen.
      • Versuchen Sie, Datentypen in dynamischen URLs von numerischen zu Zeichentypen zu ändern, die Zeichen aus den vorherigen Beispielen enthalten.
      • Versuchen Sie Buchstaben, Leerzeichen und Sonderzeichen anstelle von Zahlen in numerische Felder einzugeben.
      • Überprüfen Sie Datengrößen, bevor Sie sie an MySQL übergeben.
      • Überlegen Sie, ob es sinnvoll ist, dass sich Ihre Applikation mit einem anderen Benutzernamen mit der Datenbank verbindet als mit dem, den Sie für Verwaltungszwecke benutzen. Geben Sie Applikationen nicht mehr Zugriffsberechtigungen als sie brauchen.
    • Benutzer von PHP:
      • Sehen Sie sich die addslashes()-Funktion an. Ab PHP 4.0.3 ist eine mysql_escape_string()-Funktion verfügbar, die auf der Funktion mit demselben Namen in der MySQL-C-API basiert.
  • Übermitteln Sie keine Klartextdaten (unverschlüsselte Daten) über das Internet. Diese Daten sind für jeden zugänglich, der Zeit und Möglichkeit hat, sie abzuhören und sie für die eigenen Zwecke zu benutzen. Benutzen Sie statt dessen ein verschlüsseltes Protokoll wie SSL oder SSH.

Wie Sie MySQL gegen Cracker sicher machen

Um ein MySQL-System sicher zu machen, sollten Sie auf jeden Fall folgende Vorschläge in Betracht ziehen:

  • Benutzen Sie Passwörter für alle MySQL-Benutzer.
  • Lassen Sie den MySQL-Daemon nicht als Unix-root-Benutzer laufen.
  • Unterstützen Sie keine Symlinks auf Tabellen
  • Überprüfen Sie, dass der Unix-Benutzer, der mysqld laufen läßt, der einzige Benutzer mit Lese-/Schreibzugriffen auf die Datenbankverzeichnisse ist.
  • Geben Sie nicht allen Benutzern das process-Zugriffsrecht
  • Geben Sie nicht allen Benutzern das file-Zugriffsrecht
  • Wenn Sie Ihrem DNS nicht trauen, sollten Sie IP-Nummern anstelle von Hostnamen in den Berechtigungstabellen verwenden. In jedem Fall sollten Sie sehr vorsichtig damit sein, Einträge in Berechtigungstabellen vorzunehmen, die Hostnamen mit Platzhaltern (Wildcards) verwenden!
  • Wenn Sie die Anzahl der Verbindungen für einen einzelnen Benutzer beschränken wollen, können Sie das tun, indem Sie die max_user_Verbindungen-Variable in mysqld setzen.
Tools zur Administration von Mysql Links zu MySQL

 

Druckerversion     [valid html 4.01]      [english]
style: blauer Stylegelber Styleroter Stylegruener StyleStandard Style
© 2001 by  tbee / Impressum last update at: 14.05. 2003 22:05:00
url: www.tbee.de/mysql/t5_mysql_administration_sicherheit.php