Thread: PHP: HTTPS / SSL beveiliging
-
26-07-2007, 15:26 #1Member
- Registered
- 27/02/04
- Location
- Zemst
- Posts
- 197
- iTrader
- 3 (100%)
- Mentioned
- 0 Post(s)
- Reputation
- 0/0
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.>>> Pacific Boardshop <<<no votes
-
-
26-07-2007, 17:55 #2Member
- 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
-
26-07-2007, 20:02 #3Member
- 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:
Wat is het verschil tussen bovenstaande voorbeeld, en een gewone php-pagina die POST data krijgt van een htmlformulier?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($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$params);
curl_setopt($ch, CURLOPT_URL,$_url);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_USERAGENT, $defined_vars['HTTP_USER_AGENT']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
$result=curl_exec ($ch);
curl_close ($ch);
echo("Output: ".$result);
?>>>> Pacific Boardshop <<<no votes
-
26-07-2007, 20:08 #4Verwarmingselement
- 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
-
26-07-2007, 20:21 #5Member
- 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
>>> Pacific Boardshop <<<no votes
-
26-07-2007, 21:12 #6Member
- 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 alienoPastafarian by choiceno votes
