Page 1 sur 2
recherche module d'incription/login/sécurisé mais simple...
Posté : 12 oct. 2006, 12:10
par ploplop
... pour pouvoir l'adapter a mon site.
Je trouve des bouts de codes par-ci par la, ou qui generent plein de tables dans la base de données mais rien de simple et homogene.
Un pack avec pas trop de fichiers dans tous les sens (juste inscription/login... cookies et controle du login), mais assez complet pour sécuriser mon site.
Vous savez ou on peut trouver ça ?
Merci
Posté : 12 oct. 2006, 14:21
par Cyrano
As-tu songé à le construire toi-même ? Sinon, regarde donc sur
phpscripts-fr
Posté : 12 oct. 2006, 14:47
par ploplop
Immense merci pour l'adresse Cyrano, je n'ai pas regardé le detail des scripts mais ça a l'air d'etre la caverne d'ali BABA (enfin pour ce q j cherche).
Sinon c'est sur que j'allais me resigner a développer moi meme, mais j'entend tellement parler de failles de securités, et vu q je ne suis pas spécialiste ds ce domaine et que je tiens a avoir un minimum de sureté sur mon site, ça m'embettait de faire un truc leger.
Posté : 12 oct. 2006, 19:10
par Cyrano
...Sinon c'est sur que j'allais me resigner a développer moi meme....
Qu'est-ce qu'il faut pas lire des fois
Hé, programmer n'est pas forcément une corvée et en outre, la sécurité commence avec le bon sens. En apprenant à le faire toi-même, tu apprendras aussi à lire et à détecter les problèmes potentiels de sécurité. Mais si tu prends un script tout fait, sauras-tu y détecter quoique ce soit ?
Vouloir un site, c'est très bien, mais il ne faut pas s'imaginer qu'en trouvant un code tout fait on a tout gagné, on peut gagner bien des surprises des fois. Et dans ce cas, je dirais qu'il faut réaliser soit qu'il faut s'y mettre soi-même soit établir un budget et faire faire le travail par un professionnel averti

