1. #1
    dieterm's Avatar
    Registered
    27/02/04
    Location
    Zemst
    Posts
    197
    iTrader
    3 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/0

    Arrow PHP: HTTPS / SSL beveiliging

    Hallo,

    Ik ben al een hele tijd op zoek naar uitleg over hoe ik een veilige website kan maken met behulp van een https verbinding. Ik heb momenteel een server die https ondersteunt, maar ik weet niet wat ik precies moet doen om daar gebruik van te maken (mbv php).

    Ook ben ik al verschillende keren het woord SSL tegengekomen. Ik weet dat dat wil zeggen dat de data die verstuurd wordt, geëncrypteerd wordt. Maar er is dan ook dikwijls sprake van certificaten. Wat is dat precies en hoe moet je daar mee werken in php?

    Graag had ik wat meer uitleg gehad over deze dingen, want op google vind ik enkel korte uitleg, waar ik niet zo veel van snap.

    Alvast bedankt voor jullie hulp.
    no votes  

  2. #2
    frenzal's Avatar
    Registered
    20/12/02
    Location
    Antwerpen
    Posts
    1,319
    iTrader
    8 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/1
    certificaten moet je op de webserver zef regelen en php komt daar weinig bij te kijken, en zodra je via https bezig bent worden je gegevens die je verstuurd geëncrypteerd dus uw post data zou niet zomaar onderschept kunnen worden en uitgelezen bijvoorbeeld.
    no votes  

  3. #3
    dieterm's Avatar
    Registered
    27/02/04
    Location
    Zemst
    Posts
    197
    iTrader
    3 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/0
    Kan iemand me wat meer uitleg geven over die certificaten, en hoe dat juist werkt?

    Als ik op de trefwoorden https en php zoek in google, dan kom ik regelmatig iets tegen over CURL. Op php.net heb ik in de documentatie bij de curl functies hetvolgende voorbeeld gevonden:

    PHP Code:
    <?php

        $defined_vars 
    get_defined_vars();

        
    $_url 'https://www.example.com.br';
        
    $_VAR001 'nono';
        
    $_VAR002 'nonono';

        
    $params "VAR001=$_VAR001&VAR002=$_VAR002&";

        
    $ch curl_init();
        
    curl_setopt($chCURLOPT_POST,1);
        
    curl_setopt($chCURLOPT_POSTFIELDS,$params);
        
    curl_setopt($chCURLOPT_URL,$_url);
        
    curl_setopt($chCURLOPT_SSL_VERIFYHOST,  2);
        
    curl_setopt($chCURLOPT_USERAGENT$defined_vars['HTTP_USER_AGENT']);
        
    curl_setopt($chCURLOPT_RETURNTRANSFER,1); 
        
    $result=curl_exec ($ch);
        
    curl_close ($ch);

        echo(
    "Output: ".$result);

    ?>
    Wat is het verschil tussen bovenstaande voorbeeld, en een gewone php-pagina die POST data krijgt van een htmlformulier?
    no votes  

  4. #4
    Radiance's Avatar
    Registered
    01/07/02
    Location
    Brussel
    Posts
    3,810
    iTrader
    14 (100%)
    Mentioned
    1 Post(s)
    Reputation
    0/22
    HTTPS is simpelweg de combinatie van HTTP en SSL, maar dat wist je waarschijnlijk wel.
    Een certificate is een combinatie van 2 sleutels, een private en een publieke. De publieke sleutel stuurt de webserver naar de bezoeker, de private verlaat nooit de webserver. Als bezoeker kan je nu alle data gaan encrypteren met die publieke sleutel en verzenden, die data zijn enkel te ontcijferen met de private sleutel, gevolg enkel jouw webserver kan nog gegevens lezen die bezoekers versturen. (het gaat wel iets complexer dan dat, maar da's 't idee)

    In grote lijnen regel je dat als volgt
    1. Jij (of meer waarschijnlijk : jouw webhost) maakt een certificate request klaar, da's wat commando's draaien op een *nix machine, of een wizardje doorlopen bij IIS.
    2. Je doet die request binnen bij een certificate authority (CA), dat zijn bedrijven zoals Verisign (of CAcert, het gratis alternatief). De gegevens van de CA worden mee in je certificate verwerkt, zodat mijn webbrowser kan controleren dat het certificate van bij Verisign komt en niet iemand anders jouw webserver heeft overgenomen en zelf een certificate heeft geplaatst. Dat is ook het probleem met CAcert, ik geloof niet dat zij al herkent worden door IE / FF zodat je gebruiker een waarschuwing krijgt met de vraag of ze CAcert willen vertrouwen, wat niet gebeurd bij commerciële CA's.
    3. Je installeert het certificate dat je van je CA krijgt op je server

    Of je nu al dan niet PHP gebruikt in je site is volledig naast de kwestie.
    cURL is een library van extra PHP functies en ik *denk* dat wat jij daar toont code is om gegevens van een andere HTTPS site op te halen.
    no votes  

  5. #5
    dieterm's Avatar
    Registered
    27/02/04
    Location
    Zemst
    Posts
    197
    iTrader
    3 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/0
    Radiance, bedankt voor je uitleg. Dat maakt de dingen al een stuk duidelijker
    no votes  

  6. #6
    dJeez's Avatar
    Registered
    17/07/02
    Location
    Sol System
    Posts
    10,064
    iTrader
    1 (100%)
    Mentioned
    0 Post(s)
    Reputation
    27/78
    Het stukje code dat je hebt gepost is wat een website gebruikt om data te posten naar een andere website via https.

    Als je eigen website over https wordt benaderd hoef je echter NIKS te wijzigen wat form afhandeling ed meer betreft, aangezien HTTPS slaat op het transport van de data, niet op de verwerking ervan door server side scripts (of dat nu een PHP script of enige andere vorm van server side scripting is doet trouwens niet terzake).
    PSN: dJeezBE - Delicious bookmarks
    Disclaimer: I am currently suffering from severe CSD (Compulsive Sarcasm Disorder). - L'onion fait la farce - Facile largire de alieno
    Pastafarian by choice
    no votes  

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Log in

Log in