Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3024 connectés 

 


Dernière réponse
Sujet : [PHP] -> sécurité toute prete (session+cookie)
potiron je viens de finir un script pour la secu que je trouve interessant alors autant qu'il sert a tout ceux qui on ont besoin .
il mixe cookies+sessions pour essayer d'avoir une bonne sécu ... il est possible de lui rajouter un module mysql pour encore renforcer la sécu ..
 
 
--- PAGE FORMULAIRE (demande log+pass -> verif) ---
 
<?
// -->> a copier dans : "form.php"
 
ob_start();
 
if( $submit=="Validation" ){
    // mettre ici une requete ou autre pour recup les infos login
    $veriflog="a";    $verifpass="b";
    if( $log==$veriflog && $pass==$verifpass ){
        // creation session, ou session mysql ou ..... (ici : cookie+session pour + de sécurité)
        session_start();
        session_register("ip" );$ip=$REMOTE_ADDR;
        session_register("time" );$time=time();        
        $id=session_id();setcookie("id",$id);        
        //
        header("location: p1.php" );
        echo "<script language='JavaScript'>window.location='p1.php'</script>";
    }else{
        // renvoit sur le form
        session_destroy();
        setcookie("id" );
        header("location: form.php" );
        echo "<script language='JavaScript'>window.location='form.php'</script>";
    }
}
?>
 
<form method=post action="form.php">
log<input type="text" name="log">
<br>
pass<input type="text" name="pass">
<br><br>
<input type="submit" value="Validation" name="submit">
</form>
 
<?ob_end_flush()?>
 
 
--- VERIFICATION (protege une page) ---
<?
// -->> a copier dans : "verif.php"
 
// verif a mettre dans TOUTES les pages a securiser ...
session_start();
if( $HTTP_COOKIE_VARS['id']==session_id() && $ip==$REMOTE_ADDR ){
    // pour les infos c'est bon !
    if( abs(time()-$time>5) ){
        // renvoit sur le formulaire si le temps est depassé ..
        session_destroy();
        setcookie("ip" );
        header("location: form.php" );
        echo "<script language='JavaScript'>window.location='form.php'</script>";
    }else{
        // rajoute nouveau temps
        session_register("time" );$time=time();  
    }
}else{
    // renvoit sur le formulaire
    session_destroy();
    setcookie("ip" );
    header("location: form.php" );
    echo "<script language='JavaScript'>window.location=
 
 
'form.php'</script>";
}
?>
 
 
 
--- EXEMPLE (page a protéger) ---
<?
// a copier dans : "p1.php"
 
 
include("verif.php" );
?>
page 1
 
<br><br><br>cookie :<br>
<?
print_r($HTTP_COOKIE_VARS);
?>
<br><br><br>
<a href="p2.php">RDV a la page 2</a>
 
 
------------------
------------------
 
Le PHP doit avoir les sessions d'activées et l'option "enable−trans−sid" doit etre a 1 sinon va falloir que vous passiez manuellement l'ID de session de page en page ce qui arrive souvent sur les hebergeurs gratuit sans compter que si les cookies du client ne sont pas activés vous aurez le meme probleme .
la version doit etre superieur a php 4.03 (4.04??) pour pouvoir utiliser les ob_start et C° ..

 

[edtdd]--Message édité par potiron--[/edtdd]


Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
potiron je viens de finir un script pour la secu que je trouve interessant alors autant qu'il sert a tout ceux qui on ont besoin .
il mixe cookies+sessions pour essayer d'avoir une bonne sécu ... il est possible de lui rajouter un module mysql pour encore renforcer la sécu ..
 
 
--- PAGE FORMULAIRE (demande log+pass -> verif) ---
 
<?
// -->> a copier dans : "form.php"
 
ob_start();
 
if( $submit=="Validation" ){
    // mettre ici une requete ou autre pour recup les infos login
    $veriflog="a";    $verifpass="b";
    if( $log==$veriflog && $pass==$verifpass ){
        // creation session, ou session mysql ou ..... (ici : cookie+session pour + de sécurité)
        session_start();
        session_register("ip" );$ip=$REMOTE_ADDR;
        session_register("time" );$time=time();        
        $id=session_id();setcookie("id",$id);        
        //
        header("location: p1.php" );
        echo "<script language='JavaScript'>window.location='p1.php'</script>";
    }else{
        // renvoit sur le form
        session_destroy();
        setcookie("id" );
        header("location: form.php" );
        echo "<script language='JavaScript'>window.location='form.php'</script>";
    }
}
?>
 
<form method=post action="form.php">
log<input type="text" name="log">
<br>
pass<input type="text" name="pass">
<br><br>
<input type="submit" value="Validation" name="submit">
</form>
 
<?ob_end_flush()?>
 
 
--- VERIFICATION (protege une page) ---
<?
// -->> a copier dans : "verif.php"
 
// verif a mettre dans TOUTES les pages a securiser ...
session_start();
if( $HTTP_COOKIE_VARS['id']==session_id() && $ip==$REMOTE_ADDR ){
    // pour les infos c'est bon !
    if( abs(time()-$time>5) ){
        // renvoit sur le formulaire si le temps est depassé ..
        session_destroy();
        setcookie("ip" );
        header("location: form.php" );
        echo "<script language='JavaScript'>window.location='form.php'</script>";
    }else{
        // rajoute nouveau temps
        session_register("time" );$time=time();  
    }
}else{
    // renvoit sur le formulaire
    session_destroy();
    setcookie("ip" );
    header("location: form.php" );
    echo "<script language='JavaScript'>window.location=
 
 
'form.php'</script>";
}
?>
 
 
 
--- EXEMPLE (page a protéger) ---
<?
// a copier dans : "p1.php"
 
 
include("verif.php" );
?>
page 1
 
<br><br><br>cookie :<br>
<?
print_r($HTTP_COOKIE_VARS);
?>
<br><br><br>
<a href="p2.php">RDV a la page 2</a>
 
 
------------------
------------------
 
Le PHP doit avoir les sessions d'activées et l'option "enable−trans−sid" doit etre a 1 sinon va falloir que vous passiez manuellement l'ID de session de page en page ce qui arrive souvent sur les hebergeurs gratuit sans compter que si les cookies du client ne sont pas activés vous aurez le meme probleme .
la version doit etre superieur a php 4.03 (4.04??) pour pouvoir utiliser les ob_start et C° ..

 

[edtdd]--Message édité par potiron--[/edtdd]


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)