Posté : 12 oct. 2006, 23:58
par ploplop
J'ai bien noté ton clein d'oeil pour faire appel a tes services (d'ailleurs j'ai vu tes sites et tes grandes competences) mais g pas un rond...
Nan je rigole aussi mais si j'ai bien compris ce que tu veux dire puisque après avoir voulu faire mon site en modifiant un modele, j'ai bien compris que c'etait souvent plus rapide et bien plus instructif de le faire soit meme.
Mais j'avoue que pour le module d'inscription et de sessions, je beigne dans un flou de bouts de codes hachés et infinis et d'avertissements sur tous les forum ou on dit que la securité... c'est compliqué.
Et je suis tellement habitué a ramer pour faire des codes qui ne marchent pas et decouvrir que finalement, c'est a cause de conneries d'inattention ou d'incompatibilité avec l'hebergeur ou autre versions de langages... que la je me contente de lire et decrypter.
Bon en fait le module q j'ai trouvé a l'air de dater et de ne pas etre trop protegé, m'enfin je le comprend, si mon site fait des miracles, je verrai a t'appeler pour une meilleur protection
Donc pour moins te choquer, on va dire que c'est un point de départ... m'enfin merci encore pour ton attention.
Posté : 13 oct. 2006, 01:01
par zeuf
Salut Cyrano, Salut Ploplop,
En tout cas Ploplop si tu veux en savoir un peu plus sur la sécurité, sans trop te prendre la tête mais avoir un début d'approche assez sérieux, je t'invite à feuilleter la documentation officiel du PHP 5 et notamment le chapitre IV qui traite de la sécurité.
IV. Sécurité
Table des matières
22. Introduction
23. Considérations générales
24. Binaires CGI
25. Installé en tant que module Apache
26. Sécurité des fichiers
27. Sécurité des bases de données
28. Rapport d'erreurs
29. Utilisation des variables super-globales
30. Données transmises par les internautes
31. Guillemets magiques
32. Masquer PHP
33. Être à jour
Ainsi que le documentation MySQL 5 qui traite de la sécurité :
5.4. Sécurité générale du serveur
5.4.1. Guide de sécurité
5.4.2. Protéger MySQL contre les attaques
5.4.3. Options de démarrage qui concernent la sécurité
5.4.4. Problèmes de sécurité avec LOAD DATA LOCAL
Eet enfin, un petit tour du côté d'Apache (
http://httpd.apache.org/docs/2.0/howto/auth.html) pour compléter cette formation et tu sauras tout ce qu'il faut mais l'essentiel est de ne pas oublier : Impossible de se protéger contre le mal de façon absolue, sinon en ne faisant jamais rien.
Bonne lecture !
Zeuf
NB : J'ai mis la documentation officielle (HTML, XHTML, PHP, MySQL) au format .chm (fichier d'aide Windows rapide et pratique) sur un serveur, pour ceux que cela intéresse :
http://membres.lycos.fr/zeuf/
Posté : 13 oct. 2006, 08:12
par Cyrano
J'ai bien noté ton clein d'oeil pour faire appel a tes services (d'ailleurs j'ai vu tes sites et tes grandes competences) mais g pas un rond....
Mon intervention n'était pas dans ce sens d'autant moins que je n'ai absolument pas le temps en ce moment. Il faut aussi comprendre que je suis un peu maniaque quant à la qualité et à la propreté du code. Donc torcher vite fait mal fait un site qu'on met en ligne m'apparaît comme une abberation totale pour la simple raison qu'à court ou moyen terme ce sont des problèmes autrement plus grands qui vont apparaître et les corrections prendront infiniment plus de temps que s'il y avait eu un travail propre au départ.
Mais du coup, ramasser n'importe quel script sur le net, c'est aussi s'exposer à trouver de tout et de n'importe quoi. Il y a des bons scripts, beaucoup plus rarement des très bons scripts et malheureusement dans la majeure partie des cas, il y a du code qui ne fonctionne que sur la machine de celui qui l'a écrit.
C'est pour ça que parfois il me semble que vouloir absolument un site n'est pas une bonne idée ou alors pourquoi ne pas se tourner vers des applications complètes et proprement faites : je songe à un certain nombre de CMS comme Joomla, DotClear, SPIP et quelques autres : il n'y a pratiquement pas besoin de toucher quoique ce soit dans le code, c'est même mieux de ne pas le faire et on peut arranger l'interface graphique à son gout. Quant aux fonctionnalités, elles sont en générales plus nombreuses que ce dont on a besoin, il suffit d'activer celles qu'on veut.
Posté : 13 oct. 2006, 15:07
par ploplop
Merci Zeuf pour la Doc, elle a l'air bien complete, meme si orientée pour les utilisateurs confirmés (je n'ai lu que le début, mais dejà je ne comprend pas ce que c'est les CGI, et comment savoir si j'utilise PHP comme unCGI executable ou comme un module du serveur Web ?!!).
M'enfin y'a de quoi trouver pas mal d'info interressantes, je vais m'y replonger.
En outre, sauf erreur de ma part, le lien vers ton site sur lycos ne marche pas (ou n'est pas accessible).
Re-merci Cyrano pour ta presence fort encourageante. Le site que je développe est assez spécial et je ne trouve pas de portail qui puisse etre adapté a mes besoins, ou alors y'aurait plein de trucs inutiles et pour moi, un site pour etre agréable doit etre le plus simple possible... et donc je dois le faire moi meme (ce qui est en bonne voie mais ce module d'inscription/login me fait gros souci).
Mais je trouve juste étonnant qu'on puisse trouver des modules pour tout ce qui est utilisation courante (forum, albums photos, pronostiques...) et rien sur un module de login / inscrition simple et sûr, qui semble pourtant concerner presq tous les sites.
Finalement j'ai essayé un script du site que tu m'a indiqué mais il ne marche qu'a moitié (il n'inscrit rien ds la BDD qu'il a pourtant créé), il a l'air de compter juste sur les cookies... ce qui ne va pas si l'utilisateur efface ou refuse ses cookies)... enfin bon, je suis peut-etre mongol mais je fais un blocage sur cette derniere pierre de constructoin de mon site... va falloir forcer.
Posté : 13 oct. 2006, 18:12
par ploplop
Bon il me semble bien avoir trouvé ce qui me manquait, bon ils date de 2,5 ans m'enfin faut esperer qu'il n'est pas trop dépassé.
Le hic c'est qu'il fait appel a un ficher .js ... du coup ça ne doit pas marcher si le navigateur refuse les js nan?
A oui l'adresse:
http://bob.developpez.com/phpauth/
Posté : 13 oct. 2006, 18:27
par Cyrano
Le développement de ce type de module n'est pas insurmontable.
Premier point, utiliser une session, ça va simplifier les traitements et l'affichage.
Second point, établir ce qu'on doit avoir comme données à manipuler : ça concerne l'utilisateur, donc : nom, prénom, adresse de courriel, pseudonyme (facultatif) et mot de passe. D'autre part il est souhaitable que le mot de passe soit chiffré ou à tout le moins haché dans la base.
Sur ce schéma succinct, il ta faut quoi ? Un formulaire d'inscription et un autre qui sera alternativement un formulaire d'identification ou un formulaire de déconnexion.
Le premier va enregistrer les informations dans la base et chiffrer le mot de passe;
Le second va consulter la base et vérifier que les paramètres inscrits sont les mêmes que ceux enregistrés puis activer un paramètre de session;
Le dernier va supprimer ce paramètre de session.
Enfin, les pages à accès restreint devront comporter un test de vérification de la validité du paramètre de session et selon le cas afficher la page ou rediriger vers la page d'identification.
Partant de là, tu as les éléments pour construire ton propre système

