PHP gevorderde |
|
Om toegang te krijgen tot resources die "beveiligd" zijn met HTTP Basic Access Authentication moet elke HTTP request naar de resource de volgende header bevatten:
Authorization: Basic dXNlcjpwYXNzd29yZA==
Authorization: Basic dXNlcjpwYXNzd29yZA==
Met de string achter "Basic" een base64 geëncodeerde string van de combinatie "login:wachtwoord"
Om met file_get_contents() HTTP headers te specifiëren moet je een zogenaamde stream context creëren in PHP die je dan als paramater doorgeeft aan file_get_contents()
Bijvoorbeeld:
<?
$options = array('http'=>array('method'=>"GET",
'header'=>"Authorization: Basic ".base64_encode("login:wachtwoord")."==\r\n"));
$context = stream_context_create($opts);
$file = file_get_contents('http://www.example.com/authorized_acces.htm', false, $context);
?>
<? $options = array('http'=>array ('method'=>"GET", 'header'=>"Authorization: Basic ".base64_encode("login:wachtwoord")."==\r\n")); $file = file_get_contents('http://www.example.com/authorized_acces.htm', false, $context); ?>
Let wel op, Basic Acces Authentication is zeer onveilig aangezien de credentials quasi verzonden worden als plain text(base64 encoded weliswaar).
Voor een veiligere HTTP Authenticatie techniek gebruik je best Digest Access Authentication(http://en.wikipedia.org/wiki/Digest_access_authentication). |