OVH Cloud OVH Cloud

Beta Test d'un script de livre d'or.

42 réponses
Avatar
Steuf
Bonjour à tous,

je développe actuellement un script de Livre d'or nommé EXlor, pour
vérifier la compatibilité avec les hébergeur et vérifier qu'il n'y a pas
de BUG ou d'erreurs, et pour avoir l'opinion des utilisateurs pour
amiolérer certaines parties de l'administration, je lancerais une Beta
Test à la fin du mois de Juin du script.
La démonstration et l'inscription à la Beta Test se passe ici :
http://exinsidephp.free.fr/
En vous remerciant d'avance pour votre aide.

Steuf

10 réponses

1 2 3 4 5
Avatar
Guillaume Bouchard
Steuf wrote:
Oui je n'en doute pas, mais il n'est pas terminé donc je ne vois pas
l'intéret de distribuer le code...


Le problème que tu as c'est que tu ne veux pas distribuer ton code car
tu consideres qu'il n'est pas complet.
Il n'y à pas que Microsoft qui distribue des applis incompletes, je
dirais même que 100 % des softs disponibles sur internet ne sont pas
finalisés (à part quelques exception comme le "hello world" en C qui est
à mon avis stable et optimisé au maximum).
100 % des logiciels libres ne sont pas finalisés et des versions de test
sortent, avec le code source disponible et comme cela tout le monde peut
participer, il est vrai que cela force souvent à refaire une partie du
code mais tu le remarques bien plus vite. Je suis pret à parier une
biere bien fraiche que même finalisé ton code aura besoin de grosses
modifications, c'est le cas pour pour les gens experimentés comme pour
ceux qui le sont moins.

Mon sytème de note je dois le refaire en partie, j'ai mal géré le "sans
note" et j'enregistre le "-" dans la BDD, ce qui fait que je ne pouvais
utiliser une champs INT, je n'ai vu qu'après mon erreur ( Idiote en plus
), puis comme j'étais sur autre chose je ne l'ai pas corrigée... Et pour
finir j'ai oublié d'y revenir :-(


Utilise un champs int acceptant la valeur NULL.

Chaque requête Mysql passe par cette fonction :

function quote_smart( $value ) {
if ( get_magic_quotes_gpc() ) {
$value = stripslashes( $value );
}

if ( !is_numeric( $value ) ) {
$value = mysql_real_escape_string( $value );
}

return $value;
}


Attention :

$toto = "2 OR 1=1"
$sql = "SELECT... AND numero = ".quote_smart($toto).";

SELECT... AND numero = 2 OR 1=1



Ajoute ceci dans ta fonction quote_smart :

function quote_smart( $value,$int = FALSE ) {
if($int == TRUE){
if (ctype_digit($value)){
return $value;
} else {
die('See you soon');
}
} else {
if ( get_magic_quotes_gpc() ) {
$value = stripslashes( $value );
}
return mysql_real_escape_string( $value );
}
}

À relire, je ne garanti pas que mon cerveau soit capable de ne pas faire
d'erreur aujourd'hui en ce qui concerne la logique, j'ai trop donné.

L'antiflood c'est comme la majeure partie des lois de ce pays, et
comme 99,99% des protections antipiratage : elles se contournent en 5
minutes par quelqu'un qui veut le faire et elles ne font **donc
exclusivement qu'emmerder l'honnête citoyen**.



J'en ai marre de pirater mes cds achetés legalement à la fnac pour
pouvoir les encoder...

Quand on connait les divers test à effectuer c'est vrai que l'on a pas
besoin de 10 minutes entre chaque ;-)


Il y à mêmes des trucs qui te sautes au yeux tellement c'est gros dans
certains cas.

Affirmation gratuite. Même si 50 contributeurs de ce forum se mettent
à stresser ton appli, ça va pas casser trois pattes à un pingouin en
nombre de requêtes/seconde hein...


oui sans doute


J'espere, sinon c'est qu'il y à comme un problème de vitesse.

Comment puis je diffuser quelque chose qui n'ets pas termminé ?!? ( Je
ne suis pas Microsoft moi ;-) )


Voir plus haut, je ne connais aucuns programme diffusé qui soit terminé.
C'est faire preuve d'une grande (trop grande) estime de soit que de
prétendre que l'on à terminé un programme.

