[PHP] PHP_AUTH_USER instellen voor Inloggen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo, ik log momenteel in op een beveiligd gedeelte van de website via zo'n login scherm van de browser. Echter wil ik een formulier maken met daarop de gebruikersnaam en wachtwoord en zodoende in te loggen zonder het venster van de browser login.

Ik werk via htaccess / htpassw
Iemand een idee of dit uberhaubt wel mogelijk is? 8)7
code:
1
2
3
4
5
6
7
8
<?php
$_SERVER['REMOTE_USER']=$_POST['gebruikersnaam'];
$_SERVER['PHP_AUTH_USER']=$_POST['gebruikersnaam'];
$_SERVER['PHP_AUTH_PW']=$_POST['wachtwoord'];
$_SERVER['AUTH_TYPE']="Basic";
$_SERVER['HTTP_AUTHORIZATION']="Basic aW50ZXJheTp0ZXR0ZXJv";
$_SERVER['HTTP_CONNECTION']="Keep-Alive";
$_SERVER['PATH']="/bin:/usr/bin";

?>

Acties:
  • 0 Henk 'm!

  • DiedX
  • Registratie: December 2000
  • Laatst online: 20:05
Als ik je vraag goed destilleer: ik wil van .htaccess over naar een formulier-based authenticatie?

If so: check $_SESSION.

DiedX supports the Roland™, Sound Blaster™ and Ad Lib™ sound cards


Acties:
  • 0 Henk 'm!

  • iMars
  • Registratie: Augustus 2001
  • Nu online

iMars

Full time prutser

Verwijderd schreef op zondag 24 december 2006 @ 16:12:
Hallo, ik log momenteel in op een beveiligd gedeelte van de website via zo'n login scherm van de browser. Echter wil ik een formulier maken met daarop de gebruikersnaam en wachtwoord en zodoende in te loggen zonder het venster van de browser login.

Ik werk via htaccess / htpassw
Iemand een idee of dit uberhaubt wel mogelijk is? 8)7
code:
1
2
3
4
5
6
7
8
<?php
$_SERVER['REMOTE_USER']=$_POST['gebruikersnaam'];
$_SERVER['PHP_AUTH_USER']=$_POST['gebruikersnaam'];
$_SERVER['PHP_AUTH_PW']=$_POST['wachtwoord'];
$_SERVER['AUTH_TYPE']="Basic";
$_SERVER['HTTP_AUTHORIZATION']="Basic aW50ZXJheTp0ZXR0ZXJv";
$_SERVER['HTTP_CONNECTION']="Keep-Alive";
$_SERVER['PATH']="/bin:/usr/bin";

?>
Denk dat je dan sowieso een andere aanpak moet nemen. En htaccess raad ik je ook sowieso af, je login en pass wordt als plaintext over het internet gestuurd.

Mijn advies: kijk naar iets anders als htaccess. Neem een database, of desnoods een configbestand (die niet direct uit te lezen is) waarin je je gebruiker(s) en wachtwoord(en) in opslaat.

Koop hier mijn P1 reader :)


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
DiedX schreef op zondag 24 december 2006 @ 16:15:
Als ik je vraag goed destilleer: ik wil van .htaccess over naar een formulier-based authenticatie?

If so: check $_SESSION.
Ja in feite wil een pagina met .htacces afschermen, en met php de sessie aanmaken die normaal door de browser login wordt verzorgt

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

DiedX schreef op zondag 24 december 2006 @ 16:15:
Als ik je vraag goed destilleer: ik wil van .htaccess over naar een formulier-based authenticatie?

If so: check $_SESSION.
Nee, hij wil inloggen middels een HTML-pagina op zijn website die met .htaccess/.htpasswd beveiligd is. ;)
webmail schreef op zondag 24 december 2006 @ 16:17:
[...]

Denk dat je dan sowieso een andere aanpak moet nemen. En htaccess raad ik je ook sowieso af, je login en pass wordt als plaintext over het internet gestuurd.

