Pages: 1 2
Protéger un répertoire contre les blaireaux, les horribles et les malfaisants...
Bien peu de Webmasters (souvent amateurs) savent le faire.
C'est facile (code pour PHP4, PHP5 ou PHP6
).
Voici comment on peut faire (code réservé aux Membres) :
[Vous devez être identifié pour voir le texte caché.]
Enregistrer ce code sous protect.php dans le DOSSIER à protéger...
Puis éditer le fichier en modifiant les affectations $login et $pass
(remplacer codes "test" [UID pour $login & PWD pour $pass])...
Lancer la procédure PHP (protect.php)... Et voila, c'est fait !
Cela aura créé les deux fichiers suivants :
[Vous devez être identifié pour voir le texte caché.]
Puis, supprimez le programme protect.php de votre DOSSIER.
[Vous devez être identifié pour voir le texte caché.]
Ne faites pas cela sur la racine d'un site Web, cela empêcherait quiconque de s'y connecter...
...
Sauf si vous désirez faire un site privé pour seulement quelques membres dûment accrédités.
Auquel cas, penser à créer des ID génériques (communs) et à les diffuser aux membres.
ATTENTION : Prévoir une alternative publique (ne serait-ce que pour les Bots)...
...
![]()
Alain AKA Arma
PS : La fonction PHP getcwd() est la recherche du répertoire actif (get current working directory).
PPS : Je suis sympa (quand je veux, et que quand je veux - souvent)...
[Vous devez être identifié pour voir le texte caché.]
<?php
error_reporting(E_ERROR | E_PARSE);
// ***********************************************************************************
// Et toi, cochon de Serveur, tu fais tout ce que l'on te dit
// et tu crées ces putains
// de .htaccess et .htpasswd
// SINON ---> TU PASSES PAR LA FENETRE ! NON MAIS ! Qui c'est qui commande ici, hein ?
// ***********************************************************************************
$curdir = getcwd();
$login = 'test'; // METTEZ ICI LE NOM D'UTILISATEUR QUE VOUS VOULEZ (au lieu de test)
$pass = 'test'; // METTEZ ICI LE MOT DE PASSE QUE VOUS VOULEZ (au lieu de test)
if (!file_exists($curdir."/.htpasswd")) // Si pas de protection du répertoire courant
{
chmod($curdir, 0777);
echo '<br><br><center><font color="red"><b><big>Votre répertoire n\'est pas protégée !<br>Cela va être fait automatiquement.</big></b></font></center><br><hr><br>'."\n";
$userpass = crypt($pass, CRYPT_STD_DES);
$fp = fopen($curdir."/.htaccess", "w");
fwrite ($fp,"<Files .htaccess>\norder allow,deny\ndeny from all\n</Files>\nAuthName \"ARMAGEDDON\"\nAuthType Basic\nAuthUserFile ".$curdir."/.htpasswd\n<Limit GET>\nrequire valid-user\n</Limit>");
fclose ($fp);
$fp = fopen($curdir."/.htpasswd", "w");
fwrite ($fp, $login.":".$userpass);
fclose ($fp);
chmod($curdir.'/.htaccess', 0755);
chmod($curdir.'/.htpasswd', 0755);
chmod($curdir, 0755);
if (!file_exists($curdir."/.htpasswd"))
echo '<center><font color="red"><b>ERREUR lors de la création de la protection !</b></font></center><br><br>'."\n";
else
echo '<center><font color="red"><b>Les fichiers <big>.htaccess</big> et <big>.htpasswd</big> ont été correctement créés.<br><small>(vous devrez valider la connexion à l\administration en entrant vos identifiants administrateur)</small></b></font></center><br><br>';
echo '<br><center><font color="red"><b><big>Veuillez rafraîchir la page, SVP...</big></b></font></center>'."\n";
}
?>Hors ligne
La fonction PHP getcwd() est la recherche du répertoire actif (get current working directory).
Non et non
Et ton erreur est là...
Getcwd est la recherche du 'repertoire' de travail défini par open_basedir... (php.ini et aussi httpd.conf)
Selon l'arborescence du serveur (unix ou autre).
Donc fais gaffe, mon petit gars de ne pas raconter n'importe quoi car je veille...
Du coup si open_basedir définit le repertoire de travail en dehors du répertoire où est ton script... Patatra...
En fonction des restrictions tu auras un beau : access denied
Ce sera tout pour aujourd'hui mais je trouve anormal qu'il ne soit pas possible sur ce forum d'avoir... Etc etc cf utilisable
Dernière modification par rikaix (17/07/2007 23:23:10)
Hors ligne
Je ne répondrai pas autre chose que cela :
--> http://www.manuelphp.com/php/function.getcwd.php
--> http://www.w3schools.com/php/func_directory_getcwd.asp
--> http://www.phpdig.net/ref/rn17re243.html
Na !
Alain AKA Arma
PS : Tu confonds avec la fonction getpath()
Mécréant ! Trolleur !
Hors ligne
Getpath() c'est une invention à toi ? ça n'existe pas en php. Arrete de raconter n'importe quoi !
Et renseigne toi mieux sur la definition exacte de 'repertoire de travail'.
Dernière modification par rikaix (18/07/2007 08:59:34)
Hors ligne
--> http://www.manuelphp.com/php/function.d … etpath.php![]()
Alain AKA Arma
PS : Et toi, renseigne-toi sur le sens de 'courant'
Vilain ! Trolleur !
Hors ligne
La tu donnes un lien vers
DirectoryIterator::getPath
Ce qui n'a rien a voir avec getpath()
Exprime toi mieux ce sera utile pour tous
Et ne sois pas têtu, renseignes toi mieux tu te coucheras un peu plus instruit
PS : il ne s'agit en aucun cas du repertoire courant, mais du repertoire de travail (la est toute la nuance...)
Dernière modification par rikaix (18/07/2007 09:08:22)
Hors ligne
Ce qui prouve que j'ai raison sur getcwd()...
C'est le fait que cette procédure (celle du post #1) fonctionne quel que soit l'endroit où elle est placée !
==> C'est donc bien le répertoire COURANT que cette fonction retourne.
Sinon, les fichiers .htaccess et .htpasswd seraient créés ailleurs...![]()
Alain AKA Arma
Hors ligne
Mais non, mais reflechi un peu ! Sans te mirer dans ton miroir ou dans ta mare.
Si le repertoire de travail est defini en dehors de www, good bye elvis.
Le probleme ne se presentera pas toujours, mais il se presentera, le risque est sur certain mutualisé ou dédié.
Prenons l'exemple de plesk, celui ci rajoute une surcouche au dessus de httpd,
Pour pallier au restriction de open_basedir, tu es obligé de rajouter des fichiers vhosts qui redefinissent le repertoire de travail (au bon endroit)
Et en mutualisé tu n'as pas le choix, faut faire avec ce qu'on te donne.
Bon si tu veux employer le mot courant soit :
Getcwd renvoie le repertoire de TRAVAIL courant
Dernière modification par rikaix (18/07/2007 09:27:01)
Hors ligne
Oui, comme tu dis...
Alors, voila un .htaccess généré par la procédure (sur mutualisé) :
[Vous devez être identifié pour voir le texte caché.]![]()
Alain AKA Arma
<Files .htaccess> order allow,deny deny from all </Files> AuthName "ARMAGEDDON" AuthType Basic AuthUserFile /home.xx.y/cigiema/www/annuaire/admin/.htpasswd <Limit GET> require valid-user </Limit>
Hors ligne
ahhhrgh j'abandonne... Y a rien a faire... Ni a dire de plus... Cet homme est un doux dingue, obstiné ! ![]()
Bon, que tous ceux qui avec ce script obtiennent un access denied viennent poster ici, je fournirai la solution... Ou pas...
PS : on est obligé d'editer plusieurs fois les message, car celui-ci perd des lettres lorsque l'on valide (encore du code à la crazy)
<edit Crazy> Non, c'est moi qui corrige --> Fournirai (futur) <> fournirais (conditionnel) </edit>
<edit et marcel>Pars de mon post ! Et rends moi mes lettres, elles ne t'appartiennent pas, ignoble crazy !</edit et marcel>
<edit de Nantes>Merci de cesser vos enfantillages !</edit>
<edit craie son>Nan mais oh ! Vous allez arrêter de vous battre ? Hein ?</et dites craie son>
Dernière modification par rikaix (18/07/2007 09:32:01)
Hors ligne
OK, je te les rends :
Fournirais et perds
Voila...![]()
Alain AKA Arma
Hors ligne
Ah tu vois --> Pa à la place de pas
Et no a la place de non plus haut
J'ai du reprendre aussi denie à la place de denied
C'est toi ?
Oh putaing je me casse, ce forum est hanté... Un bouffeur de lettres, on aura tout vu...
Hééé ! Mon 'e' de cass, il est où ?
Oh merde ce forum, est en train de s'auto détruire...
Je le comprends quelque part, si moi aussi j'avais été créé par crazy...

