Securité et historique des connexions avec mysql

Soyez le premier à donner votre avis sur cette source.

Vue 9 421 fois - Téléchargée 999 fois

Description

voila une petite securite et de log d'acces qui interoge une base de donnée mysql
vous pouvez soit rajouter du code derriere la securite soit mettre la page securite en include
cette securite permet aussi d'avoir le nom du user la date et l'ip a laquelle il s'est logger
Vous pouvez aussi cacher les mot dde passe ou les crypter en md5 grace a la fonction md5(.........)
et pareil pour decrypter

commentaire a l'interieur du code

amicalement julien

Source / Exemple :


<?php
$serveur = "........";   // adresse du serveur ex: sql.free.fr
$utilisateur = ".......";// nom d'utilisateur de la base mysql
$pass = ".......";       //pass d'utilisateur de la base mysql
$nom_db = ".......";     //nom de la base de donnée

$connexion = mysql_connect($serveur , $utilisateur , $pass)or die("pas pu se connnecter a la base mysql"); //on se connecte a mysql
$selection_db = mysql_select_db($nom_db , $connexion)or die("pas pu se connecter a leneo42");              //on se connecte a la base de donnée      

$adresse_ip_visiteur = $HTTP_SERVER_VARS[REMOTE_ADDR]; //on recupere l'adresse de l'hote qui vien snous voir
if( !isset($PHP_AUTH_USER) ) // si le user a deja ete entré on verifie juste
{
	header("WWW-Authenticate: Basic realm=\"Micro Application\"");
	header("HTTP/1.0 401 Unauthorized");
	echo "Accès refusé \n";
 	exit;	
} 
else //sinon on fais une requete pour voir si il existe dans la base
{
	$sql = "SELECT mot_de_passe,nom_utilisateur FROM utilisateurs where mot_de_passe = '$PHP_AUTH_PW' AND nom_utilisateur = '$PHP_AUTH_USER'";
	$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
	$nbresult = mysql_num_rows($req);
	if($nbresult == 0) //si il n'y est pas on refuse l'acces
	{
		header("WWW-Authenticate: Basic realm=\"Veuillez vous identifier\"");
		header("HTTP/1.0 401 Unauthorized");
		echo "Accès refusé \n";
		exit;
	}
	else //si c bon il a acces a la page et on le log dans la base de donnnée historique
	{
		$requete = "INSERT INTO historique_connexions (identifiant_utilisateur, date, IP) values ('$identifiant_utilisateur',NOW(),'$adresse_ip_visiteur')";
		$resultat = mysql_query($requete,$connexion);
	}
}
}
/////////////////////////////////////////
//mettre le code a proteger ici        //
//ou alors mettre cette page en include//
/////////////////////////////////////////
?>

Conclusion :


--
-- Structure de la table `historique_connexions`
--

CREATE TABLE `historique_connexions` (
`id` tinyint(4) NOT NULL auto_increment,
`identifiant_utilisateur` smallint(6) NOT NULL default '0',
`date` datetime NOT NULL default '0000-00-00 00:00:00',
`IP` varchar(20) NOT NULL default '',
PRIMARY KEY (`id`),
KEY `id` (`id`)
) TYPE=MyISAM;

--
-- Structure de la table `utilisateurs`
--

CREATE TABLE `utilisateurs` (
`nom_utilisateur` varchar(25) NOT NULL default '',
`mot_de_passe` varchar(25) NOT NULL default '',
`nb_participant` int(10) NOT NULL default '0',
`nom_participants` varchar(255) NOT NULL default '',
`mail` varchar(255) NOT NULL default '',
`numerique` varchar(255) NOT NULL default '',
UNIQUE KEY `nom_utilisateur_2` (`nom_utilisateur`)
) TYPE=MyISAM;

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
20
Date d'inscription
vendredi 27 février 2004
Statut
Membre
Dernière intervention
7 avril 2005

merci ikaros je fais un bts informatique et g quelques années de pratiques derriere moi mais voila quoi il faut lire les biuquin et tt est dit ;)
Messages postés
6
Date d'inscription
mercredi 22 septembre 2004
Statut
Membre
Dernière intervention
14 mai 2005

Merci Kirua.

Un petit mot pour te dire que je suis très impressionné par tes compétances vu ton âge. J'ai 30 ans de plus que toi et je travaille dans le secteur informatique depuis 1982 mais pour ce qui est du développement PHP et JavaScript, je débute.
Bonne continuation et bravo encore !
Messages postés
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008

header("WWW-Authenticate: Basic realm="Micro Application"");

ça ça envoie les en-têtes HTTP nécessaires au navigateur pour que le navigateur demande user et pass au client, et renvoie les infos. donc oui, c'est bien la fenêtre standard d'authentification :)
Messages postés
6
Date d'inscription
mercredi 22 septembre 2004
Statut
Membre
Dernière intervention
14 mai 2005

Une petite question de débutant:
Comment est généré l'écran qu'on voit sur la capture?
Ca ressemble fort à un écran d'authentification standard de Microsoft. Est-ce un formulaire créé dans une page séparée?
Messages postés
282
Date d'inscription
vendredi 16 mai 2003
Statut
Membre
Dernière intervention
19 juillet 2006

oupsssss 2 fois...
oui je voulais dire 32 octets,
ben aparament je me suis trompé, désolé!!! bon ben je vais me renseigner sur l'héxa alor...
Afficher les 13 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.