Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

845 commentaire(s) de kankrelune sur des sources sur tout CodeS-SourceS

Le : 08/07/2009 11:47:55
Source : CAPTCHA PHP SIMPLE
Je pense surtout que tu te mélange allègrement les pinceaux popGG... le code de la captcha est recréé à chaque exécution du script et est normalement, en toute logique, détruit après vérification... si tu fais F5 tu renvois la valeur du formulaire avec l'ancien code captcha donc ça ne passe pas... donc pour ce qui est de l'antiflood aucun soucis... .. .

Pour ce qui est de la reconnaissance des caractères c'est l'ocr dont je parle mais ça demande un boot spécifique ce qui ne sera pas le cas la plupart du temps donc...

"je pense qu'un ocr réussira quand même à le casser mais c'est amplement suffisant comme anti flood"

après tout dépend du site, et de la partie du site, à protéger... par contre ton code je vois pas l'intérêt... je fais comment si je suis un gros posteur et que je veux poster plusieurs message sur plusieurs sujet en simultané sur un forum... tu différencie comment un boot qui flood d'un mec qui fait simplement 2 post d'affiler parce qu'il a oublié de dire quelque chose... bref inutile surtout que la captcha à le même rôle mais a d'autre avantage en plus que ta fonction n'a pas... .. .

Par contre pour ce qui est du code...

Niveau génération de ton code captcha, toutoos, tu t'y prend mal... il doit être généré non pas dans ta partie formulaire mais directement dans ta captcha... un simple appel vers le fichier captcha.php (via la balise img) et tout le reste est automatiquement traité et non pas d'un coté je fais le code et de l'autre je génère l'image... qui plus est a chaque affichage de ta captcha ton code doit changer il est donc logique que ça soit elle qui génère ce code... donc au début de ton fichier captcha.php tu met...

if(!isset($_SESSION)) {
    session_start();
}
$_SESSION['captcha'] = '';
$chaine = array(
                'a','b','c','d','e','f','g','h',
                'i','j','k','l','m','n','o','p',
                'q','r','s','t','u','v','w','x',
                'y','z','A','B','C','D','E','F',
                'G','H','I','J','K','L','M','N',
                'O','P','Q','R','S','T','U','V',
                'W','X','Y','Z'
);

$nb = 0;
while( $nb++ < 6 ) {
    $_SESSION['captcha'] .= $chaine[rand(0,51)];
}

et si tu veux une captcha multipage tu peux insérer un id... personnellement je rajoute un temps d'expiration... .. .

2nd truc... il est totalement inutile d'utiliser md5 ça ne change rien si ce n'est que ça bouffe des ressources pour rien... si ton code est faux en md5 c'est qu'en clair il était faux... .. . ;o)

Je met 6 bon code mais peut être un peut trop simple et surtout gros problème de conception au niveau de la génération du code... .. .

@ tchaOo°


Le : 01/07/2009 00:15:50
Source : CHECKUSERACTIVITY : DETECTER L'INACTIVITÉ DU VISITEUR
Merci...

Mais du coup personne n'a d'avis/idée pour améliorer ça... j'ai pas eu le temps d'y repenser mais j'aime pas ce setTimeout() à chaque mouvement de souris... ça va si l'utilisateur est rapidement inactif mais pour un visiteur actif sur la page ça me plait moyen pas trop du tout... .. .

@ tchaOo°


Le : 30/06/2009 16:05:27
Source : CAPTCHA PHP SIMPLE
Slt... le résultat à l'air pas trop mal... je pense qu'un ocr réussira quand même à le casser mais c'est amplement suffisant comme anti flood... .. .

Si tu veux un exemple plus complexe regarde dans mes sources... dans mon profil... .. .

@ tchaOo°


Le : 30/06/2009 14:35:38
Source : XML MAPPING TO CLASS OBJECTS / CHARGEMENT / PARSING / MODIFICATION ET CREATION XML SIMPLIFIÉE
Yes source qui peut s'avérer très utile... je ne note pas car je n'ai pas regardé le code en détail... plus tard peut être... mais aillant déjà vu ta façon de coder je ne me fait pas trop de souci... .. . ;o)

@ tchaOo°


Le : 30/06/2009 00:46:25
Source : PROTECTION CONTRE LES FAILLES CSRF : CROSS SITE REQUEST FORGERIES
tiens...

function uv_getVar($var_name) {
    if (isset($_SERVER[$var_name])) {
        return $_SERVER[$var_name];
    }
    if (isset($_ENV[$var_name])) {
        return $_ENV[$var_name];
    }
    if(($env = @getenv($var_name)) !== false) {
        return $env;
    }
    if (function_exists('apache_getenv')) {
        if(($env = @apache_getenv($var_name, true)) !== false) {
            return $env;
        }
    }
    return '';
}

function uv_getIP()
{
    $proxy_ip = '';
    $i = -1;
    $where = array(
                    'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED',
                    'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED',
                    'HTTP_VIA', 'HTTP_X_COMING_FROM', 'HTTP_COMING_FROM'
                );
    
    while(!empty($proxy_ip) && isset($where[++$i])) {
        $proxy_ip = uv_getVar($where[$i]);
    }
    
    if (empty($proxy_ip))
        return uv_getVar('REMOTE_ADDR');
    else
    {
        $is_ip = preg_match('|^([0-9]{1,3}\.){3,3}[0-9]{1,3}|', $proxy_ip, $regs);
        if (!empty($is_ip) && (count($regs) > 0))
            return $regs[0];
                else
                    return $proxy_ip;
    }
}

