tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
430
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    zeRrY zeRrY ist offline Rookie
    Registriert seit
    May 2009
    Beiträge
    9
    Hallo,
    ich habe folgendes Problem, ich soll mithilfe eines PHP Scriptes (api) Daten aus einer externen Datenbank lesen (das Script wird auf dem entfertem Rechner liegen). Diese Daten sollen nun, wenn ich die Datei von dem entferntem Rechner via Internet aufrufe , in meine eigene Datenbank übermittelt werden. Natürlich sollen die übermittelten Daten auch nicht für jeden zugänglich sein.
    Ich habe mich so gut es ging informiert und habe mal angefangen ein solches Script zu schreiben, bin mir aber nicht sicher, ob dieses Verfahren "OK" ist oder ob es bessere gibt, bzw wie ich diese Daten verschlüsselt bekomme und anschließen entschlüsselt und ausgelesen.

    lg, zeRrY

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    
    <?php
        $_db_host = "localhost";
        $_db_username = "username";
        $_db_passwort = "password";
        $_db_datenbank = "datenbank";
     
        $_link = mysql_connect($_db_host, $_db_username, $_db_passwort);
     
        if (!$_link)
            {
            die("Keine Verbindung zur Datenbank möglich: " .
                mysql_error());
            }
        mysql_select_db($_db_datenbank, $_link);
        
        $result = mysql_query("SELECT * FROM tbl_user");
     
        $recipes = array();
        while($recipe = mysql_fetch_array($result, MYSQL_ASSOC)) {
           $recipes[] = array('post'=>$recipe);
         }
     
        $output = json_encode(array('posts' => $recipes));
     
        echo $output;
     
        mysql_close($_link);
    ?>
     

  2. #2
    Thomasio Thomasio ist offline Mitglied Platin
    Registriert seit
    Aug 2006
    Beiträge
    685
    Ob du die Daten verschlüsselt sendest oder nicht hat im Prinzip nichts damit zu tun, ob jemand anders Zugriff drauf hat.
    Wenn das PHP Script auf einem öffentlich zugänglichen Rechner liegt, dann kann jeder der die Adresse vom Script kennt es aufrufen.
    Noch schlimmer, von reinen PHP Scripts ohne jeglichen HTML Inhalt kann mit einigen Downloadmanagern der Quelltext runtergeladen werden, sprich jeder der die Adresse von deinem Script kennt und einen guten Downloadmanager hat, kann die Zugangsdaten deiner Datenbank auslesen.

    Du musst also zuerst mal das Script selber vor unbefugten Zugriffen schützen, vielleicht mit einem HTML Formular, wo du ein Passwort eingeben musst um das Script überhaupt aufrufen zu können, dann musst du dem Script einen HTML Inhalt geben und wenn du dann noch mehr Sicherheit willst, kannst du die Daten zusätzlich noch verschlüsseln.

    Das Grundgerüst würde dann etwa so aussehen:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    <?php
    if($_POST['passwort'] != "passwort")
    {
    exit;
    }
     
    // hier dein Code
     
    exit;
    ?>
    <! Hacker vergiss es>
     

  3. #3
    Avatar von ComFreek
    ComFreek ComFreek ist gerade online [x] Let it be logic!
    tutorials.de Moderator
    Registriert seit
    Jun 2009
    Beiträge
    2.364
    Blog-Einträge
    4
    Zitat Zitat von Thomasio
    Noch schlimmer, von reinen PHP Scripts ohne jeglichen HTML Inhalt kann mit einigen Downloadmanagern der Quelltext runtergeladen werden, sprich jeder der die Adresse von deinem Script kennt und einen guten Downloadmanager hat, kann die Zugangsdaten deiner Datenbank auslesen.
    Solange der Server richtig konfiguriert ist, kann niemand (ohne physischen Zugriff) den Quelltext des PHP-Skriptes sehen.
    Ich glaube, du meinst eher die Ausgabe des PHP-Skriptes, und das sind einige MySQL-Daten als JSON.

    Zitat Zitat von zeRrY
    bzw wie ich diese Daten verschlüsselt bekomme und anschließen entschlüsselt und ausgelesen.
    Meinst du die Daten auf Server A verschlüsseln, auf Server B (dein Skript) die Daten holen und wieder entschlüsseln?
    Das geht natürlich, das würde dann eventuelles Abfangen des Netzverkehrs sinnlos machen (, solange der Angreifer nicht im Besitz des Passworts ist und der Verschlüsselungs-Algorithmus gut gewählt ist).

    Wenn du den Zugriff auf das Ausführen des PHP-Skriptes (und dessen Ausgabe) verhindern möchtest, kannst du entweder eine Login-Form - wie Thomasio erwähnte - erstellen oder auch einen .htaccess-Schutz implementieren.
     
    mfg ComFreek

    Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
    Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
    [PHP] Überprüfen, ob Website erreichbarSicherheit in PHP-Codes schaffenGoogle Chrome-Extension für tutorials.dejson_compress()

  4. #4
    Thomasio Thomasio ist offline Mitglied Platin
    Registriert seit
    Aug 2006
    Beiträge
    685
    Solange der Server richtig konfiguriert ist ...
    DAS ist immer die Frage.
    Keine Ahnung ob sich das in letzter Zeit geändert hat, oder ob ich ausgerechnet immer an die Provider geraten bin, die es nicht richtig machen, als ich das Ganze vor ein paar Jahren getestet habe konnte ich von sämtlichen Providern die ich kenne PHP Quelltext runterladen, solange nicht wenigstens ein <!> ausserhalb vom PHP stand.
    Natürlich nicht mit jedem Downloadmanager, da braucht es schon etwas Gutes, aber die Leute, die sowas probieren wollen, die haben halt genau diese.
    Ich habe mir damals einfach angewöhnt grundsätzlich eine HTML Zeile unter das Ende von jedem Script zu machen, egal ob nötig oder nicht, schaden kanns nicht.
     

Ähnliche Themen

  1. Daten aus .ini auslesen und verwenden
    Von Golumserbe im Forum C/C++
    Antworten: 16
    Letzter Beitrag: 08.06.10, 19:22
  2. Daten aus MySQL auslesen
    Von gelaniee im Forum Flash Plattform
    Antworten: 4
    Letzter Beitrag: 29.06.09, 18:50
  3. Daten aus MySql-DB auslesen
    Von Ilona85 im Forum Visual Basic 6.0
    Antworten: 2
    Letzter Beitrag: 23.01.06, 11:33
  4. mysql Daten in Borland C++ Builder verwenden
    Von maexle1894 im Forum Borland CBuilder und VCL
    Antworten: 11
    Letzter Beitrag: 12.03.05, 12:34
  5. Daten aus mySQL auslesen
    Von Sebastian Wramba im Forum PHP
    Antworten: 7
    Letzter Beitrag: 05.01.02, 14:48