Topic Officiel de la programmation et du codage - Page 1 - Forums automobile et motos

ico
 ico, le Mercredi 07/04/2010 à 13h33'07
#79223 | 106 messages
Bonjour tout le monde,

Postez dans ce topic toutes vos questions concernant la programmation, le développement ou plus globalement le codage
Amis geeks bonjour !

Édit : Ico
Je me suis permis d'éditer car si on parle de codage, il faut bien entendu utiliser la balise code.


Dernière édition par ico le 08/04/2010 à 11:11

ico
 ico, le Mercredi 07/04/2010 à 13h36'51
#79224 | 106 messages
Je suis en train de créer un site générateur de site. En gros il fonctionne de façon autonome et est capable de lui même de générer la base de donnée qui elle même contient le site

Mon problème est le suivant. toute me pages sont au format HTML et on peut saisir une nouvelle page par le biais d'un formulaire. Seulement il y a un "mais". Je ne veux autoriser que le HTML sans autorisé le javascript ni les injections sql. J'ai essayer le code suivant, qui est une bonne alternative mais qui laisse dans la base du code !!!

<?php
//Retire les caractères spéciaux
$page_saisie mysql_real_escape_string(trim($_POST['page_saisie']));
echo 
$page_saisie;
?>


Existe-il une meilleure solution ?
Merci


Dernière édition par Raptor le 07/04/2010 à 14:11

Raptor
 Raptor, le Mercredi 07/04/2010 à 13h49'45
#79225 | 20984 messages
Bon déjà idéalement il faut enregistré le texte tel que saisie par le gus. Tu le traites en sortie.
Ne pas enlever de choses avant insertion en base, si ce n'est un trim() et un real_escape_strng ou un addslashes à la place.
Je te conseille de faire une fonction de préparation de la chaine à l'insertion en base.
Ensuite il faudra une fonction d'affichage de la chaine sortie de la base, qui elle s'assurera de ne pas afficher les choses interdites.
Il vaut mieux faire comme ça pour la simple et bonne raison que si un jour ta philosophie d'affichage change, ben tu peux l'appliquer aux nouvelles données et tu n'as rien perdu.
ico
 ico, le Mercredi 07/04/2010 à 13h58'54
#79226 | 106 messages
Ok chef.
Je vais donc faire ainsi. Mettre real_escape_strng et traiter en sortie. Par contre a tu un exemple de traitement en sortie? Ou un site proposant des indications en ce sens ?
Raptor
 Raptor, le Mercredi 07/04/2010 à 14h43'19
#79228 | 20984 messages
Alors je te propose donc quelques fonctions :
Une pour préparer la chaine avant insertion.
<?php
# Préparation de la chaine pour insertion en base
function prepareChaine($chaine) {
    
$chaine trim($chaine);
    
$chaine =  mysql_real_escape_string($chaine);
    return 
$chaine;
}
?>


Une seconde qui sert a nettoyer les tags non désirés.
<?php
# Fonction de nettoyage des tags non désirés
# http://www.php.net/manual/en/function.strip-tags.php#86964
function strip_tags_content($text$tags ''$invert FALSE) {
    
preg_match_all('/<(.+?)[\s]*\/?[\s]*>/si'trim($tags), $tags);
    
$tags array_unique($tags[1]);
    if(
is_array($tags) AND count($tags) > 0) {
        if(
$invert == FALSE) {
            return 
preg_replace('@<(?!(?:'implode('|'$tags) .')\b)(\w+)\b.*?>.*?</\1>@si'''$text);
        }
        else {
            return 
preg_replace('@<('implode('|'$tags) .')\b.*?>.*?</\1>@si'''$text);
        }
    }
    elseif(
$invert == FALSE) {
        return 
preg_replace('@<(\w+)\b.*?>.*?</\1>@si'''$text);
    }
    return 
$text;
}
?>


Et enfin ta fonction qui affiche ta chaine comme tu le souhaites.
<?php
Function affichageZaza($chaine) {
    
# On vire les balises scripts
    
$chaine strip_tags_content($chaine'<script>'TRUE);
    return 
$chaine
}
?>