Je vais revenir sur un point que j'ai lu dans le thread, mais je ne sais
plus ou donc vous m'excuserez de ne pas quoter.
Tu disais que le script de saisie html (ha que j'aime pas ça, les gens
doivent laisser un message, pas faire une guirlande de noel) tu ne peux
pas faire passer sa sortie sur htmlspecialchars car cela pourrirais le
beau formatage.
Je te propose une solution, trés pérfectible, mais bon.
Lorsque tu reçoit le html, tu fais du remplacement de balises maison
(quelques regex et le tour est joué). Tu htmlspecialchars() le tous et
tu reremplaces les expressions maison.

En plus cela te permetra de verifier que tu ne generes pas n'importe
quoi comme html et que toutes tes balises sont bien fermées. et
correctement imbriquées.

--
Guillaume.


Avatar
John GALLET
Pourriez-vous arréter ce troll s'il vous plait !
Auquel tu viens de contribuer.


Vous me semblez quelqu'un qui ne réagit pas du tout "open source".
Et alors ? Est-ce une obligation pour avoir le droit de poster ici ? Non.

Certainement pas.

L'auteur souhaite, même si c'est discutable, ne diffuser son code qu'à une
liste de personne restreinte au lieu d'avoir un débat contradictoire
public. La quasi totalité des contributeurs ici présents pense que ce
n'est pas la meilleure approche. Maintenant une chose est claire : le
propriétaire des sources, c'est lui.

Donc que l'auteur se soit fait cueillir à froid parce que la situation
n'était pas claire, c'est un fait, maintenant si on en revenait à son
problème à savoir :
1) comment écrire une application portable
2) est-ce que son application est bonne en termes d'ergonomie
3) est-ce qu'il y a des failles au sens large dans l'application.

Donc puisque tu dis halte au troll, commence donc par répondre à ces
questions là.

a++;
JG

Avatar
Vincent Lascaux
"Steuf" a écrit dans le message de news:
42ac071a$0$5136$
Bonjour à tous,

je développe actuellement un script de Livre d'or nommé EXlor, pour
vérifier la compatibilité avec les hébergeur et vérifier qu'il n'y a pas
de BUG ou d'erreurs, et pour avoir l'opinion des utilisateurs pour
amiolérer certaines parties de l'administration, je lancerais une Beta
Test à la fin du mois de Juin du script.


Tu dois faire quelque chose d'assez particulier avec le nom : on peut même
pas s'appeler </div> par exemple (qui est pourtant un pseudo assez
répandu)... Je pense qu'un htmlentities sur le nom serait mieux que la série
de regexp que j'imagine (mais que je ne peux qu'imaginer puisque j'ai pas
les sources 0:) )

--
Vincent

Avatar
Steuf

Encore une fois je trouve que tu prends le probleme du mauvais coté : la
lecture du code n'est qu'un moyen de détecter les bugs. Ca ne change pas le
fait qu'il faille revérifier ou non apres que tu aies fait des modifs.



je voulais ditre par là, que certaines parties sont en cours de
programmation je sais déjà ( Et déjà prévu avant mon intervention ici )
que j'ai des choses à changer, donc présenter mon code je veux bien mais
on va me dire :

- Ca c'est pas bien

je vais répondre :

- Je le sais je suis en reflexion pour changer cette méthode de traitement

Le résultat : On ne m'aura rien appris de nouveau, et vous aurez perdu
votre temps sur des choses que j'avais déjà prévu de changer.

