Jump to content
  • 0

pomoc MySQL Injection


sk1ll3r

Dotaz

Caute. Prosím vás pomôžte. Robím registráciu v PHP a chcem to zabezpečiť proti sql injection ...

Poviete mi či to mám dobre zabezpečené?? Použil som mysql_real_escape_string..

Tu je ten register.php:

 

<?php

session_start();
Include('config.php');
Require_once('maincore.php');
error_reporting(E_ALL ^ E_NOTICE);

$name = $_POST['name'];
$email = $_POST['email'];
$password = $_POST['password'];
$c_password = $_POST['c_password'];
$sex = $_POST['sex'];
$day = $_POST['day'];
$month = $_POST['month'];
$year = $_POST['year'];
$registered = date(d . '.' . m . ' ' .Y);

if(!$_SESSION['id']) {

switch($_GET['action']) {

	case 'register':

	if(!empty($name) && ($email) && ($password) && ($c_password) && ($sex) && ($day) && ($month) && ($year)) {
		if($password == $c_password) {
			$Query = MySQL_Query("INSERT INTO users (name, email, password, sex, day, month, year, registered) 
			VALUES(
			'".mysql_real_escape_string($name)."', 
			'".mysql_real_escape_string($email)."', 
			'".mysql_real_escape_string($password)."',
			'".mysql_real_escape_string($sex)."',
			'".mysql_real_escape_string($day)."', 
			'".mysql_real_escape_string($month)."',, 
			'".mysql_real_escape_string($year)."', 
			'".mysql_real_escape_string($registered)."'");

			echo "Bol/a ste úspešne zaregistrovaný/á! Vrátiť späť.";
		}
		else {
			echo "Heslá sa nezhodujú!";
		}
	}
	else {
		echo "Nevyplnil/a ste povinné údaje";
	}
}

echo "

Polia označené * sú povinné!

* Meno: 

* Email: 

* Heslo: 

* Zopakuj heslo: 

* Pohlavie:  Muž  Žena

* Deň: * Mesiac: * Rok:  (Príklad: 12  05  1990)


";
}
else {
echo "Vitaj " . $_SESSION['fname'] . "!";
}
?>

 

PS: Tie komentáre typu: Vygoogli si, Ked to nevieš tak to nerob atd... si odpustite

Link to comment
Share on other sites

5 odpovědí na tuto otázku

Recommended Posts

  • 0

proboha na co by měl přidávat htmlspecialchars? Všechno obstará mysql_real_escape_string... jinák bylo by dobrý pořešit vstupní znaky, přeci jenom jde stále zadat nesmysl do každé kolonky + heslo rozhodně hashuj, takto je to fatální chyba, nastavim v hesle posledni znak "\" a ono mi to upraví ještě a nebudu se moct přihlásit...

Link to comment
Share on other sites

  • 0

Je to jednoduché a já bych to udělal nějak takto -

 

Máš registraci a tam pole, kam uživatel píše heslo -

 

$password = mysql_real_escape_string(sha1($_POST["password"]));

if(/*Nejake podminky, delka hesla....*/)
{
  mysql_query(/*ulozis heslo do DB*/);
}

 

takhle asi nějak....

 

Ještě lepší je napsat si funkci, který ti vráti bezpečný input -

Např.:

function GetHash($input)
{
  $temp = $input;
  $temp = mysql_real_escape_string($temp);
  $temp = sha1($temp);

  return $temp;
}

 

No a pak už tu funkci jenom použiješ....

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...