Posté : 13 oct. 2006, 18:53
par ploplop
Bon entre ton résumé et la traduction en terme php par le site, l'espoir renait.
Merci pour tout.
A oui juste ma question sur .js, aucun javascript ne peut etre lu si le navigateur les refuse ou ça peut passer sous certaines conditions ?
Et aussi, bravo pour ta signature.

Posté : 13 oct. 2006, 19:08
par Cyrano
Pour le JavaScript, s'il est désactivé coté navigateur, rien ne fonctionnera : ceci dit, les fondus qui désactivent ça sont assez rares et sont à classer dans la catégorie des paranos

Posté : 13 oct. 2006, 19:41
par ploplop
Je pensais aussi que tout le monde activait les js et puis la 1ere personne chez qui j'ai testé mon site ne supportait pas les js, du coup ça m'a bien refroidi et j'ai remplacé tous mes js par des codes php... et du coup c'est moi que ça a rendu parano et qui n'ose plus en faire.
Tu sais si y'a moyen de detecter si js est accepté par le user pour lui dire d'activer l'option en cas de non affichage du formulaire ?
Posté : 13 oct. 2006, 20:27
par Cyrano
Stresse pas trop avec ça, mais garde toujours une chose à l'esprit : une règle primordiale en développement web est de ne jamais faire confiance à l'utilisateur : tu ne peux donc pas baser ton application sur des langages clients, entends par là des langages exécutés sur la machine de l'internaute : ça inclut bien entendu le JavaScript. Ça veut donc dire par exemple que si tu fais une validation de formulaire en javaScript, ça ne te dispense pas de développer une validation en PHP coté serveur. Je dirais même qu'il faut impérativement développer la validation en PHP AVANT la validation en JavaScript parce que sinon, ton JavaScript validant les données, tu ne pourras jamais tester celle en PHP.
Pour tester si le JavaScript est supporté, je ne sais pas trop. Mais l'astuce qui me vient à l'esprit, ce serait un petit bout d'AJAX : tu crée un petit script qui va par exemple initialiser une variable de session $_SESSION['jsActif'] à 1 si c'est ok mais dont la valeur par défaut sera à 0. Coté client, tu crée un appel de fonction JavaScript qui via un objet XMLHTTPRequest va appeler ton script PHP : si ça marche, ta variable vaudra 1 et ça voudra dire que le JavaScript fonctionne, sinon ben ta variable restera à 0 et tu en seras pour tes frais
Mais bon, c'est une astuce imaginée à l'arrache, il existe peut-être plus simple (plus fiable j'ai des doutes, mais plus simple).
Posté : 13 oct. 2006, 20:37
par zeuf
Salut !
Ce n'est pas que le lien que j'ai mis ne marche pas, c'est qu'il ne marche plus et pour en connaître la raison -->
http://www.phpfrance.com/forums/viewtopic.php?t=23199
Pour la documentation, elle est disponible ici maintenant :
http://www.aidadompc.info/docs/.
Pour le contrôle d'accès à ton site, commence par utiliser la variable $_SESSION au début (PHP 5). Elle est super simple à comprendre et à utiliser
Exemple (et en gros) :
1 - Tu récupères les logins de l'utilisateur (Identifiant et mot de passe par exemple) depuis un formulaire HTML grâce à $_POST.
2 - Tu contrôles que les logins existent dans la Base MySQL ou autre (Il faut qu'au préalable il existe dans ta base ces logins. A toi de voir comment tu veux lui fournir son identifiant et son mot de passe). Si oui, tu autorises l'accès au site grâce à $_SESSION
3 - Tu fais un contrôle sur chaque page de ton site nécessitant l'accès par login (Si $_SESSION contient les logins, tu peux voir la page, sinon tu ne peux pas).
Voilà. Allez au boulot !
A +
Zeuf
PS : cela reste de la sécurité élementaire, donc simple. Si tu veux du costaud tu peux passer par SSL (
http://www.commentcamarche.net/crypto/ssl.php3). Mais alors si la doc PHP te semble difficile d'accès, bonne chance pour le SSL !