C'ets pour cela que dans un soucis d'organisation je voulais préparer
cette Beta Test et trier les Beta Testeur selon leur description et
écarter ceux qui ne m'avanceront à rien, et la lancer quand le script
sera terminé... Ca me parait logique. je voulais être très organiser, à
priori vous ne persevez pas cela comme moi :-(

Avatar
Steuf
Re,


Mon sytème de note je dois le refaire en partie, j'ai mal géré le "sans
note"



Donnée inconnue => NULL.


Oui je sais, j'allais justement me repporté la dessus, donc vous voyez,
si je vous montre mon code actuel avec les choses que je sais qu'il faut
que je change, ça va venir à ça :

-> tu dois faire ça

-> J'ai déjà prévu de le faire

Résultat vous avez perdu du temps, et je n'aime pas faire perdre du
temps aux gens qui peuvent m'aider.



function quote_smart( $value ) {
if ( get_magic_quotes_gpc() ) {
$value = stripslashes( $value );
}


Pourquoi défaire le boulot déjà fait pour refaire la même chose ?

if ( !is_numeric( $value ) ) {
$value = mysql_real_escape_string( $value );
}


Est-ce qu'on y gagne vraiment quelque chose entre le temps pour déterminer
si la chaîne est numérique et le temps pour ne rien faire, je n'en sais
rien...

Le besoin algorithmique, c'est : si les ' ne sont pas échappées
correctement, le faire, donc :
if(get_magic_quotes_gpc()) return $value;
return mysql_real_escape_string( $value );
// ou return addslashes($value);


Je prendrais en considération, car je sais que niveau optimisation du
code j'ai sans doute des choses à faire, c'est certain même, même si je
me débrouille toujours pour essayer de faire le code le plus propre
possible niveau synthaxe etc...



Et j'ai cru lire que cela suffisait contre les attaques Mysql, je ne me
suis peut être pas assez renseigné...



Non en effet, il y a aussi les attaques par les entiers. Tout dépend de
ton schéma de SGBDR. Je finalise un papier là dessus.


Intéressant, mais bon je crois que discuter de mon code ici même n'est
pas très pratique, donc je vais vous proposer quelque chose, vous me
direz ce que vous en pensez.



Tu as un exemple de code qui passe au travers de strip_tags ?


Bah tout ce qui est code javascript, et tout ce qui est javascript
intégré dans du code html, cad :
javascript:|onclick|ondblclick|onmousedown|onmouseup|
onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup



Bah oui mais non : mais encore faut-il les appeler. Tous ces machins là ne
sont appelables quand dans un tag valide (pas seulement <script> on est
bien d'accord, IMG, TABLE, BODY, OBJECT, j'en passe et des meilleures).


Parfaitement


En revanche si tu autorises certains tags en deuxième argument de
strip_tags, il faut tester et voir si ça traverse ou pas.


En fait mon problème c'ets posé sur ce point :

J'ai fait le choix au départ d'utiliser un éditeur HTML pour posté les
messages, de plus je voulais qu'il soit toujours possible de poster le
message même si le javascript n'est pas activé chez la personne qui veut
mettre son message.

Il fallait que j'autorise d'une part les balises de l'éditeur, donc
Strip_tags se trouvait alors limité, du coup ---> Code pour virer le
Javascript malicieux, bien sûr je suis sûr que je n'ai pas pensé à tout
justement par manque d'expérience ( Et c'est surtout dans ce but que je
me suis lancé dans se projet ).



C'est ce que j'ai pu lire ici et là, que Strip_tags n'empéchait pas tout...


Moi je suis plutôt approche Saint Thomas, je veux un contre exemple, pas
des "on dit". Je vais finir par aller lire le code source de strip_tags,
ça ira plus vite je sens...


:-)


JG




Avatar
Steuf
Code html ignoble, bon d'accord :

http://validator.w3.org/check?uri=http%3A%2F%2Fexinsidephp.free.fr%2Fbeta_exlor%2F&charset=%28detect+automatically%29&doctype=%28detect+automatically%29

Résultat : Code valide



C'est bon, c'est réparé... C'est à nouveau pas valide... :'P


Oui cela est assez simple et je connais le problème, problème qui est en
reflexion et j'ai eu une piste ici... :-)


Avatar
Steuf
Pourriez-vous arréter ce troll s'il vous plait !

Vous me semblez quelqu'un qui ne réagit pas du tout "open source".
Vous me donnez l'impression de vouloir les avantages (la force de
travail) de l'open-source sans l'inconvénient de perdre le pouvoir.

Ne pas diffuser les sources avant un hypothétique fini me semble idiot
et contre productif. Qui connait un code terminé ;) pourquoi y a-t-il
tant de version 2, 3 voire 10 ;)

Ce peut-être faire deux fois le travail que d'avoir les erreurs
importante le plus tôt possible : c'est tout refaire que de se rendre
compte des bourdes de conception à la fin.

Traduisez Open-Source en français, pour voir si nous avons la même
définition. Votre "vaporware" ne rime à rien tant que, dans l'esprit
Open-Source, vous ne mettrez pas du concret dans votre annonce : c'est
du propriétaire, ni plus ni moins.


Je résonne comme cela mais dans l'état actuel des choses, si je vous
donnes mes sources vous allez me montrer des problèmes que je sais déjà
d'avance que je dois les corriger, on aura perdu chacun du temps pour rien !

Je veux que l'on juge mon code, quand j'aurais jugé mes compétences
insuffisantes pour en faire plus, quand je serais arrivé au bout de ce
que je voulais faire. Enfin je résonne comme ça, parce que j'ai horreur
de perdre du temps et d'en faire perdre aux autres.