Vala
Rom1336
 Rom1336, le Mercredi 07/04/2010 à 17h07'07
#79235 | 14602 messages
... ou comment me démoraliser avant que je me lance dans mon "mini site"...
Raptor
 Raptor, le Mercredi 07/04/2010 à 18h44'16
#79244 | 20984 messages
Mais nan t'as pas besoin de ça
fox58
 fox58, le Mercredi 07/04/2010 à 21h27'07
#79256 | 11753 messages
Intéressant cette langue ! ça vient d'où ???
Raptor
 Raptor, le Mercredi 07/04/2010 à 21h39'44
#79260 | 20984 messages
Tribue disparue du Chili ancien
fox58
 fox58, le Mercredi 07/04/2010 à 21h42'46
#79261 | 11753 messages
ah oué quand même
Rom1336
 Rom1336, le Mercredi 07/04/2010 à 21h44'30
#79262 | 14602 messages
C'est pas si compliqué, je commence à tout comprendre
bertranddac
 bertranddac, le Mercredi 07/04/2010 à 23h44'41
#79269 | 9698 messages
strip sting insertion return c'est pas compliqué votre language je connais.
Raptor
 Raptor, le Jeudi 08/04/2010 à 08h00'05
#79346 | 20984 messages
Du coup on sait pas si ça lui va à ico
ico
 ico, le Jeudi 08/04/2010 à 08h45'47
#79361 | 106 messages
Strip String Insertion Return me va très bien si elle est blonde à forte poitrine
Spoiler. Cliquez dans le cadre pour voir le message.
(comme celles qu'on voie sur les circuits de F1)

Plus sérieusement ça me va très bien.
Je ne comprenais pas bien ou tu voulais en venir au départ mais la je comprends parfaitement.
Merci beaucoup Raptor.
ico
 ico, le Dimanche 11/04/2010 à 10h47'17
#79737 | 106 messages
Je reviens un peu à la charge ce matin, avec une nouvelle question.

Je suis en train de réviser mon algorithme pour le système de connexion avec authentification par cookie.
<?php
   
/*
      Au moment de la connexion
      Si le case "se souvenir de moi" est validée 
         VarMdp <- MD5(login)
         VarCookie <- [checksum]+[%%]+[pseudo]+[%%]+[VarMdp]
         Création d'un temps de 6 mois de sauvegarde du cookie
         Création d'un cookie
         Retour au log

      Sinon, on log directement
   */
?>


Bon là où ça se corse, c'est au niveau de l'entrée du visiteur.
<?php
   
/*
      Au moment d'entrée sur le site
      Si un cookie existe
         On extrait pseudo et login
         On test si in compte existe
         Si il existe
              On log
         Sinon on détruit le cookie
              Et on relance la page de connexion
      Sinon
          On relance la page de connexion
   */
?>


Peut-on faire mieux ?
Raptor
 Raptor, le Dimanche 11/04/2010 à 11h13'15
#79740 | 20984 messages
Ça semble bon.
pixcars
 pixcars, le Dimanche 11/04/2010 à 14h09'09
#79756 | 12459 messages
Whoa c'est vachement compliqué à ce que je vois
ico
 ico, le Dimanche 11/04/2010 à 14h17'36
#79762 | 106 messages
Si peu
pixcars
 pixcars, le Dimanche 11/04/2010 à 14h24'28
#79765 | 12459 messages
J'ai failli être dans l'informatique, heureusement que j'y suis pas
Raptor
 Raptor, le Dimanche 11/04/2010 à 14h25'51
#79767 | 20984 messages
Boarf mais non, il a rien mis à part des phrases en commentaire là, y a pas de code
pixcars
 pixcars, le Dimanche 11/04/2010 à 14h46'54
#79770 | 12459 messages
Heuresement qu'il a pas de langage java et autre

Répondre

Vous devez être enregistrés et identifiés pour pouvoir accéder à cette fonction.

- Je souhaite m'inscrire gratuitement.
- M'identifier.
- Me connecter en utilisant un des mes réseaux sociaux :