{"id":440,"date":"2011-10-08T14:57:57","date_gmt":"2011-10-08T14:57:57","guid":{"rendered":"http:\/\/www.ticeman.fr\/lecoutelas\/?p=440"},"modified":"2013-08-04T22:28:07","modified_gmt":"2013-08-04T22:28:07","slug":"proteger-un-script-php-par-mot-de-passe","status":"publish","type":"post","link":"https:\/\/www.ticeman.fr\/lecoutelas\/?p=440","title":{"rendered":"prot\u00e9ger un script php par mot de passe"},"content":{"rendered":"<p>Bon, toujours dans l&#8217;apprentissage php, je stocke ce petit script bien utile.<\/p>\n<p>J&#8217;ai r\u00e9cemment fait (enfin pomp\u00e9 honteusement) <a href=\"http:\/\/www.ticeman.fr\/lecoutelas\/?p=436\" target=\"_blank\">un petit script<\/a> pour pouvoir lire et \u00e9crire sur un fichier texte en ligne. Mais voil\u00e0 comme le but \u00e9tait de concevoir une application pour le boulot, il fallait que ce soit s\u00e9curis\u00e9.<\/p>\n<p>Apr\u00e8s bien des recherches et des essais je s\u00e8che. Mon sauveur est venu de Twitter en la personne de Crash__ .<\/p>\n<p>Voil\u00e0 le script:<\/p>\n<blockquote><p>&lt;?php<br \/>\n\/**<br \/>\n* Cette m\u00e9thode est une m\u00e9thode basique. Elle te demande de rentrer le mot de passe \u00e0 chaque fois, m\u00eame si tu viens<br \/>\n* de le modifier. Tu pourrais stocker en session le fait que le M. ait bien saisi le mot de passe et que du coup<br \/>\n* il n&#8217;a plus besoin de le rentrer durant les X minutes qui suivent.<br \/>\n**\/<\/p>\n<p>$fichier=&#8221;votretexte.txt&#8221;; \/\/ Nom du fichier \u00e0 modifier<br \/>\n$myPassword = &#8216;votremotdepasse&#8217;;<\/p>\n<p>\/\/On regarde si le password est envoy\u00e9 ou pas<br \/>\nif(isset($_POST[&#8216;password&#8217;])){<br \/>\n\/\/On regarde si le password est bon<br \/>\nif($_POST[&#8216;password&#8217;] != $myPassword){<br \/>\necho &#8216;Mauvais mot de passe&#8217;;<br \/>\nexit(0);<br \/>\n}<br \/>\n\/\/On regarde si y a une modification<br \/>\nif(isset($_POST[&#8217;boutton&#8217;])) {<br \/>\n\/\/if(is_file($fichier)) unlink($fichier); \/\/si le fichier existe :\u00a0 suppression du fichier pour le remplacer par le nouveau avec les nouveau \u00e9l\u00e9ments<br \/>\n$ouverture=fopen($fichier,&#8221;w&#8221;); \/\/ Cr\u00e9ation du nouveau fichier et ouverture du fichier avec le mode w on ouvre le fichier qu&#8217;en \u00e9criture et unlink devient inutile car le fichier est vid\u00e9 automatiquement<br \/>\n\/\/Tu devrais tester si tu as les droits d&#8217;\u00e9criture sur le fichier, sinon tu vas avoir une erreur mais il va te<br \/>\n\/\/dire que la modification est bien arriv\u00e9e&#8230;<br \/>\nfwrite($ouverture,$_POST[&#8216;modif&#8217;]); \/\/ ecriture<br \/>\nfclose($ouverture); \/\/ fermeture du fichier<br \/>\necho &#8216;&lt;h2&gt;Modification effectue&lt;\/h2&gt;&#8217;; \/\/ Affichage validation<br \/>\n}<\/p>\n<p>?&gt;<br \/>\n&lt;form method=&#8221;post&#8221; action=&#8221;&#8221;&gt; &lt;!&#8211; j&#8217;ai modifi\u00e9 action pour qu&#8217;il soit compatible peut importe le nom de la page&#8211;&gt;<br \/>\n&lt;textarea name=&#8221;modif&#8221; rows=&#8221;10&#8243; COLS=&#8221;40&#8243;&gt;&lt;?php \/\/ fait attention de bien coll\u00e9 les d\u00e9claration php au balises html sinon ca ecria les espace dans ton fichier<br \/>\nif(is_file($fichier)) echo file_get_contents($fichier);<br \/>\n?&gt;&lt;\/textarea&gt;<br \/>\n&lt;!&#8211; ici on reg\u00e9n\u00e8re l input password avec le bon contenu &#8211;&gt;<br \/>\n&lt;input type=&#8221;hidden&#8221; name=&#8221;password&#8221; value=&#8221;&lt;?php echo $_POST[&#8216;password&#8217;]; ?&gt;&#8221; \/&gt;<br \/>\n&lt;br\/&gt;&lt;input type=&#8221;submit&#8221; name=&#8221;boutton&#8221; value=&#8221;Modifier&#8221;&gt;<br \/>\n&lt;\/form&gt;<br \/>\n&lt;?php<br \/>\n}else{<br \/>\n?&gt;<br \/>\n&lt;form method=&#8221;post&#8221; action=&#8221;&#8221;&gt;<br \/>\nPassword : &lt;input name=&#8221;password&#8221; type=&#8221;password&#8221; \/&gt;<br \/>\n&lt;input type=&#8221;submit&#8221; value=&#8221;envoyer&#8221; \/&gt;<br \/>\n&lt;\/form&gt;<br \/>\n&lt;?php<br \/>\n}<\/p><\/blockquote>\n<p>[download id=&#8221;2&#8243;]<\/p>\n<p>Encore une fois, s&#8217;il y a des am\u00e9liorateurs, ils sont les bienvenus.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bon, toujours dans l&#8217;apprentissage php, je stocke ce petit script bien utile. J&#8217;ai r\u00e9cemment fait (enfin pomp\u00e9 honteusement) un petit script pour pouvoir&hellip;<a href=\"https:\/\/www.ticeman.fr\/lecoutelas\/?p=440\" class=\"more-link\"><span class=\"more-button\">Continuez la lecture<span class=\"screen-reader-text\">prot\u00e9ger un script php par mot de passe<\/span><\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17],"tags":[],"class_list":["post-440","post","type-post","status-publish","format-standard","hentry","category-scripts-php"],"_links":{"self":[{"href":"https:\/\/www.ticeman.fr\/lecoutelas\/index.php?rest_route=\/wp\/v2\/posts\/440"}],"collection":[{"href":"https:\/\/www.ticeman.fr\/lecoutelas\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ticeman.fr\/lecoutelas\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ticeman.fr\/lecoutelas\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ticeman.fr\/lecoutelas\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=440"}],"version-history":[{"count":1,"href":"https:\/\/www.ticeman.fr\/lecoutelas\/index.php?rest_route=\/wp\/v2\/posts\/440\/revisions"}],"predecessor-version":[{"id":441,"href":"https:\/\/www.ticeman.fr\/lecoutelas\/index.php?rest_route=\/wp\/v2\/posts\/440\/revisions\/441"}],"wp:attachment":[{"href":"https:\/\/www.ticeman.fr\/lecoutelas\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=440"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ticeman.fr\/lecoutelas\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=440"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ticeman.fr\/lecoutelas\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=440"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}