Maintenant si vous voulez vraiment les sources contactez moi à cette
adresse :




Et je vous envois les sources, dans un soucis d'organisation, je
mettrais un forum à disposition pour communiquer plus facilement des
divers problèmes.

Est ce que cela vous conviendrez ? ( Je parle ici à tous les
intervenants de la discussion )


Cordialement Démosthène


Avatar
Steuf

Je crois pas y avoir trouvé une liste des défaut des autres livres d'or qui
n'apparaissent pas dans ton script. En fait je serais incapable de dire moi
même quels sont leur défaut parceque je me suis pas vraiment penché sur les
scripts de livre d'or qui existent. Mais ca ferait assez vendeur de dire
"mon script est mieux que tel autre sur ce point parcequ'il permet de faire
ca et ca en plus"... Ou même "même si ce n'est pas encore implémenté, mon
but est de permettre de faire ca, chose que les autres scripts ne permettent
pas"


Je ne veux pas faire de vente le porjet est déjà à la base pour moi
apprendre en condition réél, et comme je dis cela a bien dépassé mes
espérences...



Si tu veux qu'on te donne les erreurs de codage que t'as faites, ca
serait quand même mieux que tu nous montre le code.


Quel est l'utilité de montrer un code qui n'est pas terminé ?!?



Et bien ca permet de voir les erreurs de codage que t'as faites ?


Oui, mais celle que je connais déjà depuis longtemps vous m'être redite
( Pas très français pas grave... :-) ), vous aurez perdu votre temps sur
une chose qui est déjà prèvu pour être refait...



Je comprends pas ton raisonnement : tu veux pas donner le code parceque
sinon on trouverait les failles.


Je n'ai jamais dit cela, je voudrais d'ailleurs que l'on trouve des
failles que je n'ai pas vu ! La question n'est pas là, je ne vois
absolument pas l'intêret de vérifier un code que je n'ai pas terminé...



Oui, je crois que j'ai lu un truc un peu vite... en fait ce que tu ne
voulais pas pour éviter les abus, c'était enlever l'antiflood, pas montrer
le code.


Heu oui ;-)

L'interet de vérifier un code (même non terminé) c'est que ca va vachement
plus vite d'y detecter des failles. Tu fais des preg_replace pour éviter les
injections javascript. Déjà moi je vois pas comment on peut en faire (en
fait je sais pas tres bien quelle partie gere la transformation texte =>
html). Ensuite si je veux tester, ca irait 'achement plus vite de voir les
regexp et de me dire "tient, ce cas là a pas l'air d'être géré" plutot que
de tester toutes les combinations auquelles je peux penser.


Oui sans doute, mais vois les raisons qui me poussent à ne pas vous le
donner tout de suite...



Avatar
Steuf

A mon avis, pour éviter tout ce débat un peut tendu, il aurait suffit de
venir présenter ton travail lorsqu'il aurait été terminé, ou du moins
suffisament pour être communiqué.


bah dans ce cas je ne vois pas l'utilité de faire une inscription
prélable à une Beta Test :-(

Je trouve ton idée de départ bonne, mais les arguments de tes détracteurs
aussi. Tu étais sans doute trop presser pour communiquer sur ton travail.


Non du tout je voulais juste organiser tout ça...

Avatar
Vincent Lascaux
Mon sytème de note je dois le refaire en partie, j'ai mal géré le "sans
note"


Donnée inconnue => NULL.


Oui je sais, j'allais justement me repporté la dessus, donc vous voyez, si
je vous montre mon code actuel avec les choses que je sais qu'il faut que
je change, ça va venir à ça :

-> tu dois faire ça

-> J'ai déjà prévu de le faire

Résultat vous avez perdu du temps, et je n'aime pas faire perdre du temps
aux gens qui peuvent m'aider.


Euh... tu nous a pas montré le code et c'est quand même arrivé. Je comprends
pas en quoi le fait de nous cacher le code va nous aider à deviner qu'un bug
est en cours de traitement ou non.
C'est sur qu'en gardant le code secret, tu auras moins de ce genre de
retours, simplement parceque tu auras moins de retour (puisque c'est
carrément plus dur de dire ce qui va pas dans le code sans avoir acces au
code).

JG



Juste en passant, il est coutume de ne pas citer la signature quand on
répond

--
Vincent



1 2 3 4 5