1 / 18

Un peu de sécurité

Un peu de sécurité. Modal Web. Un peu de vocabulaire…. Injection SQL : : consiste à exploiter une faille d’un site afin d’y « injecter » ses propres requêtes SQL XSS (Cross Site Scripting) : consiste à exploiter une faille d’un site afin d’y déposer son propre code (JavaScript par exemple)

mercia
Download Presentation

Un peu de sécurité

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Un peu de sécurité Modal Web Modal Web - Baptiste DESPREZ

  2. Modal Web - Baptiste DESPREZ Un peu de vocabulaire… • Injection SQL : : consiste à exploiter une faille d’un site afin d’y « injecter » ses propres requêtes SQL • XSS (Cross Site Scripting) : consiste à exploiter une faille d’un site afin d’y déposer son propre code (JavaScript par exemple) • CSRF (Cross Site RequestForgery) : consiste à se servir d’un utilisateur pour effectuer diverses actions à son insu

  3. Modal Web - Baptiste DESPREZ Un peu de vocabulaire… • Usurpation de session : consiste à récupérer la session d’un utilisateur afin d’accéder à ses données • Captcha : petite image bizarroïde que seul un humain est capable de lire (et encore, pas toujours). • Bot : Robot informatique

  4. Modal Web - Baptiste DESPREZ … beaucoup de pratique ! • Injection SQL • Au mieux, le pirate accède au contenu de votre base de données (courriels, données personnelles ou financières, …) • Au pire, votre base de données est détruite

  5. Modal Web - Baptiste DESPREZ Injection SQL

  6. Modal Web - Baptiste DESPREZ Injection SQL • Comment se protéger ? • Avec PDO : $sth = $dbh -> prepare() puis $sth->execute(array($login, $password)) • Sinon : mysql_real_escape_string($login) • Restreindre les droits des utilisateurs Mysql (par exemple, créer un utilisateur Mysql lambda pour votre site) • N’affichez pas vos erreurs SQL !

  7. Modal Web - Baptiste DESPREZ XSS • 21/10/2010 : Twitter est victime d’une faille XSS. Résultat : des utilisateurs spammés, et les serveurs de Twitter à genou (et tout ça avec moins de 140 caractères !!!) • 09/01/2012 : Une faille XSS vient d’être découverte sur le site de La Banque Postale

  8. Modal Web - Baptiste DESPREZ XSS • Comment se protéger ? • A chaque fois que vous devez afficher un contenu pouvant être modifié par un utilisateur ($_GET, $_POST, …), utilisez htmlspecialchars($string) • Empêchez l’utilisateur d’insérer des caractères spéciaux : les signes &,$,*, etc. n’ont rien à faire dans un login par exemple • Vérifiez le type (entier -> ctype_digit(), etc.)

  9. Modal Web - Baptiste DESPREZ CSRF… • … ou comment profiter des droits d’un utilisateur sans que ce dernier ne s’en rende compte

  10. Modal Web - Baptiste DESPREZ CSRF • Comment se protéger ? • Il n’y a pas de solution miracle mais des pistes pour limiter la faille : http://www.serversidemagazine.com/php/php-security-measures-against-csrf-attacks/ • Comment amener les utilisateurs vers mon site contrefait ? • Google Trends !

  11. Modal Web - Baptiste DESPREZ Et si on combinait tout ? • Démonstration !

  12. Modal Web - Baptiste DESPREZ Usurpation de session • La session (démarrée avec session_start()) est en fait une chaîne alphanumérique partagée entre votre navigateur et le serveur. • Il est possible de la prédire (32 caractères quand même), de l’intercepter (via une faille XSS par exemple) ou de la fixer.

  13. Modal Web - Baptiste DESPREZ Usurpation de session • Comment se protéger ? • ini_set('session.use_trans_sid', '0'); • Régénérer votre session, pour compliquer un peu la tâche du pirate ;) <?php session_name("Mon_Beau_Site_Web" ); session_start(); if (!isset($_SESSION['initiated'])) { session_regenerate_id(); $_SESSION['initiated'] = true; } ?>

  14. Modal Web - Baptiste DESPREZ Bot • La plupart des attaques sur le net sont effectuées par des Bots plus ou moins intelligents

  15. Modal Web - Baptiste DESPREZ Bot • Comment se protéger ? • Protéger les formulaires publics par des CAPTCHA (http://www.google.com/recaptcha) • MAIS… • Les OCR se perfectionnent • Une base de données de 1000 captcha s’achète 1$ • Cf. « Comment amener un utilisateur vers mon site contrefait »

  16. Modal Web - Baptiste DESPREZ Captcha !

  17. Modal Web - Baptiste DESPREZ Mais aussi… • Attaques type DoS ou « Déni de service » • Manipulation de cookies • Modification du code avec FireBug • Google Hacking • Attention aux include / require! • Man in the Middle • Payant ne veut pas dire plus sécurisé ! • …

  18. Modal Web - Baptiste DESPREZ Conclusion • Ne faites pas confiance aux utilisateurs ! • Contrôler tout ce qu’il peuvent modifier ou afficher ($_GET, $_POST, …) • Protégez vos formulaires (captcha, modération, …) • Protégez l’authentification de votre site avec HTTPS (si possible)

More Related