Espace membres

Bonjour Anonyme

Inscription

Email :
Mot de passe :

Mot de passe oublié ?

Nos scripts

MySpeach

MySpeach est un chat php sans base de donnée, rapide, léger et facile à prendre en main. DEMO

MyPHPUpload

MyPHPUpload est un script d'upload sécurisé écrit en PHP. DEMO

GrapAgenda

Agenda PHP et MySQL avec comptes utilisateurs et administration. DEMO

Livre PHP

Classe Secure :: sécurise les données PHP

Portion de code ajouté par sky le 23-06-2010

Classe qui est plus un ensemble de fonctions utilisable à n'importe quelle endroit du site.

Utilisation :
<?php
include('./includes/Secure.class.php');

// sécurise les données entrée par un utilisateur
echo Secure::safest($_POST['login']);

// prépare une variable à être utilisé dans une requête MySQL
$login = Secure::secure_sql($_POST['login']);

// enlève les accents d'une chaine
echo Secure::supprime_accents($_POST['texte']);
?>


La classe PHP :
<?php
/*
 * Class qui gère la sécurité des données qui transit
 */


class Secure{

    function __construct()
    {
        /* */
    }


    /*
     * Affiche un code html en toute sécurité !
     */

    public function safest($var, $charset='UTF-8')
    {
        $var = htmlentities($var, ENT_QUOTES, $charset);
        return $var;
    }


    /*
     * Sécurise les variables avant une utilisation au sein d'une requête MySQL
     */

    static function secure_sql($value)
    {
        if ((!isset($value)) || (is_null($value)) || ($value === ""))
        {
            $value = '';
        }
        else
        {
            if (is_string($value))
                $value = mysql_real_escape_string($value);
            else
                $value = (is_numeric($value)) ? ($value) : ("'ERROR: unhandled datatype in quote_smart'");
        }

        return $value;
    }


    /*
     * Supression des accents
     */

    public function supprime_accents($str, $charset='utf-8')
    {
        $str = htmlentities($str, ENT_NOQUOTES, $charset);

        $str = preg_replace('#\&([A-za-z])(?:acute|cedil|circ|grave|ring|tilde|uml)\;#', '\1', $str);
        $str = preg_replace('#\&([A-za-z]{2})(?:lig)\;#', '\1', $str); // pour les ligatures e.g. '&oelig;'
        $str = preg_replace('#\&[^;]+\;#', '', $str); // supprime les autres caractères

        return $str;
    }


    /*
     * On secure tous les valeur passé en POST
     * Les clef ne sont pas touché
     */

    public function secure_posts()
    {
        if($_POST)
        {
            foreach($_POST as $k => $d)
            {
                $_POST[$k] = Secure::safest($d);
            }
        }
    }

}
?>

Commentaires

Aucun commentaire. Soyez le premier !

Pseudo
Email
Commentaire

Merci d'écrire le code ici :