Mijn advies: kijk naar iets anders als htaccess. Neem een database, of desnoods een configbestand (die niet direct uit te lezen is) waarin je je gebruiker(s) en wachtwoord(en) in opslaat.
Onzin, als hij nou een loginformulier maakt dat via https werkt gaat je hele verhaal niet echt op. :) Sowieso worden in vergelijkbare omstandigheden ook de wachtwoorden in databases en configbestanden in plain text over het internet gestuurd, dus ik begrijp je argument niet. 8)7

@Topicstarter: ben je bekend met deze pagina?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • DiedX
  • Registratie: December 2000
  • Laatst online: 20:05
Drop .htaccess dan. In elke .php pagina neem je een include op, waarbij gecheckt wordt of je al geauthenticeerd bent. If not: header: redirect index.php && exit.

DiedX supports the Roland™, Sound Blaster™ and Ad Lib™ sound cards


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

DiedX schreef op zondag 24 december 2006 @ 16:20:
Drop .htaccess dan. In elke .php pagina neem je een include op, waarbij gecheckt wordt of je al geauthenticeerd bent. If not: header: redirect index.php && exit.
Waarom droppen? Natuurlijk zijn er andere manieren om het te doen, maar wat is concreet een reden om een goed werkend systeem te droppen? :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • iMars
  • Registratie: Augustus 2001
  • Nu online

iMars

Full time prutser

-NMe- schreef op zondag 24 december 2006 @ 16:20:

Onzin, als hij nou een loginformulier maakt dat via https werkt gaat je hele verhaal niet echt op. :) Sowieso worden in vergelijkbare omstandigheden ook de wachtwoorden in databases en configbestanden in plain text over het internet gestuurd, dus ik begrijp je argument niet. 8)7

@Topicstarter: ben je bekend met deze pagina?
Ik doelde erop dat via een formulier je je wachtwoord kan encrypten, en dus niet als plaintext versturen. https is natuurlijk een optie om het een en ander te versleutelen.

Via htaccess heb je niet de keuze cq. mogelijkheid om je wachtwoord te versleutelen. En uit mijn ervaring weet ik dat een man in the middle attack een wachtwoord over https uiteindelijk toch kan decrypten.

Koop hier mijn P1 reader :)


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

webmail schreef op zondag 24 december 2006 @ 16:26:
[...]

Ik doelde erop dat via een formulier je je wachtwoord kan encrypten, en dus niet als plaintext versturen. https is natuurlijk een optie om het een en ander te versleutelen.

Via htaccess heb je niet de keuze cq. mogelijkheid om je wachtwoord te versleutelen. En uit mijn ervaring weet ik dat een man in the middle attack een wachtwoord over https uiteindelijk toch kan decrypten.
Het hele punt van dit topic is dat de topicstarter wil kunnen inloggen middels een normaal formulier in HTML zoals jij dat ook zou maken voor jouw oplossing, alleen in plaats van daarna sessies te gebruiken, gebruikt de topicstarter het om in te loggen op zijn .htaccess account. Het is dus allemaal even veilig als zo'n beetje elke oplossing die jij kan verzinnen, met als bijkomend voordeel dat er geen enkele mogelijkheid is tot sessiekaping. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • iMars
  • Registratie: Augustus 2001
  • Nu online

iMars

Full time prutser

-NMe- schreef op zondag 24 december 2006 @ 16:29:
[...]

Het hele punt van dit topic is dat de topicstarter wil kunnen inloggen middels een normaal formulier in HTML zoals jij dat ook zou maken voor jouw oplossing, alleen in plaats van daarna sessies te gebruiken, gebruikt de topicstarter het om in te loggen op zijn .htaccess account. Het is dus allemaal even veilig als zo'n beetje elke oplossing die jij kan verzinnen, met als bijkomend voordeel dat er geen enkele mogelijkheid is tot sessiekaping. ;)
True... can't deny ;)
Was slechts een suggestie, meerdere wegen leiden naar Rome :+

Koop hier mijn P1 reader :)


Acties:
  • 0 Henk 'm!

  • DiedX
  • Registratie: December 2000
  • Laatst online: 20:05
