KIT DE CREATION DE SITE INTERNET

codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 - 27 févr. 2008 à 10:37
jadu Messages postés 217 Date d'inscription mercredi 26 juillet 2006 Statut Membre Dernière intervention 16 août 2018 - 3 mars 2008 à 10:01
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/45873-kit-de-creation-de-site-internet

jadu Messages postés 217 Date d'inscription mercredi 26 juillet 2006 Statut Membre Dernière intervention 16 août 2018
3 mars 2008 à 10:01
FREE accepte le PHP5 sans soucis !
Il n'y a rien à demander !
Il faut et il suffit d'utiliser PHP5 sur toutes ses pages PHP !

Sinon, le code a des côtés intéressants pour un ex-débutant ;-))
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
28 févr. 2008 à 15:51
ok
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
28 févr. 2008 à 15:10
@Mldvb : "Quand a Coucou, quand tu dit « j'adore ta source... » je suppose que c'est encore ironique." => Toi tu va t'attirer les foudres de Zeus !

Ce qu'il à dit était autant voir PLUS constructif que mes commentaires, surtout au niveau du hashage et de l'encodage puisque c'est lui qui à apporté l'idée. Il à donc plus de mérite sur ce point.
mldvb Messages postés 8 Date d'inscription jeudi 15 décembre 2005 Statut Membre Dernière intervention 1 mars 2019
28 févr. 2008 à 15:00
Permettez moi de re-situer le contexte, il s’agit d’un site dont les accès sont limités a l’environnement familial. Ce site n’est même pas référencé.

Dans un premier temps j’avais même prévu des mots de passe en clair. Alors les prérogatives de la Cnil ou du ministère de la défense n’étaient pas vraiment mon problème.

Ceci dit je remercie Codefalse pour ces remarques un peu plus constructives et j’essaierai d’aller voir comment fonctionne ce hash dont je n’avais jamais entendu parler (et oui je débute …)

Quand a Coucou, quand tu dit « j'adore ta source... » je suppose que c’est encore ironique.

Merci tout de même de vous pencher sur mon code.
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
28 févr. 2008 à 14:53
c'est une invitation au troll ?
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
28 févr. 2008 à 14:46
oui, en effet, d'un point de vue éthique, le mot de passe doit etre hashé (voir crypté et hashé pour les paranos).
Par ailleur, préferer un hash sha1 au hash md5.

Pour le ministere de la défense, c'est ptete 128 en effet :) D'ailleur ca m'énerve un peu ca aussi, je comprends le "oulala on craint que vos conversations soient à but pédophiles, terroristes, etc" mais du coup où est la vie privée ? Je n'ai rien à caché, je veux juste un peu d'intimité. Savoir que ce que je dit, il n'y a que moi et le destinataire qui le savent.
Qui te dit que tes meilleures projets que t'a parlé avec ton pote par mail, M$ n'en est pas informé par un contrat illicite avec le ministère de la défense ? :p Ca parrait absure mais quand t'y pense, ca m'étonnerait meme pas ! :p
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
28 févr. 2008 à 13:53
si mais ca c'est le ministere de la defense qui s'en occupe (et c'est 128 d'ailleur je crois)

