[RESOLU] Securisation d'un formulaire ( log mdp )

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Securisation d'un formulaire ( log mdp )

Re: [RESOLU] Securisation d'un formulaire ( log mdp )

par lalmat » 11 mai 2013, 14:34

Le $crypt = MD5($salt.$mdp) est irreversible (théoriquement) donc c'est pas trop grave si c'est dans le JS.

Par contre en effet c'est un peu bête puisqu'on ne vois jamais le mdp en clair et qu'il semble qu'il y en ai besoin en clair... 8-|

Re: [RESOLU] Securisation d'un formulaire ( log mdp )

par moogli » 11 mai 2013, 12:24

Le problème avec ça c'est qu'il ne pourra pas utiliser le mot de passe saisie pour une connexion ssh XD

Quand au côté Javascript tu ne fait que montrer aux gens mal attentionné comment tu t'y prend (plus indique la méthode pour obtenir la clef de salage) du coup ça peux faciliter la chose ;)


@+

Re: [RESOLU] Securisation d'un formulaire ( log mdp )

par lalmat » 11 mai 2013, 08:40

Sinon tu pouvais aussi "salter" le mot de passe.

Le serveur génére un hash aléatoire qu'il store en session et envoie au client.
Le client concatène le salt avec le mot de passe, le passe en MD5 (par exemple) et renvoi le tout au serveur.

A la reception du mdp salté, le serveur fait la même opération en prenant le hash en session, le concaténant au mot de passe en base et en passant un MD5 dessus.
Le hash etant le même, si le mot de passe est le même alors le MD5 sera le même. Ainsi le mdp qui circule sur le réseau est tout le temps différent.

Perso en plus de cette méthode, je crypte les mots de passe en base de données et j'effectue la même opération en Javascript coté client avant la procédure de salt. Ca évite d'avoir des mdp en clair dans les bases...

Re: Securisation d'un formulaire ( log mdp )

par Moustike » 03 mai 2013, 09:02

Merci, du conseil, je me suis debrouillé avec du ssl et en surcouche, j'utilise une authentification par clé publique/privée pour le ssh
@++

Re: Securisation d'un formulaire ( log mdp )

par moogli » 25 avr. 2013, 22:19

salut,


tu as deux solutions
- stocker les utilisateurs / mot de passe en base : en clair c'est moyen
- utiliser SSL (une url du style https://tonsite.com/login.php)


@+

Securisation d'un formulaire ( log mdp )

par Moustike » 25 avr. 2013, 11:04

Bonjour à tous,
Je sollicite votre aide afin de sécuriser le transit des données issues d'un formulaire html(POST) comportant un input login(text) et un input password(password).
Mon script doit, a la demande de l'utilisateur, se connecter en ssh sur des serveurs dhcp afin de modifier leurs fichiers de conf , et cela à l'aide du log et du password fournis par l'utilisateur lors de la saisie du formulaire.
J'aimerais que ces données ( du moins le password ), soient non interceptables. Et, bien que je ne connaisse pas ses grandes lignes, la methode POST en elle même ne m'inspire pas grande confiance. Les seules solutions que j'ai trouvé sur le net s'appliquaient principalement a des bases de données : cryptage md5/sha1 coté bd et coté script... mais cette solution ne me convient pas.
Merci d'avance.
Code du formulaire
<form>
	
	<label> Login        : </label>
	<input maxlength="40" id="login" name="login" type="text" /> </BR>
	
	<label> Mot de passe : </label>
	<input  maxlength="40" id="password" name="password" type="password" /> </BR>

	<label> Site : </label>
	<SELECT name="site" Id= "site" onchange = "miseAJourSelect(this)">
		<option selected></option>
			<?php 
			$req = $bdd->prepare('SELECT Id_Site,Nom_Site from t_site ');
			$req->execute(array());
			while ($eq = $req->fetch() ) 
			{?> 
				<option value='<?php echo $eq['Id_Site']; ?>'>
				<?php echo $eq['Nom_Site']; 
			}?> 
		 
		</option>
	</SELECT>
	</BR>

	<label> Batiment         : </label>
	<SELECT name="batiment" id = "batiment" onchange = "miseAJourSelect(this)">
	<option></option>
	</SELECT>
	</BR>

	<input  name="adminMajButton" onClick="redirection()" type="button" value="Mise &agrave jour" />
Code a executer par la suite
		
$dhcpLogin = $_POST['login'];
$dhcpPass = $_POST['password'];

...

// On insère la conf dhcp dans notre fichier local
		file_put_contents('newdhcp.txt', $contenuDuNouveauFichierDeConf);
		// Connection ssh au serv dhcp2
		$con = sshConnect($dhcpServ2,$dhcpLogin,$dhcpPass);
		// on crée sur le serveur dhcp une copie de sa conf
		sshExec($con,'cp /etc/dhcp/dhcpd.L3.180.0 /etc/dhcp/dhcpd.L3.180.0.old ');
		//On y envoie la nouvelle conf
		if (!ssh2_scp_send($con, $chemin, '/etc/dhcp/NEWDHCP'));
			{
				echo 'erreur de copie du fichier vers le serv dhcp 2 ';
			}
		  else
		  // On reboote le service
			{
				sshExec($con,'service dhcp restart');
			}
			//////////////////// Consultation du log pour checker une erreur ////////////
			///////// Si pas d'erreur, on fait de même avec le serv dhcp 1 ////////////