2016-08-08 5 views
-1

Ich benutze curl in PHP wie https://github.com eine https-Website zu beantragen, und ich verwende nur Code wie folgt aus:Warum brauche ich nicht SSL Kontrolle zu vermeiden, sondern kann HTTPS-Ressource anfordern, wenn ich PHP cURL verwenden

<?php 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, "https://github.com/search?q=react"); 
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET'); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    $output = curl_exec($ch); 

    echo $output; 

    curl_close($ch);  
?> 

Dann kann ich die Seite bekommen.

Aber, suchte ich vor und stellte fest, dass, wenn die Beantragung eines https Ressource, muss sie diese Codes hinzufügen:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); 

Also, warum ich https Ressource ohne diese beiden Zeilen Code anfordern können SSL-Check zu vermeiden ?

Danke.

+2

Sie brauchen diese 2 nicht und wollen sie wahrscheinlich auch nicht –

+0

Sie brauchen auch nicht die Zeile 'CURLOPT_CUSTOMREQUEST' - ein' GET' ist bereits voreingestellt. Verwenden Sie keinen Code, ohne zu verstehen, was er tut. – ceejayoz

Antwort

2

Die beiden Curl-Optionen sind wie folgt definiert:

CURLOPT_SSL_VERIFYPEER - gegen Host

überprüfen das Zertifikat des
Name - SSL-Zertifikat

und

CURLOPT_SSL_VERIFYHOST des Peer überprüfen

Beide sind in Curl standardmäßig auf true eingestellt und sollten nur deaktiviert werden, wenn Sie einen guten Grund haben. Sie zu deaktivieren ist in der Regel nur erforderlich, wenn Sie Anfragen an Server mit ungültigen oder selbstsignierten Zertifikaten senden, was normalerweise nur in der Entwicklung ein Problem darstellt. Jede öffentlich zugängliche Site sollte ein gültiges Zertifikat enthalten. Wenn Sie diese Optionen deaktivieren, öffnen Sie sich möglicherweise selbst für Sicherheitsprobleme.

+0

OK, ich habe es. Vielen Dank. – StinsonZhao

Verwandte Themen