protéger un script php par mot de passe

Bon, toujours dans l’apprentissage php, je stocke ce petit script bien utile.

J’ai récemment fait (enfin pompé honteusement) un petit script pour pouvoir lire et écrire sur un fichier texte en ligne. Mais voilà comme le but était de concevoir une application pour le boulot, il fallait que ce soit sécurisé.

Après bien des recherches et des essais je sèche. Mon sauveur est venu de Twitter en la personne de Crash__ .

Voilà le script:

<?php
/**
* Cette méthode est une méthode basique. Elle te demande de rentrer le mot de passe à chaque fois, même si tu viens
* de le modifier. Tu pourrais stocker en session le fait que le M. ait bien saisi le mot de passe et que du coup
* il n’a plus besoin de le rentrer durant les X minutes qui suivent.
**/

$fichier=”votretexte.txt”; // Nom du fichier à modifier
$myPassword = ‘votremotdepasse’;

//On regarde si le password est envoyé ou pas
if(isset($_POST[‘password’])){
//On regarde si le password est bon
if($_POST[‘password’] != $myPassword){
echo ‘Mauvais mot de passe’;
exit(0);
}
//On regarde si y a une modification
if(isset($_POST[’boutton’])) {
//if(is_file($fichier)) unlink($fichier); //si le fichier existe :  suppression du fichier pour le remplacer par le nouveau avec les nouveau éléments
$ouverture=fopen($fichier,”w”); // Création du nouveau fichier et ouverture du fichier avec le mode w on ouvre le fichier qu’en écriture et unlink devient inutile car le fichier est vidé automatiquement
//Tu devrais tester si tu as les droits d’écriture sur le fichier, sinon tu vas avoir une erreur mais il va te
//dire que la modification est bien arrivée…
fwrite($ouverture,$_POST[‘modif’]); // ecriture
fclose($ouverture); // fermeture du fichier
echo ‘<h2>Modification effectue</h2>’; // Affichage validation
}

?>
<form method=”post” action=””> <!– j’ai modifié action pour qu’il soit compatible peut importe le nom de la page–>
<textarea name=”modif” rows=”10″ COLS=”40″><?php // fait attention de bien collé les déclaration php au balises html sinon ca ecria les espace dans ton fichier
if(is_file($fichier)) echo file_get_contents($fichier);
?></textarea>
<!– ici on regénère l input password avec le bon contenu –>
<input type=”hidden” name=”password” value=”<?php echo $_POST[‘password’]; ?>” />
<br/><input type=”submit” name=”boutton” value=”Modifier”>
</form>
<?php
}else{
?>
<form method=”post” action=””>
Password : <input name=”password” type=”password” />
<input type=”submit” value=”envoyer” />
</form>
<?php
}

[download id=”2″]

Encore une fois, s’il y a des améliorateurs, ils sont les bienvenus.

Laisser un commentaire