la cnil, c'est pour les acces aux informations privees, et vu la faille XSS de ce site, deja, il met tout sauf le password a notre disposition, de plus, l'auteur de la source a acces lui aux passwords (puisqu'il a la clef AES) et ca, c'est mal : de tres nombreux utilisateurs utilisent le meme password sur de nombreux sites, il est donc illegal de stoquer l'information... ce password doit-etre irrecuperable : donc hashe.
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
28 févr. 2008 à 13:49
@coucou : peut-etre que je me trompe mais on ne doit prévenir les supérieurs que si la clef est supérieur à 256bits non ?
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
28 févr. 2008 à 13:48
free supporte le php5, il suffit de lui mettre une directive dans un fichier htaccess
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
28 févr. 2008 à 13:47
j'adore ta source...
extract($_POST); // je vous renvoie à la doc de cette fonction
je t'informe que quand je te demandais ce qu'elle faisait, c'etait ironique, j'aurais pu dire "mais qu'est-ce-qu'elle fout la ?"
AES_ENCRYPT("'.$pass1.'","clecrypt")
ca me choque perso, j'ai toujours entendu que la cnil voulait qu'on hashe nos passwords et pas qu'on les crypte...
mldvb Messages postés 8 Date d'inscription jeudi 15 décembre 2005 Statut Membre Dernière intervention 1 mars 2019
28 févr. 2008 à 13:35
Je comprend un peu mieux, et effectivement il peut y avoir un souci de ce coté.
Mais même si on récupère le mot de passe, il faudrait connaitre le code de cryptage AES (qui n'est pas le même sur mon site que celui du Kit)
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
28 févr. 2008 à 13:23
euh.... correction :
$nomsg = '0 UNION SELECT login, password FROM users'
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
28 févr. 2008 à 13:22
$sql = 'SELECT * FROM messagerie WHERE `no` = '.$nomsg;
t'as une requete du genre, $nomsg est fixe par l'utilisateur, il n'a qu'a faire :

$nomsg = UNION SELECT login, password FROM users
mldvb Messages postés 8 Date d'inscription jeudi 15 décembre 2005 Statut Membre Dernière intervention 1 mars 2019
28 févr. 2008 à 10:52
Merci a tous pour vos commentaires.
Encore une fois je suis débutant en php et accepte toutes critiques.

ce site a été crée pour un usage perso, et si je l'ai posté c'est uniquement car il me semblait suffisant pour débuter et n'as pas forcement vocation a être utilisé tel quel.

C'est pourquoi je n'envisage pas une évolution possible de la base de donnée (comme le précisait Codefalse)

Il est certain qu'il faudrait améliorer la partie sécurité.
Pour "extract()", je me suis inspiré du site "phpdebutant" et je n'ai pas vu qu'il pouvait y avoir des problème de sécurité ou de performance.
De meme pour "error reporting(0)" j'essairai, a l'occasion de corriger.

Coucou747 tu parle de possibilité de récupération du mot de passe Admin, qui est codé dans une table User, lors de l'affichage d'un message dans la table messagerie, j'avoue que je ne comprend pas la subtilité.

Quand a la version de PHP, j'ai développé ce site pour qu'il fonctionne chez mon hebergeur (Free) qui est en PHP 4.4.3
cs_yoman64 Messages postés 592 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 4 décembre 2008
28 févr. 2008 à 04:03
Outre les perfs consommé inutilement comme le signale codefalse, Coucou a totalement raison, c'est pas pour rien que register_globals est à Off par défaut depuis php 4.2 pour des raisons de sécurités...

Coucou démontre très clairement les failles lié à ce que tu fais,mais si tu crois toujours pas, alors peut être croieras tu l'équipe php qui elle même déconseille fortement register_globals (parce que ce que tu fais reviens presqu'à la même chose...)

Plus d'infos: http://ca.php.net/register_globals

Sans parler que sur la doc d'extract ils disent justement de ne pas l'utiliser sur des données passé par l'utilisateur ($_GET,etc)
Infos: http://ca.php.net/manual/en/function.extract.php

Pour ce qui est de remplacer les fichiers index avec un exit par un .htaccess, je suis d'accord sur le fait qu'un htaccess est mieu , mais pour des questions de portabilité je crois qu'il est bon de garder un fichier index.html quand même, après tout apache n'est pas le SEUL serveur web au monde hein :P

Sinon il serait bon de respecter les standards (x)html (eh oui un cms devrait respecter les standards...) et de passer à php5, à l'aube du php6 le php4 fait très vieu jeux.... mais bon....

Ton projet est interessant, et je te souhaite bonne chance :)
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
27 févr. 2008 à 22:48
extract($_POST); permet a l'internaute d'interragir directement avec les variables definies ou non, ce qui peut provoquer des failles si ton site est mal concu. Utiliser $_POST directement limite la porte du $_POST a la ou il est utilise...

