login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Vraagje ivm HTTP auth

Offline Michiel_G - 15/10/2005 14:10
Avatar van Michiel_GNieuw lid http://www.site...amp;id=429

Om verschillende users toegang te geven zou ik graag usernames en paswoorden uit een database lezen, hoe moet ik dit precies implementeren? Ik heb het al geprobeerd maar krijg dan problemen met m'n db connectie.

Iemand een idee?

alvast bedankt.

8 antwoorden

Gesponsorde links
Offline cracker - 15/10/2005 14:48 (laatste wijziging 15/10/2005 14:50)
Avatar van cracker Onbekend als je alles via een mySQL database wilt regelen moet je via een query opvragen of de gebruiker geldig is.
dit doe je zo:
  1. <?php
  2. ?>
  3. <HTML>
  4. <HEAD>
  5. <TITLE>HTTP authenticatie met PHP</TITLE>
  6. </HEAD>
  7. <BODY>
  8. <?php
  9. $db = mysql_connect("localhost","mySQLgebruiker","mySQLwachtwoord") or die(mysql_error());
  10. mysql_select_db("databasenaam", $db) or die(mysql_error());
  11. $result = mysql_query("SELECT * FROM tabel WHERE gebruikersnaam='".$_SERVER['PHP_AUTH_USER']."' AND wachtwoord='".$_SERVER['PHP_AUTH_PW']."'") or die(mysql_error());
  12. $aantal = mysql_num_rows($result);
  13.  
  14. if($aantal == 1){
  15. header("WWW-Authenticate: Basic realm=\"Beveiliging\"");
  16. header("HTTP/1.0 401 Unauthorized");
  17. echo("Je bent niet ingelogd! Probeer het <A HREF=\"javascript:location.reload();\">opnieuw</A>.");
  18. }
  19. ?>
  20. </BODY>
  21. </HTML>
Offline Michiel_G - 15/10/2005 15:00
Avatar van Michiel_G Nieuw lid Heel fel bedankt!

De $aantal == 1 moet wel $aantal == 0 worden
Offline cracker - 15/10/2005 15:01
Avatar van cracker Onbekend ow foutje 
nu ben jij ook fout.
Het moet if($aantal != 1){ worden 
Offline Thomas - 15/10/2005 18:34
Avatar van Thomas Moderator De bovenstaande methode is niet veilig, omdat deze MySQL-injectie toestaat.

Gebruikersnaam:
een_geldige_gebruikersnaam

Wachtwoord:
klopt_van_geen_kanten' OR 'a' = 'a

Ofzo...

Je query wordt dan:
SELECT *
FROM tabel
WHERE gebruikersnaam='een_geldige_gebruikersnaam'
AND wachtwoord='klopt_van_geen_kanten' OR 'a' = 'a'
Offline Mr_Dark - 15/10/2005 20:25
Avatar van Mr_Dark Lid
  1. <?php
  2. ?>
  3. <HTML>
  4. <HEAD>
  5. <TITLE>HTTP authenticatie met PHP</TITLE>
  6. </HEAD>
  7. <BODY>
  8. <?php
  9. $auth_user = addslashes($_SERVER['PHP_AUTH_USER']);
  10. $auth_pass = addslashes($_SERVER['PHP_AUTH_PW']);
  11.  
  12. $db = mysql_connect("localhost","mySQLgebruiker","mySQLwachtwoord") or die(mysql_error());
  13. mysql_select_db("databasenaam", $db) or die(mysql_error());
  14.  
  15. $result = mysql_query("SELECT * FROM tabel WHERE gebruikersnaam='".$auth_user."' AND wachtwoord='".$auth_pass."'") or die(mysql_error());
  16.  
  17. if(!mysql_num_rows($result)){
  18. header("WWW-Authenticate: Basic realm=\"Beveiliging\"");
  19. header("HTTP/1.0 401 Unauthorized");
  20. echo("Je bent niet ingelogd! Probeer het <A HREF=\"javascript:location.reload();\">opnieuw</A>.");
  21. }
  22. ?>
  23. </BODY>
  24. </HTML>


zodan dit zou moeten helpen tegen sql injection
Offline cracker - 15/10/2005 20:32 (laatste wijziging 15/10/2005 21:16)
Avatar van cracker Onbekend Fangorn had eens gelijk 

(edit) @FangorN:
sinds die +b heb ik wat tegen u 
wou met bovenstaande tekst bedoelen hoe ik er niet aan gedacht had eerst nog addslashes toe te voegen.
Offline Thomas - 15/10/2005 20:33
Avatar van Thomas Moderator In tegenstelling tot... wanneer?
Offline Gerard - 15/10/2005 21:13
Avatar van Gerard Ouwe rakker RickyB wB
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.196s