-NMe- schreef op zondag 24 december 2006 @ 16:22:
[...]

Waarom droppen? Natuurlijk zijn er andere manieren om het te doen, maar wat is concreet een reden om een goed werkend systeem te droppen? :)
Volgens mij wil hij vervolgens aan de slag met sessies. Dan zou mijn oplossing zijn: htaccess droppen, en alles in sessies gooien.

DiedX supports the Roland™, Sound Blaster™ and Ad Lib™ sound cards


Acties:
  • 0 Henk 'm!

  • iMars
  • Registratie: Augustus 2001
  • Nu online

iMars

Full time prutser

DiedX schreef op zondag 24 december 2006 @ 16:31:
[...]

Volgens mij wil hij vervolgens aan de slag met sessies. Dan zou mijn oplossing zijn: htaccess droppen, en alles in sessies gooien.
Is htaccess niet een soort sessie? je logt maar 1x in, en niet bij elke pagina refresh.... Is meer de manier waarop ...

toppicstarter wil een mooi, eigen login form maken, en niet een 'lelijke' standaard browser loginscherm.

Koop hier mijn P1 reader :)


Acties:
  • 0 Henk 'm!

  • pietje63
  • Registratie: Juli 2001
  • Laatst online: 22:05

pietje63

RTFM

Ik ben hier een paar jaar terug ook mee bezig geweest en toen was mijn conclusie dat het niet kon zonder de htaccess 'popup'.

Het voordeel van htaccess is dat je heel makkelijk hele directories een (extra) beveiliging kan geven. Natuurlijk zijn er ook andere manieren om (bijv.) afbeeldingen non-accessible te maken (buiten documen root e.d.) maar htaccess is hier ook geschikt voor.

Maar ik zet de topic even bij de bookmarks voor als iemand wel een manier heeft om het zonder de popup te doen.

De grootste Nederlandstalige database met informatie over computers met zoekfunctie!!


Acties:
  • 0 Henk 'm!

Verwijderd

.htaccess is niet een synoniem voor HTTP authentication, het is "slechts" een configuratiebestand voor de Apache HTTP daemon.

Acties:
  • 0 Henk 'm!

  • Mafkees
  • Registratie: Oktober 2003
  • Niet online
webmail schreef op zondag 24 december 2006 @ 17:08:
[...]

Is htaccess niet een soort sessie? je logt maar 1x in, en niet bij elke pagina refresh.... Is meer de manier waarop ...

toppicstarter wil een mooi, eigen login form maken, en niet een 'lelijke' standaard browser loginscherm.
Met een .htaccess kun je een mooi inlog schermpje laten zien dat de browser zelf toont. Als je deze vervolgens submit stuurt de browser een header met het request mee, en wel de volgende (als de authentication mode basic is):

code:
1
Authentication: Basic Z2VicnVpa2Vyc25hYW06d2FjaHR3b29yZA==

De laatste reeks is een base64 versleuteling van:

code:
1
gebruikersnaam:wachtwoord

De server kan dat weer ontsleutelen, splitten op de dubbele punt en heeft het username en wachtwoord die je in PHP vervolgens in de $_SERVER variabele terug vindt.

Deze manier is dus net zo onveilig als gewoon wachtwoorden met een formulier versturen omdat het zo ontsleuteld kan worden. Met formulieren kun je iets versleutelen met javascript ofzo maar het zal altijd ook weer de andere kant opmoeten dus veiliger: ja, veilig: nee.

Maar @TS: Volgens mij moet dat gewoon willen. Je kunt de waardes in de $_SERVER variabele overschrijven. Heb het eenvoudig getest met het volgende stukje code:

PHP:
1
2
3
4
5
<?php
echo $_SERVER["REMOTE_ADDR"] . "<br>";
$_SERVER["REMOTE_ADDR"] = "blaat";
echo $_SERVER["REMOTE_ADDR"] . "<br>";
?>


Geeft:

code:
1
2
10.0.0.3
blaat
Pagina: 1