view index.php @ 71:464f4b94ee27

Filtrage de certaines balises HTML, meilleure détection de la validité XML. Plusieurs choses en une, toute tournant autour d'un meilleur traitement du commentaire soumis: - on utilise désormais stripslashes pour correctement gérer la valeur d'éventuels arguments - on filtre, via le DOM, les balises qui pourraient s'avérer peut sure, ou être utilisé pour une attaque de type cross-site scripting. L'utilisation de getElementsByTagName devrait se charger d'attaque du type <html:script /> ou l'utilisateur utilise un namespace non standard pour déjouer une comparaison de chaînes.
author Franck Deroche <webmaster@defr.org>
date Thu, 20 Mar 2008 19:45:08 +0100
parents f6552a610bfd
children 2a03eac5e9ca
line wrap: on
line source
<?php
    require_once("classes.php");
    $sk = Factory::getSkeleton();
    // Détermination de la requête à exécuter
    if(!array_key_exists('mode', $_GET)) {
        $query = "
        SELECT * 
    	FROM Mess 
        WHERE num_version='Version 10'
        ORDER BY num_mess DESC
        LIMIT 10
        ";
    	$sk->setTitle('Dual { v10 : OS Edition } Blog');
    } elseif($_GET['mode'] == 'cal') {
        $sk->showCalendar(true);
        $year = intval($_GET['year']);
        $month = intval($_GET['month']);
        $sk->setCalendarMonth($month, $year);
        $sk->setTitle(TextUtils::getMonthName($month) . " $year - Dual Blog");
        $query = "
        SELECT * 
    	FROM Mess 
        WHERE 
            YEAR(DatePost) = $year AND
            MONTH(DatePost) = $month
        ORDER BY num_mess DESC
        LIMIT 10
        ";
    } elseif($_GET['mode'] == 'tag') {
        $tag = $_GET['tag'];
        $sk->setTitle("Tag: $tag - Dual Blog"); 
        $query = "
        SELECT * 
        FROM Mess m
        LEFT JOIN Lien_Tags_Posts l ON m.num_mess=l.idMess
        LEFT JOIN Tags t ON l.idTag = t.idTag 
        WHERE t.Tag='{$_GET['tag']}'
        ORDER BY num_mess DESC
        ";
    }
    $db = Factory::getDB();
    $db->query($query);
    while($row = $db->GetRow()) {
      $post = new Post($row);
      $sk->addBlogPost($post->format());
      $sk->checkUpdateTime(strtotime($row['DatePost']));
    }
    echo $sk;
?>