[PHP] Client Side Authentication

Pagina: 1
Acties:
  • 108 views sinds 30-01-2008
  • Reageer

  • Glock
  • Registratie: November 2001
  • Niet online
Ik ben bezig een script te sturen naar een server dat vraagt om een authentication, basic.
Dit zijn de headers die mijn script verstuurd:
code:
1
2
3
4
GET /exchange/LogonFrm.asp?mailbox=naam HTTP/1.0
Host: de-host
User-Agent: PHP/4.1.1
Authorization: Basic base64-encoded-user:pass

alleen nu krijg ik dit terug:
code:
1
2
3
4
5
6
7
8
9
10
HTTP/1.0 401 Unauthorized
Date: Thu, 14 Feb 2002 15:43:33 GMT
Server: Microsoft-IIS/4.0
Www-Authenticate: Basic realm="123.456.789.000"
Content-Length: 0
Content-Type: text/html
Set-Cookie: ASPSESSIONIDGQQGQRJN=NLKDILLAHGECFIPHFJBHNAOB; path=/
Cache-Control: private
Age: 197
Via: HTTP/1.0 inktomi-cluster (Traffic-Server/3.5.7 [uSc s f p eN:tUc  i p sS])

Dit is mijn script:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?
error_reporting (E_ALL ^ E_NOTICE);

$user = "gebruiker";
$pass = "password";

$request  = "GET /exchange/LogonFrm.asp?mailbox=$user HTTP/1.0\r\n";
$request .= "Host: de-host\r\n";
$request .= "User-Agent: PHP/".phpversion()."\r\n";
$request .= "Authorization: Basic ".base64_encode($user.":".$pass)."\r\n";
$request .= "\r\n";

$fs  = fsockopen("host", 80);
$put = fputs($fs, $request);

echo $request;

while (!feof($fs)) {
    $buffer = fgets($fs, 4096);
    echo $buffer;
}

fclose ($fs);
?>

Het probleem dus: Ik verstuur een authentication maar om een of andere reden pakt de server het niet :(

Voor alle duidelijkheid: Ik heb hier verders niks over kunnen vinden. De gebruikersnaam en password zijn ook 3-dubbel gecontroleerd.

  • MikeN
  • Registratie: April 2001
  • Laatst online: 15-09 18:48
Ow, enne, via Internet Explorer lukt het natuurlijk wel :)

Ja, * MikeN is er ook mee bezig..

Acties:
  • 0 Henk 'm!

  • Glock
  • Registratie: November 2001
  • Niet online
Schop, beetje vroeg maar ben vanavond op vak :P

Acties:
  • 0 Henk 'm!

  • chem
  • Registratie: Oktober 2000
  • Laatst online: 11-09 11:19

chem

Reist de wereld rond

moet je die : wel mee-encoden?

Klaar voor een nieuwe uitdaging.


Acties:
  • 0 Henk 'm!

  • eek
  • Registratie: Februari 2001
  • Laatst online: 06-04-2020

eek

@MagickNET

PHP:
1
2
3
<?
$bla = file("http://$user:$pass@host.ext/exchange/LogonFrm.asp?mailbox=$user");
?>

zou ook wel eens kunnen werken.

Skill is when luck becomes a habit.


Acties:
  • 0 Henk 'm!

  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 25-09-2023

Als je de string $username en de string $password hebt, dan moet je de string "$username:$password" base64-encoden.

Zie eventueel de http/1.0 (of 1.1) RFC
(via goole.com rfc+http en je komt er wel).

Als dit tenminste was wat je wilde weten :?


[edit] Ooops. Was even vergeten dat php dit automatisch al netjes voor je doet bij de fopen... sorry :+

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]


Acties:
  • 0 Henk 'm!

  • Glock
  • Registratie: November 2001
  • Niet online
Tis gefixed.

Dat stomme (zachtjes uitgedrukt) Outlook stuurt eerst ook nog een Cookie, die ie ook terug wil ontvangen.....

Misschien handig, mocht iemand ooit nog eens met hetzelfde probleem zitten.

Toen het ASPSESSIONID werd teruggestuurt werkte het dus wel....
Pagina: 1