@ tchaOo°


Le : 30/06/2009 00:39:08
Source : PROTECTION CONTRE LES FAILLES CSRF : CROSS SITE REQUEST FORGERIES
Slt...

- je n'avais pas vu pour le singleton (j'ai pas épluché la source en détail) du coup c'est pas du token dont je parle mais de la clef tokenKey() qui plus est ça fait peut être beaucoup une string de 32 char comme index (ça prend de la place pour rien dans une requête GET) et je ne suis pas sûr que le gain soit énorme niveau sécu

- tu sais comme moi que récupérer l'ip via php (et même tout court) est pas super fiable, d'autant plus quand l'internaute est derrière un proxy ou un réseau cependant tu as des variables transmise par les proxy notament les x_forwarded et http_via qui peuvent être utile si renseignées... tu pourra trouver un exemple dans le code source de phpmyadmin... après il reste toujours une marge d'erreur mais c'est mieux que de se baser uniquement sur remote_addr

- j'avais pas fait gaffe... j'ai rien dis...

- oui tu peut facilement modifier le user_agent mais encore faut il connaitre le user_agent de la personne que tu vise ce qui est faisable mais c'est une variable de plus... de toute façon si un gars réussis à récupérer le user_agent exacte (versioning & co) de sa cible il y a fort a parier qu'il aura récupéré l'ip aussi donc bon... c'est pas pour ce que ça change

concernant l'ip elle même maintenant... tu récupère le host via un classique gethostbyaddr() tu extrait l'ip qui est généralement renvoyée par le serveur BAS sur lequel est relié l'internaute du coup tu te retrouve avec le non du FAI et généralement avec le code du NRA (des fois même le n° de carte DSLAM et/ou les vp/vc DSLAM/BAS mais c'est plus rare faut pas trop compter dessus) que tu peux coupler avec les deux premiers blocks de l'ip qui sont propres au FAI le tout mixé via md5 avec, éventuellement, le user agent et là ton token reste fiable tout en évitant le plus possible les pb dû aux ip dynamique... c'est un poil moins fiable que l'ip au complet car certains FAI on une résolution ip => host un peu pauvre en infos (pas de nom de NRA par ex) mais ça reste, à mon sens, suffisamment fiable pour la plupart des utilisations... tu peux aussi te servir de uniqid() pour corser le tout...

uniqid(md5($uvars),true)

mais là ça devient de la parano je pense... .. . ;o)

@ tchaOo°


Le : 29/06/2009 17:08:28
Source : PROTECTION CONTRE LES FAILLES CSRF : CROSS SITE REQUEST FORGERIES
ah au passage... stock ton token la première fois que tu le génère... inutile de faire 36 fois md5(... .. . ;o)

@ tchaOo°


Le : 29/06/2009 17:05:57
Source : PROTECTION CONTRE LES FAILLES CSRF : CROSS SITE REQUEST FORGERIES
A l'époque ou je travaillais sur le code de Xoops on avait intégrés les tokens dans les formulaire admin... l'idée ne date pas d'hier et c'est la meilleur solution, même la seule, pour lutter contre ce genre d'attaque... cependant l'utilisation de l'ip dans le token peut être problématique avec des utilisateur dont le FAI gère les ip en dynamique (on avait de gros pb avec AOL à l'époque) le mieux étant d'utiliser l'host de l'ip et non l'ip elle même... couplé par exemple avec le user_agent... beaucoup plus fiable... .. . ;o)

Au passage ta méthode pour récupérer l'ip est trop simpliste et peu fiable et à partir du moment ou tu check les tokens à chaque action tu n'a pas besoin de checker la présence de code executable dans les variables (ce qui pourrais poser pb dans un site comme code sources)

@ tchaOo°

@ tchaOo°


Le : 29/06/2009 16:07:10
Source : MOT DE PASSE EN HTML
le problème ici c'est que papa donnera le même hash que...

ppaa
paap
aapp
appa

ect...

Dsl Kazma j'avais dit que je ferais un brute force sur ton code mais j'ai pas le temps de fouiner dans mes sources C pour retrouver un brute forceur mais ma remarque reste d'actualité... l'avantage c'est que les collisions de cet algo diviseront par beaucoup le temps de recherche... sachant qu'un code C correcte pourra tester à peu près entre 3 et 4 millions de pass par secondes vu le nombre de collisions possible je dirait entre 2 minutes et 2j grand max pour cracker un pass de longueur moyenne... car une fois que tu as trouvé "aapp" si on reprend l'exemple ci dessus c'est facile de retrouver "papa"... bref comme dit précédament pour un accès restreint sans script >> .htaccess

@ tchaOo°



Le : 25/06/2009 20:46:34
Source : TAILLEFONTE
Uhm... menu du navigateur > affichage > taille du texte ou zoom... .. .

@ tchaOo)





Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version


HTC Magic

Entre 429€ et 429€


Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,156 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.