Ik ben bezig met een beveiligingsclass, hierin heb ik een mysql_connect geplaatst. Is het mogelijk in de connectie ook een mysql_real_escape achtige beveiliging in te bouwen?


class mysql_con{
	function mysql(){
		$db_host 		= "place_your_db_host"; 
		$db_username 	= "place_your_username";  
		$db_pass 		= "place_your_db_password";  
		$db_name 		= "place_your_db_name"; 

		mysql_connect("$db_host","$db_username","$db_pass") or die(mysql_error());
		mysql_select_db("$db_name") or die(mysql_error());   
	}
}
hoezo? mysql_connect() doet niets anders dan een database verbinding opzetten, hij doet niets met de database. je zult zelf alle gegevens moeten opgeven, en als die niet geldig zijn, krijg je een error. je kunt niets extra beveiligen.
En natuurlijk geen die() gebruiken, zeker niet in een class. Ofwel je geeft een false waarde terug als de verbinding niet goed gaat, ofwel je gooit een error. Je wilt natuurlijk niet dat deze class bepaalt of de gebruiker wel of niet een pagina krijgt te zien.
Jeroen vd op 01/05/2012 13:12:33

hoezo? mysql_connect() doet niets anders dan een database verbinding opzetten, hij doet niets met de database. je zult zelf alle gegevens moeten opgeven, en als die niet geldig zijn, krijg je een error. je kunt niets extra beveiligen.


Oké bedankt voor je antwoord :). Dan weet ik dat ook weer.



[size=xsmall]Toevoeging op 01/05/2012 14:16:06:[/size]

Erwin H op 01/05/2012 13:45:18

En natuurlijk geen die() gebruiken, zeker niet in een class. Ofwel je geeft een false waarde terug als de verbinding niet goed gaat, ofwel je gooit een error. Je wilt natuurlijk niet dat deze class bepaalt of de gebruiker wel of niet een pagina krijgt te zien.


Is dit dan de goede manier:

mysql_connect("$db_host","$db_username","$db_pass") == false(mysql_error());
Uhm, nee, false is natuurlijk geen functie.
<?php
if (mysql_connect("$db_host","$db_username","$db_pass")==false){
throw Exception(mysql_error());
}
?>
Moet je er wel voor zorgen dat je elders in je script de foutmeldingen afvangt via een try...catch block. Als je niet weet hoe je met errors werkt kan je ook dit doen:
<?php
if (mysql_connect("$db_host","$db_username","$db_pass") == false){
return false;
}
?>

Reageren