et si tu veux parler securite :

# $nomsg = $_POST['lect'];
# if (isset($_POST['lecture'])) {
# affich_msg($nomsg);

ici, tu appelles ta fonction sans verification de ce que tu lui envoies

# function affich_msg($nomsg){# $sql 'SELECT * FROM messagerie WHERE `no` '.$nomsg;

ici tu peux faire une XSS SQL a base de UNION SELECT (avec ce genre de choses, on peut reussir a recuperer un mot de passe admin)
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
27 févr. 2008 à 22:42
Utiliser extract demande au serveur php plus de travail, allouer plus de mémoire pour des variables qui, au final, t'auront fait gagner quelques minutes de ton temps et fera ramer ton serveur inutilement.
Dushaine Messages postés 5 Date d'inscription samedi 29 novembre 2003 Statut Membre Dernière intervention 27 février 2008
27 févr. 2008 à 22:33
rien a voir... ca n'influence en rien la sécurité
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
27 févr. 2008 à 22:23
tu sacrifies un confort d'ecriture a une securite...
Dushaine Messages postés 5 Date d'inscription samedi 29 novembre 2003 Statut Membre Dernière intervention 27 février 2008
27 févr. 2008 à 22:10
extract($_POST); // ca sert a quoi ?

>> ca sert tout simplement a ne pas devoir a chaque fois taper $_POST['var1'] $_POST['var2'], ... apres extraction tu mets simplement $var1, $ var2, ...
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
27 févr. 2008 à 13:46
Merci pour la mise à jour du zip, c'est mieux comme ca :)

Au lieu de mettre un index avec un exit ('INTERDIT');
Tu devrait mettre un htaccess, ca fait plus sérieux ! :p

Ensuite tu te cantonne à une base de donnée en mysql. Prévoit une base de donnée adaptable, que ce soit aussi bien pour du mysql, pgsql, et autre. Surtout étant donné la vocation qu'à ton projet. Un "Kit de création de site internet" ne peux se cantonner qu'à un type de bdd. Je te demande pas de faire le reste en opérationnel, mais de prevoir le fait que ...

De plus, des systemes de ce genre sont maintenant codés en Orienté objet. Pas parce que ca fait plus roxor, coderz killerz (lol) mais tout simplement car, quand c'est bien structuré, tu a la puissance de l'évolutivité et de la pérénité à moindre cout et avec une extrême rapidité !

Prends exemple sur tous les frameworks actuels, qu'ils soient pour php4 (déprécié) ou php5, tu aura toujours des classes. Il y a une raison a cela !

Evite l'utilisation de global, c'est un peu comme mettre du 777 (droits d'acces en écriture, lecture et execution pour tout le monde) sur tes fichiers secrets (mot de passes et companie)

Courage !
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
27 févr. 2008 à 12:28
quelques remarques
Header("location: test_session.php");
c'est header('Location: url_absolue'); normalement

ton html (ou xhtml ?) genere est completement faux :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

on trouve des balises center
on trouve
, mais parfois aussi des

pour le php :

if (mysql_num_rows($reqJ) > 0) {
$tabl_Journal= array();
while ($tabl_Journal = mysql_fetch_assoc($reqJ)) {
si ton if n'a pas de else, alors le if ne sert a rien...

error_reporting(0);
moi ca me choque, meme en production...

extract($_POST); // ca sert a quoi ?

sinon, tu fais plein de echos quand tu pourrais en faire un seul, c'est domage
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
27 févr. 2008 à 10:37
pourrais tu éviter de mettre des zip dans des zip histoire que l'on puisse commenter ton code sans télécharger le fichier.
Je sais, ca fait un peu feignant mais en meme temps ... hein ! ... :p
Rejoignez-nous