[PHP] Verificatie bij HTACCES beveiligde webserver

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • vriesdude
  • Registratie: Februari 2002
  • Laatst online: 19-09 19:14
ik probeer door middel van een php script verbinding te make naar een met HTACCES beveiligde pagina om daar een actie uit te voeren, het idee werkt al in de praktijk, ik stuit alleen tegen één probleem.

Wanneer de username een @ bevat kan php zich niet authenticeren op de webserver. Hieronder volgt de code die ik gebruik.
PHP:
1
2
3
4
5
6
$webmail->user = "username@domein.nl"; 
$webmail->pass = 123; 
$cpanel_hostname = "domein.nl"; 

$url = "http://$webmail->user:$webmail->pass@$algemeen->cpanel_hostname:2095/dowebmailforward.cgi?action=delete&fwd=$forwardmailold"; 
$actie = file($url);

Dit resulteert in de volgende foutmelding...
code:
1
2
3
Warning: file(): php_network_getaddresses: getaddrinfo failed: Name or service not known in /home/site/public_html/private/include_student/page_forwarder.inc on line 32 

Warning: file(...@domein.nl:*******@www.domein.nl:2095/dowebmailforward.cgi?action=delete&fwd=afasdf" target="_blank" style="font-family: Courier, Courier New;">http://...@domein.nl:*******@www.domein.nl:2095/dowebmailforward.cgi?action=delete&fwd=afasdf): failed to open stream: Address family not supported by protocol in /home/site/public_html/private/include_student/page_forwarder.inc on line 32

ik ben dus op zoek naar een manier om het @ in de gebruikersnaam mee te kunnen zenden, maar dan bijv geescaped (zoals \" een escapde is voor ")...

of een andere manier om me aan te melden op een met htacces beveiligde pagina (ik hoef verder geen handelingen op de pagina te verrichten, alleen de pagina oproepen is voldoende).

[ Voor 8% gewijzigd door vriesdude op 08-09-2004 21:47 ]

/dev/null


  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Is een @symbool wel toegestaan als username of wachtwoord???

Maar misschien kan je het proberen om het @ symbool te vervangen door %040

Of anders zou je het met curl kunnen doen.

zoiets als
PHP:
1
2
3
4
5
6
7
8
9
10
11
$ch = curl_init();

// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_USERPWD, "user:password");
curl_setopt($ch, CURLOPT_HEADER, 0);

curl_exec($ch);

// close curl resource, and free up system resources
curl_close($ch);

Programmer - an organism that turns coffee into software.


  • Banpei
  • Registratie: Juli 2001
  • Laatst online: 25-10-2022

Banpei

Hachiroku on this touge?

Volgens mijn ondersteund de filewrapper van php geen port indicatie via http:
file wrappers

AE86 gevonden! | So what I thought I'd do was, I'd pretend to be one of those deaf-mutes.


  • vriesdude
  • Registratie: Februari 2002
  • Laatst online: 19-09 19:14
Banpei schreef op 09 september 2004 @ 10:08:
Volgens mijn ondersteund de filewrapper van php geen port indicatie via http:
file wrappers
het princiepe werkt wel als de gebruikersnaam zonder @ is, het script gebruik ik om met php email adressen aan de te maken in cPanel bij een registratie (als iemand intresse heeft, ik wil het script wel vrijgeven).

Dat gedeelte gaat prima, nu wil ik via php ook een forwarder instellen, hiervoor moet de gebruiker inloggen met ze eigen username en password. De username is het email adres, dus bestaande uit een @, daar gaat het fout..

Ik zal iig de bovengenoemde methode's even proberen.

edit: Webhost ligt er uit... :(

[ Voor 3% gewijzigd door vriesdude op 09-09-2004 11:01 ]

/dev/null


Verwijderd

Als er een @ in zit dan zal het waarschijnlijk niet werken, omdat het URL er dan als volgt uit komt te zien:
http://user@host:pass@host:port/path/to/file
En ik hoop dat je zelf ziet dat dit niet meer fatsoenlijk te parsen is.

De eerste @ moet dus ge-encode worden, en eigenlijk het wachtwoord ook maar want dat zou ook rare tekens kunnen bevatten:

PHP:
1
2
$user = urlencode($user);
$pass = urlencode($pass);


Zie ook RFC 1738, sect. 3.1.

[ Voor 18% gewijzigd door Verwijderd op 09-09-2004 11:51 ]


  • vriesdude
  • Registratie: Februari 2002
  • Laatst online: 19-09 19:14
Verwijderd schreef op 09 september 2004 @ 11:51:
Als er een @ in zit dan zal het waarschijnlijk niet werken, omdat het URL er dan als volgt uit komt te zien:


[...]


En ik hoop dat je zelf ziet dat dit niet meer fatsoenlijk te parsen is.

De eerste @ moet dus ge-encode worden, en eigenlijk het wachtwoord ook maar want dat zou ook rare tekens kunnen bevatten:

PHP:
1
2
$user = urlencode($user);
$pass = urlencode($pass);


Zie ook RFC 1738, sect. 3.1.
dat er inderdaad neit fatsoenlijk geparsed kon worden begreep ik, alleen hoe ik het moest oplossen wist ik niet, zodra me host weer up is (al sinds vanmorgen down 8)7) ga ik het proberen.

/dev/null


Acties:
  • 0 Henk 'm!

  • vriesdude
  • Registratie: Februari 2002
  • Laatst online: 19-09 19:14
Sorry voor de late reactie...Server was vorige week overspannen, we zitten nu op een eigen dedicated server

urlencode werkt... !!! bedankt

/dev/null

Pagina: 1