Dernière modification par Crazy (18/07/2007 09:44:44)
Hors ligne
La casse, c'est pour les lettres !
--> http://fr.wikipedia.org/wiki/Capitale_et_majuscule OOPS ![]()
Alain AKA Arma
Hors ligne
Est il possible de changer mon intitulé
Membre Plus --> Gros membre
C'est plus explicite.
Bon allez --> > (piscine) (et accesoirement travail) --> Je sors
Dernière modification par rikaix (18/07/2007 09:50:20)
Hors ligne
Moi aussi...
Hors ligne
Y'a quelque chose de sérieux à tirer et à comprendre sur ce topic ? Bande de trolleurs... ![]()
Je fais quoi moi maintenant pour protéger mon répertoire sur un mutualisé tout c*n d'ovh ?
Hors ligne
Comme expliqué dans ce Topic (Post #1) !
[Vous devez être identifié pour voir le texte caché.]
Et n'oublie pas de faire un robots.txt, comme décrit ailleurs (http://forum.cigiema.fr/t1362-Faire-sit … tml#p11762)...![]()
Alain AKA Arma
Hors ligne
Sinon le mieux est d'aller la : http://www.phptools4u.com/scripts/htaccess_gene/
Le script est bien mieux fait et il s'adapte en fonction de ton serveur (le type de cryptage) ...
Et le cas 'verouillé par le serveur' est géré par le script
Sinon pour faire à la main tu vas la : http://shop.alterlinks.com/htpasswd/passwd.php
Ou la: http://www.xs4all.nl/~remcovz/htpasswd.html
Ou encore ici : http://tools.dynamicdrive.com/password/
Peut etre là : en allemand puisque tu pratiques... http://www.internet-magazin.de/internet … access.php
Si tu aimes le copié collé : http://www.spijoprod.net/outils/htaccess_htpasswd.php
Bref crazy nous a encore réinventé la roue...
![]()
Dernière modification par rikaix (18/07/2007 15:11:48)
Hors ligne
Il n'y a aucune raison qu'un serveur interdise de créer un fichier dans n'importe quel répertoire qui t'appartienne...
A partir d'un programme de génération que tu y as placé.
CDB !
![]()
Alain AKA Arma
PS : Le cryptage DES Basic est accepté par tous les serveurs ! ![]()
Hors ligne
Et bien si et même oui
Et si j'en parle avec autant de vergogne, c'est que j'ai du traiter celà pas plus tard que la semaine dernière et sur un dédié (sous plesk8)!
Au début j'étais dubitatif et têtu comme tu l'es aujourd'hui... J'ai tenté tous les chmod du monde (par script par ftp en direct) et même en desespoir de cause j'ai fait un 777 sur le site entier rep et sous-rep ... Et rien à faire... Les fopen et autres fileput_contents restaient résistant et m'envoyaient comme un pied de nez un 'access denied' moqueur.
J'avais bien envie de tenter un 666 aussi, mais quelles en auraient été les conséquences ?...
J'entrepris, un instant, la solution de prendre mon ordinateur et son clavier et de le jeter par la fenêtre... 
(heu non, pas l'écran, il n'est pas à moi...)
Fusse une bonne solution ? Que nenni
Têtu je refusais de quitter mon ordinateur, tant que je n'avais pas trouvé la solution,
A court d'idées, je decidais enfin de me documenter (car ma mémoire biologique n'était peut etre plus à jour) sur cette fameuse restriction gérée par php sous le nom myterieux de open_basedir (puisque tu aimes manuelphp, enfin il vaut mieux prendre ses sources sur php.net, enfin comme tu aimes l'autre) voici un lien http://www.manuelphp.com/php/ini.open-basedir.php.
Et là c'était plus clair... J'ai bien vu dans la led du panneau avant de mon ordinateur que celui ci se sentait aussi soulagé et en même temps était bien conscient qu'il revenait de loin.
La solution que j'ai entrepris et qui fonctionne était donc
1) de créer le fichier avant de d'écrire dedans
2) de forcer le mode binaire
3) il existe une autre solution qui consiste à utiliser en fonction de l'os deux points ou point virgule (si windows) pour séparer les dossiers dans ton arborescence
![]()
Dernière modification par rikaix (18/07/2007 18:05:24)
Hors ligne
Si ton truc fonctionne, c'est parce que ton ordi a peur de passer par la fenêtre... C'est tout !
Open_basedir n'y est pour rien... Y'en aurait pas sur ta bécane que cela ne changerait rien !
Alain AKA Arma
PS : Je vais donc modifier la procédure en conséquence... Voir Post #1 de ce Topic...
Hors ligne

Ah mon dieu, tu as fait quelque chose pour les pâtes...
Fais quelque chose pour crazy !...
J'ai tout essayé et même avec des images... Pensant que j'avais à faire à un esprit infantile, mais rien à faire...
Celà n'a rien à voir avec la bécane ni avec le serveur, cela a à voir avec PHP !
Dernière modification par rikaix (18/07/2007 18:04:27)
Hors ligne
Tu n'as qu'à installer PHP666 Dark Zarbi - NO LIMIT Edition sur ton Serveur !
![]()
Alain AKA Arma
Hors ligne
Et là... Ce fut le silence...
Hors ligne

Dernière modification par rikaix (18/07/2007 18:47:00)
Hors ligne
Pages: 1 2
|
© 2006-2012 / A. G.☺ CiGi€M@®, 1997-2012 |
|
Reproduction totale ou partielle strictement interdite Contact : / |