apikey schützen

  • Hi,


    dafür fällt mir gerade nur ein diesen zu verschlüsseln.

    Warum willst du deinen API Key schützen? Ist er nicht schon sicher?

    Es ist so der url wird ja im Quelltext angezeigt und das möchte ich verhindern falls das geht

  • Ein PHP-Skript, das die API mit file_get_contents ausliest. Dann steht der Key nur im PHP-Code und der ist im Browser nicht sichtbar. Die Daten kannst Du dann gleich in PHP auswerten, wenn sie in HTML umgesetzt werden sollen, oder an ein Javascript übergeben, das sie clientseitig verarbeitet.

  • function getThem(selHeader, selSection, url) {

    function populateHeader(jsonObj) {

    var myH1 = document.createElement('h1');

    myH1.textContent = jsonObj['squadName'];

    header.appendChild(myH1);

    var myPara = document.createElement('p');

    myPara.textContent = '' + jsonObj.result.test

    header.appendChild(myPara);

    }

    var header = document.querySelector(selHeader);

    var section = document.querySelector(selSection);

    var requestURL = url;

    var request = new XMLHttpRequest();

    request.open('GET', requestURL);

    request.responseType = 'json';

    request.send();

    request.onload = function () {

    var superHeroes = request.response;

    populateHeader(superHeroes);

    // showHeroes(superHeroes);

    }

    }

    getThem('#api', 'section', 'apikeyhier')




    Also wie würde das anhand von dem code gehen?

  • Wenn das so aussieht, ist es relativ einfach: Die URL brauchst Du nicht als Parameter. Statt direkt die API-URL zu lesen, ruft Du ein PHP-Skript auf deinem Server auf:


    getdata.php:

    PHP
    <?php
    $theurl ='die-url-der-API-mit-key';
    // die API auslesen
    $response = file_get_contents($theurl);
    // und den Inhalt ausgeben
    echo $response;
    // ginge auch mit einem Einzeiler,
    // aber so ist es IMO übersichtlicher
        ?>

    Die URL mit dem Key steht jetzt nur noch im PHP-Skript und das ist im Browser nicht sichtbar.

    Ungestestet aber ich bin relativ sicher, dass es so funktionieren wird.

  • Ich habe jetzt mal nachgeschaut aber es funktionier nicht ich denke es liegt daran getThem('#api', 'section'/*, 'apikeyhier'*/)Da dort normalerweise der apikey reinkommt

  • Aber das ist ja gerade der Sinn der Sache, dass der Key nicht mehr im Quelltext deiner Seite steht.

    Wie hast Du denn getestet? Auf deinem Webspace oder mit lokalem Webserver?

    Ich schrieb ja, dass ich es nicht getestet habe, es können also noch Fehler drin sein.

    Poste am besten erst Mal das neue Javascript und das PHP, Key kannst Du ja löschen.

  • Hab mal hier ein Beispiel. Ich habe es schon auf meinen Vserver verschoben da geht es aber auch nicht

  • Dann müssen wir mal debuggen. Schalte die Fehleranzeigen im PHP-Skript ein:

    Dann rufe es direkt im Browser auf ohne das Javascript.

  • Das sieht ja schon Mal gut aus! Dann sollten wir im JS weiter debuggen: Füge eine Consolausgabe ein:

    Code
                request.onload = function () {
                    var superHeroes = request.response;
                    console.log(superHeroes);
                    populateHeader(superHeroes);
                    // showHeroes(superHeroes);
                }
  • Das sieht ja schon Mal gut aus! Dann sollten wir im JS weiter debuggen: Füge eine Consolausgabe ein:

    Code
                request.onload = function () {
                    var superHeroes = request.response;
                    console.log(superHeroes);
                    populateHeader(superHeroes);
                    // showHeroes(superHeroes);
                }

    Das hab ich ja schon drinnen stehen request.open('GET', 'getdata.php'); request.responseType = 'json'; request.send(); request.onload = function () { var superHeroes = request.response; populateHeader(superHeroes); // showHeroes(superHeroes); }

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!