Ankündigung

Einklappen
Keine Ankündigung bisher.

Datenbank schützen, SQL abfragen mit Passwort Übergabe, SSL-Verschlüsselung

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Datenbank schützen, SQL abfragen mit Passwort Übergabe, SSL-Verschlüsselung

    Hey Leute,

    ich bin jetzt soweit, dass ich zum ersten Mal in meinem jungen Programmiererleben eine Datenbank online anlege (strato) und Kundendaten speichern werde.

    Hier meine Fragen:
    1. Bisher habe ich meine Datenbanken und Tabellen offline nicht mit Passwort geschützt. Wenn ich es nun tue, muss ich doch mit jeder Abfrage das Passwort übergeben? Schreibe ich es einfach offen in den PHP-Code? Ich habe mal gehört, dass man es auch in einem sicheren Verzeichnis in einer externen Datei abspeichern kann. (stelle ich mir sehr zeitaufwendig vor, wenn ich 100 Abfragen in einem Prozess starte...)
    Gibt es dazu irgendwo schon ein gutes Tutorial oder eine gute Beschreibung über dieses Thema?
    2. Ist eine SSL-Verschlüßelung sinnvoll? (STRATO SSL Single Domain gibts für 4.90€/Monat)

    Danke schonmal!


  • #2
    Hallöchen,

    die sensiblen Zugangsdaten parkst du idealerweise außerhalb des DocumentRoots. Beispiel:

    Code:
    /config
        db.php
    /web -> DocumentRoot
        index.php
    Wenn du nun irgendwo eine Datenbankverbindung herstellst (via PDO o.ä.) holst du dir vorher die Zugangsdaten aus der db.php. Das macht deine Anwendung nicht per se sicher, aber es ist ein guter Anfang.

    Da die Kommunikation zwischen PHP-Script und Datenbank serverseitig stattfindet, wird dir ein SSL-Zertifikat für eine Domain wenig nützen. Du kannst dich via SSL allerdings auch mit einem SQL-Server verbinden. Inwiefern das von Strato angeboten wird, weiß ich nicht.

    Viele Grüße
    lotti
    [SIZE="1"]Atwood's Law: any application that can be written in JavaScript, will eventually be written in JavaScript.[/SIZE]

    Kommentar


    • #3
      Zitat von lottikarotti Beitrag anzeigen
      Hallöchen,

      die sensiblen Zugangsdaten parkst du idealerweise außerhalb des DocumentRoots. Beispiel:

      [code]/config

      Da die Kommunikation zwischen PHP-Script und Datenbank serverseitig stattfindet, wird dir ein SSL-Zertifikat für eine Domain wenig nützen. Du kannst dich via SSL allerdings auch mit einem SQL-Server verbinden. Inwiefern das von Strato angeboten wird, weiß ich nicht.

      Viele Grüße
      lotti
      Kann man gegen Aufpreis erwerben.

      Aber ich glaube der TO hat da ein ganz anderes Verständnisproblem wenn ich das richtig verstanden habe.

      NEin du schickst nicht bei jedem Webservice Request die Login Daten mit. Der Login wird einmalig gemacht. Hierbei rufst du ein PHP script auf mit den POST Parametern Loginname und PAsworthash (Niemals der echte Passwort). Hierbei hilft Dir eine SSL Verbindung dann natürlich auch Deine Sicherheit zu verbessern, da diese Kommunikation nicht so leicht durch einen MITM abgefangen werden kann.
      Stellt nun das Loginscript fest, dass die korrekten Daten geschickt wurden, erstellst du eine Session und eine SessionID. Diese ID fragst du dann ganz einfach bei jedem weiteren PHP Script das du als Webservice benutzt ab und schaust ob es sie gibt. Wenn ja, dann kannst Du sicher sein, dass immer der gleiche Client diese Anfragen stellt und damit authorisiert ist. Um die Verbindung zu kappen killst du einfach die Session. Fertig.

      Gruß

      Claus
      Pre-Coffee-Posts sind mit Vorsicht zu geniessen!

      Kommentar


      • #4
        Hallo Claus und lotti,

        danke schonmal für eure Postings.

        Ich habe breits ein Login programmiert. Ihr meint doch das mit $_SESSION? Dafür würde ich auch die SSL-Verschlüßelung buchen, weil ja am Anfang ein Passwort zum Server gebracht werden muss. Außerdem registrieren sich die Leute ja bei mir...

        Ich gebe zu, dass das Thema mich etwas überfordert, deswegen habe ich mich vielleicht unklar ausgedrückt. Es geht jetzt nur um den Schutz meiner Datenbank (PHPmyAdmin) vor äußeren Zugriffen.
        Ich glaube lottikarotti geht in die Richtung, die mich interessiert. Mir fehlen da glaube ich nur ein paar Zwischenschritte. Gibts das Schritt für Schritt erklärt irgendwo?

        Sorry für meine Unkenntnis!

        Kommentar


        • #5
          Was willst du denn schützen? Bzw wo siehst du denn eine Gefahr das jeamand deine Datenbank hackt?

          Und nein, ien Passwort selber wird NIEMALS übers INET transportiert. Es wird immer nur der HASH transportiert!

          Gruß

          Claus
          Pre-Coffee-Posts sind mit Vorsicht zu geniessen!

          Kommentar


          • #6
            Ich frage mal anders herum: Was hindert jemanden externen daran auf meine Datenbanken zuzugreifen, in denen sich z.B. Kundendaten befinden? Habe da wirklich keine Ahnung!!!

            Kommentar


            • #7
              Zitat von ballotade Beitrag anzeigen
              Ich frage mal anders herum: Was hindert jemanden externen daran auf meine Datenbanken zuzugreifen, in denen sich z.B. Kundendaten befinden? Habe da wirklich keine Ahnung!!!
              Indem du die Zugangsdaten nicht fahrlässig irgendwo herumliegen lässt. Die häufigsten Hacks geschehen meiner Ansicht nach so, dass die Rechner der Programmierer gehackt werden, die die Passwörter auf ihren Rechnern gespeichert haben.

              Kommentar


              • #8
                Genau. Am einfachsten du steigst um auf Mac

                SCNR

                Claus
                Pre-Coffee-Posts sind mit Vorsicht zu geniessen!

                Kommentar


                • #9
                  MAC ist zu teuer.

                  Also heißt das ich brauche meine Datenbanken nicht mit Passwort versehen?

                  Kommentar


                  • #10
                    Die sind doch mit Passwort versehen
                    Pre-Coffee-Posts sind mit Vorsicht zu geniessen!

                    Kommentar


                    • #11
                      Zitat von Thallius Beitrag anzeigen
                      Hierbei rufst du ein PHP script auf mit den POST Parametern Loginname und PAsworthash (Niemals der echte Passwort).
                      Wer macht das denn bitte so?
                      [QUOTE=nikosch]Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.[/QUOTE]

                      Kommentar


                      • #12
                        Zitat von Thallius Beitrag anzeigen
                        Und nein, ien Passwort selber wird NIEMALS übers INET transportiert. Es wird immer nur der HASH transportiert!
                        WTF? Wenn du über ein Formular deinen Usernamen und ein Passwort abschickst, wird das sehr wohl im Klartext an den Server übertragen. SSL bietet hier lediglich eine Verschlüsselung des Transports zwischen Browser und Server an.

                        Kommentar


                        • #13
                          Nicht wenn ich das Passwort schon auf dem Client hashen und dann via POST Request (AJAX) an den Server schicke. Schrieb ich aber bereits.

                          Gruß

                          Claus
                          Pre-Coffee-Posts sind mit Vorsicht zu geniessen!

                          Kommentar


                          • #14
                            Das bringt dir nur nichts. Jeder Angreifer sieht im Quelltext, welches Verfahren du einsetzt und kann den gehashten Wert abfangen und manuell übermitteln. Ein Klartext-Passwort ist für diesen Angriff nicht notwendig.

                            Client-seitiges Hashen bringt dir keinen einzigen Tropfen Sicherheit.
                            [URL="https://github.com/chrisandchris"]GitHub.com - ChrisAndChris[/URL] - [URL="https://github.com/chrisandchris/symfony-rowmapper"]RowMapper und QueryBuilder für MySQL-Datenbanken[/URL]

                            Kommentar


                            • #15
                              Zitat von ChristianK Beitrag anzeigen
                              Das bringt dir nur nichts. Jeder Angreifer sieht im Quelltext, welches Verfahren du einsetzt und kann den gehashten Wert abfangen und manuell übermitteln. Ein Klartext-Passwort ist für diesen Angriff nicht notwendig.

                              Client-seitiges Hashen bringt dir keinen einzigen Tropfen Sicherheit.
                              Doch es ist eine Sicherheit für den Benutzer, das sein Passwort nicht im Internet rumschwirrt. Viele User benutzen das gleiche für verschiedene Plattformen. In meinem Fall kommt das Passwort des Benutzers niemals von seinem Rechner weg. Also selbst wenn sich einer dazwischen setzt und den HASH abfängt, kann er zwar auf diese eine Plattform drauf aber nicht auf irgendwelche anderen.
                              Und jetzt sag nicht da ist der Benutzer selber schuld. Ich glaube kaum, dass Du für jedes Forum im Internet ein eigenes Passwort benutzt, es sei denn Du bist nur auf einem.

                              Gruß

                              Claus
                              Pre-Coffee-Posts sind mit Vorsicht zu geniessen!

                              Kommentar

                              Lädt...
                              X