Source code security review challenge at Confoo 2012 - Montreal (confoo.ca)
The audience was challenged in attempting to spot security vulnerabilities in a series of source code examples.
Ce premier cours présente les notions d'objet et de classe, et le lien entre elles. Il présente aussi le premier concept clé de la programmation orientée objet, à savoir l'encapsulation des données. Les exemples sont fournis dans plusieurs langages (Python, C#, Java, C++ et PHP).
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.
Cette conférence présente le framework Johnny-Five qui permet de programmer des cartes embarquées à l'aide d'un module Node.js. Après un tour rapide du JavaScript et de son fonctionnement, en particulier la programmation fonctionnelle et l'exécution pilotée par les évènements, la présentation décrit Node.js et aborde rapidement son fonctionnement. La troisième partie présente Johnny-Five et plusieurs exemples simples de contrôle d'une LED et de l'utilisation des entrées/sorties numériques et analogiques.
Ce premier cours présente les notions d'objet et de classe, et le lien entre elles. Il présente aussi le premier concept clé de la programmation orientée objet, à savoir l'encapsulation des données. Les exemples sont fournis dans plusieurs langages (Python, C#, Java, C++ et PHP).
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.
Cette conférence présente le framework Johnny-Five qui permet de programmer des cartes embarquées à l'aide d'un module Node.js. Après un tour rapide du JavaScript et de son fonctionnement, en particulier la programmation fonctionnelle et l'exécution pilotée par les évènements, la présentation décrit Node.js et aborde rapidement son fonctionnement. La troisième partie présente Johnny-Five et plusieurs exemples simples de contrôle d'une LED et de l'utilisation des entrées/sorties numériques et analogiques.
PKI Android : Installer, gérer, sécuriser et utiliser un secretOCTO Technology
Comment installer, gérer, sécuriser et utiliser une clef privée ? Comment partager une clef privée entres applications? Comment résister au vol du téléphone? Via des API cachées, des scénarios originaux et autres subtilités.
Ce cours présente le notion de qualité de code et quels sont les critères et pratiques à adopter pour produire du code de qualité. Il présente les erreurs de programmation les plus fréquentes auprès des apprentis programmeurs. La deuxième partie du cours présente la notion de convention de codage et en particulier le PEP 0008 qui décrit des conventions à adopter lorsqu'on programme en Python.
Toute application Web dite dynamique nécessite une base de données ainsi que des outils qui permettront de manipuler ces données.Dans la palette des outils à la disposition des développeurs PHP, on trouve entre autres les DBAL (DataBase Abstraction Layer ou couche d'abstraction de base de données) ou les ORM (Object Relational Mapping ou mapping objet-relationnel).
Toute application Web dite dynamique nécessite une base de données ainsi que des outils qui permettront de manipuler ces données.
Dans la palette des outils à la disposition des développeurs PHP, on trouve entre autres les DBAL (DataBase Abstraction Layer ou couche d'abstraction de base de données) ou les ORM (Object Relational Mapping ou mapping objet-relationnel).
El artículo habla sobre los avances en la relocalización de asentamientos precarios en las márgenes del Riachuelo en el marco del plan de saneamiento de la cuenca. Se mudaron 130 familias de El Pueblito a viviendas en Villa Soldati. El subsecretario de Desarrollo Urbano y Vivienda destacó la importancia de este trabajo para mejorar la calidad de vida de las familias y liberar el camino de la ribera. El intendente de Lanús también resaltó los progresos como la construcción de un ecopunto para tr
How to increase e mail newsletter subscribers by 200% 2razorsocial
This document provides tips to increase email newsletter subscription rates by at least 200%:
1. Implement social proof on your website by displaying your large number of subscribers to influence others.
2. Provide an incentive for subscribers such as a free guide or report to motivate people to subscribe.
3. Use a popup to catch people's attention, but ensure it provides value and isn't annoying. Test different wording in calls to action like "subscribe now" versus "get updates" to optimize conversions.
Cris de Lara comenzó a pintar a una edad temprana, pero dejó de lado el arte durante sus años universitarios. A los 26 años sintió la llamada del arte nuevamente y fundó su propia empresa de diseño gráfico. Más tarde, se centró en la ilustración, pintura digital, capacitación y consultoría. Actualmente trabaja como ilustradora freelance, creando una variedad de dibujos y pinturas que mezclan estilos realistas y de cómics.
G 1 sns-new era of cnt sensing technologyChung Da-woon
SNS Revolution is a Korean company founded in 2006 that develops carbon nanotube (CNT) sensor technologies. It has developed CNT oil sensors that can monitor the condition of transformer and engine oils in real-time without extracting gas. This allows for lower cost monitoring and helps improve grid safety and efficiency. The sensors have been adopted by major Korean companies and SNS is pursuing partnerships in other countries.
El proyecto tiene como objetivo principal motivar e integrar socialmente a un colectivo a través de las nuevas tecnologías. Se llevará a cabo en el Centro Guadalinfo de Hornachuelos en colaboración con la Asociación contra el Cáncer. El proyecto consiste en sesiones semanales para enseñar el uso de ordenadores e Internet y crear presencia online a través de redes sociales y un blog.
Este documento presenta las ponencias de cuatro estudiantes sobre diferentes ideologías políticas contemporáneas. Cesar Recra habla sobre el socialcristianismo, Helen Gamarra sobre la democracia cristiana, Carmen Milla sobre el neoliberalismo y los partidos verdes, y Sara Cuellar sobre el nacionalismo. Cada presentación describe la historia, características y principios básicos de la ideología correspondiente.
This document summarizes the history and design of the Karuselli chair by Yrjö Kukkapuro from 1964. It discusses how the chair was inspired by a lecture in 1958 and has since been in permanent collections at design museums in Helsinki, London, Switzerland, and Belgium. The chair gained recognition after being featured on the cover of Domus magazine in 1966 and was chosen as one of the most important designs of the 20th century. Karuselli continues to be produced by the manufacturer Avarte.
Reading Group Presentation: Web Attacks on Host-Proof Encrypted StorageMichael Rushanan
This presentation exposes the current threat model to host-proof encrypted storage, details of vulnerability exploitation per application, and multiple pointers to relevant academic research in web security. I presented these works to a weekly Security and Privacy reading group.
The academic proceeding can be found here:
https://www.usenix.org/conference/woot12/web-based-attacks-host-proof-encrypted-storage
La tarjeta principal, también conocida como motherboard, es el componente central de una computadora. Contiene el zócalo de la CPU, ranuras para la memoria RAM, el chipset de control, BIOS, slots de expansión y conectores para otros dispositivos. Los buses son canales que conectan estos componentes y permiten la transferencia de datos. El chipset controla el tráfico de datos en la motherboard y conecta los buses del sistema y de E/S.
El documento discute los efectos negativos del alcoholismo en la salud, comportamiento y relaciones sociales y familiares. El alcoholismo genera problemas de salud física y psicológica, y aumenta la agresividad y hostilidad. Las personas con alcoholismo desarrollan una dependencia al alcohol para socializar, lo que deteriora sus relaciones. En el ámbito familiar, el alcoholismo causa culpa, abandono y daño a las relaciones cercanas. El apoyo social y familiar es clave para la recuperación de una persona alcohólica.
Kongres Kristen Alkitabiah berlangsung selama tiga hari berturut-turut dimana para peserta memiliki waktu untuk mendengar kesaksian dari berbagai daerah. Seminar-seminar juga dilaksanakan di beberapa kota. Iblis berusaha menarik manusia jauh dari Allah dengan merusak fungsi ayah, bangsa Yahudi, dan gereja sebagai pilar kebenaran. Gereja Roma menganiaya mereka yang menafsirkan Alkitab berbeda dan
Este documento resume una presentación sobre coaching ejecutivo. Explica que el coaching es facilitar el proceso por el cual una persona logra sus metas a través de la conversación. También describe cómo el coaching puede ayudar a identificar obstáculos, desarrollar potencial y mejorar motivación. Finalmente, destaca que el coaching permite aprender nuevas formas de pensar y desarrollar actitudes positivas.
PKI Android : Installer, gérer, sécuriser et utiliser un secretOCTO Technology
Comment installer, gérer, sécuriser et utiliser une clef privée ? Comment partager une clef privée entres applications? Comment résister au vol du téléphone? Via des API cachées, des scénarios originaux et autres subtilités.
Ce cours présente le notion de qualité de code et quels sont les critères et pratiques à adopter pour produire du code de qualité. Il présente les erreurs de programmation les plus fréquentes auprès des apprentis programmeurs. La deuxième partie du cours présente la notion de convention de codage et en particulier le PEP 0008 qui décrit des conventions à adopter lorsqu'on programme en Python.
Toute application Web dite dynamique nécessite une base de données ainsi que des outils qui permettront de manipuler ces données.Dans la palette des outils à la disposition des développeurs PHP, on trouve entre autres les DBAL (DataBase Abstraction Layer ou couche d'abstraction de base de données) ou les ORM (Object Relational Mapping ou mapping objet-relationnel).
Toute application Web dite dynamique nécessite une base de données ainsi que des outils qui permettront de manipuler ces données.
Dans la palette des outils à la disposition des développeurs PHP, on trouve entre autres les DBAL (DataBase Abstraction Layer ou couche d'abstraction de base de données) ou les ORM (Object Relational Mapping ou mapping objet-relationnel).
El artículo habla sobre los avances en la relocalización de asentamientos precarios en las márgenes del Riachuelo en el marco del plan de saneamiento de la cuenca. Se mudaron 130 familias de El Pueblito a viviendas en Villa Soldati. El subsecretario de Desarrollo Urbano y Vivienda destacó la importancia de este trabajo para mejorar la calidad de vida de las familias y liberar el camino de la ribera. El intendente de Lanús también resaltó los progresos como la construcción de un ecopunto para tr
How to increase e mail newsletter subscribers by 200% 2razorsocial
This document provides tips to increase email newsletter subscription rates by at least 200%:
1. Implement social proof on your website by displaying your large number of subscribers to influence others.
2. Provide an incentive for subscribers such as a free guide or report to motivate people to subscribe.
3. Use a popup to catch people's attention, but ensure it provides value and isn't annoying. Test different wording in calls to action like "subscribe now" versus "get updates" to optimize conversions.
Cris de Lara comenzó a pintar a una edad temprana, pero dejó de lado el arte durante sus años universitarios. A los 26 años sintió la llamada del arte nuevamente y fundó su propia empresa de diseño gráfico. Más tarde, se centró en la ilustración, pintura digital, capacitación y consultoría. Actualmente trabaja como ilustradora freelance, creando una variedad de dibujos y pinturas que mezclan estilos realistas y de cómics.
G 1 sns-new era of cnt sensing technologyChung Da-woon
SNS Revolution is a Korean company founded in 2006 that develops carbon nanotube (CNT) sensor technologies. It has developed CNT oil sensors that can monitor the condition of transformer and engine oils in real-time without extracting gas. This allows for lower cost monitoring and helps improve grid safety and efficiency. The sensors have been adopted by major Korean companies and SNS is pursuing partnerships in other countries.
El proyecto tiene como objetivo principal motivar e integrar socialmente a un colectivo a través de las nuevas tecnologías. Se llevará a cabo en el Centro Guadalinfo de Hornachuelos en colaboración con la Asociación contra el Cáncer. El proyecto consiste en sesiones semanales para enseñar el uso de ordenadores e Internet y crear presencia online a través de redes sociales y un blog.
Este documento presenta las ponencias de cuatro estudiantes sobre diferentes ideologías políticas contemporáneas. Cesar Recra habla sobre el socialcristianismo, Helen Gamarra sobre la democracia cristiana, Carmen Milla sobre el neoliberalismo y los partidos verdes, y Sara Cuellar sobre el nacionalismo. Cada presentación describe la historia, características y principios básicos de la ideología correspondiente.
This document summarizes the history and design of the Karuselli chair by Yrjö Kukkapuro from 1964. It discusses how the chair was inspired by a lecture in 1958 and has since been in permanent collections at design museums in Helsinki, London, Switzerland, and Belgium. The chair gained recognition after being featured on the cover of Domus magazine in 1966 and was chosen as one of the most important designs of the 20th century. Karuselli continues to be produced by the manufacturer Avarte.
Reading Group Presentation: Web Attacks on Host-Proof Encrypted StorageMichael Rushanan
This presentation exposes the current threat model to host-proof encrypted storage, details of vulnerability exploitation per application, and multiple pointers to relevant academic research in web security. I presented these works to a weekly Security and Privacy reading group.
The academic proceeding can be found here:
https://www.usenix.org/conference/woot12/web-based-attacks-host-proof-encrypted-storage
La tarjeta principal, también conocida como motherboard, es el componente central de una computadora. Contiene el zócalo de la CPU, ranuras para la memoria RAM, el chipset de control, BIOS, slots de expansión y conectores para otros dispositivos. Los buses son canales que conectan estos componentes y permiten la transferencia de datos. El chipset controla el tráfico de datos en la motherboard y conecta los buses del sistema y de E/S.
El documento discute los efectos negativos del alcoholismo en la salud, comportamiento y relaciones sociales y familiares. El alcoholismo genera problemas de salud física y psicológica, y aumenta la agresividad y hostilidad. Las personas con alcoholismo desarrollan una dependencia al alcohol para socializar, lo que deteriora sus relaciones. En el ámbito familiar, el alcoholismo causa culpa, abandono y daño a las relaciones cercanas. El apoyo social y familiar es clave para la recuperación de una persona alcohólica.
Kongres Kristen Alkitabiah berlangsung selama tiga hari berturut-turut dimana para peserta memiliki waktu untuk mendengar kesaksian dari berbagai daerah. Seminar-seminar juga dilaksanakan di beberapa kota. Iblis berusaha menarik manusia jauh dari Allah dengan merusak fungsi ayah, bangsa Yahudi, dan gereja sebagai pilar kebenaran. Gereja Roma menganiaya mereka yang menafsirkan Alkitab berbeda dan
Este documento resume una presentación sobre coaching ejecutivo. Explica que el coaching es facilitar el proceso por el cual una persona logra sus metas a través de la conversación. También describe cómo el coaching puede ayudar a identificar obstáculos, desarrollar potencial y mejorar motivación. Finalmente, destaca que el coaching permite aprender nuevas formas de pensar y desarrollar actitudes positivas.
Rock Stars & Porn Stars, Effective Social Networking and Fan Engagement Techn...Michael Brandvold
Michael Brandvold Marketing & PRThatRocks Presents discusses effective social media networking and fan engagement techniques. The presentation covers topics such as how social media followers need to be converted, engagement strategies for Facebook and Twitter, using photos and video online, and tips for using hashtags and automating social media posts. The goal is to provide actionable advice for rock stars, porn stars, and other public figures to build their online presence and fan bases through strategic social networking.
El documento resume la vida y obra del filósofo Ernst Cassirer. Explica que Cassirer desarrolló una filosofía de la cultura influenciada por Kant, en la que definía al ser humano como "animal simbólico" debido a su capacidad para crear cultura a través de símbolos. Su obra principal fue la Filosofía de las Formas Simbólicas. El documento también divide la trayectoria intelectual de Cassirer en tres periodos: los años en Berlín centrados en la epistemología, los años en Hamburgo donde des
Este documento presenta la información sobre un curso de truficultura práctica que se llevará a cabo del 2 al 5 de febrero de 2015 en Mora de Rubielos, Teruel. El curso consta de 30 horas lectivas divididas en 20 módulos que cubren temas como la biología y ecología de las trufas, el cultivo y aprovechamiento de trufas silvestres, y la identificación de trufas y agentes nocivos. El curso está dirigido a emprendedores y estudiantes interesados en conocer los aspect
In 6 Months we mentored over 2000+ entrepreneurs! Join the movement!
We’re changing the game- one city at a time.Each year we host the annual business boot camp in different cities around the world. Entrepreneurs are taught all stages of startup development (funding, beta testing, product development, customer acquisition, legal, marketing, press, team building, social impact,partnerships and more). We teach in 15-minute workshop formats followed by a panel of experts to provide different perspectives on each stage of business development.
So what’s next? We will continue these boot camps in 2017! We cover ideation, product development, customer acquisition, marketing, funding and branding! Also-Each week we share top tips and funding prizes with the network. Follow to get access!
http://brandentrepreneurs.com/
Este documento trata sobre la gestión de conflictos. Explica los elementos, tipos y fases de los conflictos, así como las destrezas necesarias para comprender y resolver conflictos, como reconocer las emociones, necesidades y usar un vocabulario adecuado. También cubre temas como la disciplina positiva y diferentes formas de prevenir y resolver conflictos de manera constructiva.
Civil Procedure Code, 1908,
a Universal Doctrine, applied in civil proceedings.
Shah Muhammad
Lecturer,
University Law College Quetta Khojjak Road Quetta
Cantt
This document summarizes an OWASP training session on integrating security and privacy into web application projects. It discusses what OWASP is and its goals of open web application security. It then outlines the agenda and modules to be covered in the training, which include security best practices for the inception, design, coding, and post-coding phases of a web application project. The training aims to help participants understand security risk management and how to incorporate security and privacy into each phase of the development lifecycle.
Securing your web apps before they hurt the organizationAntonio Fontes
This document summarizes a presentation on securing web projects. It discusses how vulnerabilities commonly occur during design, implementation, and deployment phases due to issues like incomplete specifications, lack of security requirements analysis, coding mistakes, and insecure default configurations. The presentation covers common web attacks, secure development principles, and steps organizations can take to move from a reactive to proactive security posture.
This document summarizes a presentation on web security given at the Confoo Conference in 2012. The presentation was given by Antonio Fontes from L7 and David Mirza from Subgraph. They discussed the history of web attacks moving from host/network intrusion to modern vulnerabilities like XSS and SQL injection. They explained that all business logic and data is now on the web, making it the main target for attacks. The motivations for these attacks include money, ideology, fame, and supporting other criminal activities. They outlined the impacts such as financial costs, reputation damage, and legal/compliance issues. Finally, they provided recommendations on technical controls like web application testing and process controls like secure development practices and training to help address these ongoing
Sécurité dans les contrats d'externalisation de services de développement et ...Antonio Fontes
Préparer la sécurité dès la phase contractuelle lors de projets d'externalisation liés aux applications web: développement, hébergement cloud et location (SaaS)
Symposium GRI/CLUSIS sur le rôle de l'état dans la cybsécurité des entreprises suisses / 27 mai 2011
Web security track - opening talk:
OWASP & OWASP Switzerland
Swiss Cyber Storm 3 (Rapperswil, May 2011)
Original powerpoint slides can be downloaded and re-used under following conditions:
- you're free to copy, distribute and transmit the work
- you're free to adapt the work
- if you alter, transform, or build upon this work, you may distribute the resulting work under the same or similar rights to this one
Threat modeling web application: a case studyAntonio Fontes
Threat modeling is a technique to identify security risks in a web application before development. The speaker conducted a threat modeling exercise for a newspaper company developing a new paid electronic edition feature. He identified threats such as unauthorized access to paid content and financial data theft. Controls like access control, authentication, encryption, and logging were recommended to address these threats. The threat modeling process and results were documented in a report to guide secure development of the new feature.
The top 10 web application intrusion techniquesAntonio Fontes
The document discusses the top 10 attack techniques used by hackers to compromise web applications, as presented by Antonio Fontes at the Confoo 2011 conference. The techniques are: 1) Injecting code inside the system, 2) Attacking client systems, 3) Attacking authentication and session systems, 4) Exploiting direct object references, 5) Controlling a 3rd party browser, 6) Exploiting an insecure configuration, 7) Breaking weak cryptography. For each technique, the objective, strategy, and potential impacts are described, along with examples and checks developers can perform to prevent attacks.
Mise au point sur le contexte et les motivations autour des cyberattaques dont il est fait référence dans la presse.
Audience: juridique (avocats, juristes, etc.)
Niveau technique: faible
Lieu: 2 décembre 2010, faculté de Droit à l'Université de Genève
Infos:
http://lexgva.ch/index.php?subaction=showfull&id=1290112460
You want to start integrating security in your web application project but you don't know where to start and don't have access to software security professionals. What are the "cheapest" while very efficient activities that you can already do by yourself?
Agenda:
-Understanding the need for information security and privacy
-Secure design: key principles
-Threat modeling and analysis: building your first threat model and identifying the major risks in your web application
- Testing the security of your web application
- Understanding the big picture: what is a secure SDLC
- Cheap and efficient security activities that might be started immediatly in your SDLC
Within end of March, the OWASP foundation will release the 2010 version of its major documentation project, the "Top 10 security risks in web applications."
Agenda:
- The 10 most common web application attacks
- Discovering the OWASP Top 10 document
- Integrating the Top 10 within an existing SDLC, as a software vendor, or a software buyer.
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...Horgix
This is the slide deck of a talk by Alexis "Horgix" Chotard and Laurentiu Capatina presented at the MongoDB Paris User Group in June 2024 about the feedback on how PayFit move away from a monolithic hell of a self-hosted MongoDB cluster to managed alternatives. Pitch below.
March 15, 2023, 6:59 AM: a MongoDB cluster collapses. Tough luck, this cluster contains 95% of user data and is absolutely vital for even minimal operation of our application. To worsen matters, this cluster is 7 years behind on versions, is not scalable, and barely observable. Furthermore, even the data model would quickly raise eyebrows: applications communicating with each other by reading/writing in the same MongoDB documents, documents reaching the maximum limit of 16MiB with hundreds of levels of nesting, and so forth. The incident will last several days and result in the loss of many users. We've seen better scenarios.
Let's explore how PayFit found itself in this hellish situation and, more importantly, how we managed to overcome it!
On the agenda: technical stabilization, untangling data models, breaking apart a Single Point of Failure (SPOF) into several elements with a more restricted blast radius, transitioning to managed services, improving internal accesses, regaining control over risky operations, and ultimately, approaching a technical migration when it impacts all development teams.
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Laurent Speyser
(Conférence dessinée)
Vous êtes certainement à l’origine, ou impliqué, dans un changement au sein de votre organisation. Et peut être que cela ne se passe pas aussi bien qu’attendu…
Depuis plusieurs années, je fais régulièrement le constat de l’échec de l’adoption de l’Agilité, et plus globalement de grands changements, dans les organisations. Je vais tenter de vous expliquer pourquoi ils suscitent peu d'adhésion, peu d’engagement, et ils ne tiennent pas dans le temps.
Heureusement, il existe un autre chemin. Pour l'emprunter il s'agira de cultiver l'invitation, l'intelligence collective , la mécanique des jeux, les rites de passages, .... afin que l'agilité prenne racine.
Vous repartirez de cette conférence en ayant pris du recul sur le changement tel qu‘il est généralement opéré aujourd’hui, et en ayant découvert (ou redécouvert) le seul guide valable à suivre, à mon sens, pour un changement authentique, durable, et respectueux des individus! Et en bonus, 2 ou 3 trucs pratiques!
L'IA connaît une croissance rapide et son intégration dans le domaine éducatif soulève de nombreuses questions. Aujourd'hui, nous explorerons comment les étudiants utilisent l'IA, les perceptions des enseignants à ce sujet, et les mesures possibles pour encadrer ces usages.
Constat Actuel
L'IA est de plus en plus présente dans notre quotidien, y compris dans l'éducation. Certaines universités, comme Science Po en janvier 2023, ont interdit l'utilisation de l'IA, tandis que d'autres, comme l'Université de Prague, la considèrent comme du plagiat. Cette diversité de positions souligne la nécessité urgente d'une réponse institutionnelle pour encadrer ces usages et prévenir les risques de triche et de plagiat.
Enquête Nationale
Pour mieux comprendre ces dynamiques, une enquête nationale intitulée "L'IA dans l'enseignement" a été réalisée. Les auteurs de cette enquête sont Le Sphynx (sondage) et Compilatio (fraude académique). Elle a été diffusée dans les universités de Lyon et d'Aix-Marseille entre le 21 juin et le 15 août 2023, touchant 1242 enseignants et 4443 étudiants. Les questionnaires, conçus pour étudier les usages de l'IA et les représentations de ces usages, abordaient des thèmes comme les craintes, les opportunités et l'acceptabilité.
Résultats de l'Enquête
Les résultats montrent que 55 % des étudiants utilisent l'IA de manière occasionnelle ou fréquente, contre 34 % des enseignants. Cependant, 88 % des enseignants pensent que leurs étudiants utilisent l'IA, ce qui pourrait indiquer une surestimation des usages. Les usages identifiés incluent la recherche d'informations et la rédaction de textes, bien que ces réponses ne puissent pas être cumulées dans les choix proposés.
Analyse Critique
Une analyse plus approfondie révèle que les enseignants peinent à percevoir les bénéfices de l'IA pour l'apprentissage, contrairement aux étudiants. La question de savoir si l'IA améliore les notes sans développer les compétences reste débattue. Est-ce un dopage académique ou une opportunité pour un apprentissage plus efficace ?
Acceptabilité et Éthique
L'enquête révèle que beaucoup d'étudiants jugent acceptable d'utiliser l'IA pour rédiger leurs devoirs, et même un quart des enseignants partagent cet avis. Cela pose des questions éthiques cruciales : copier-coller est-il tricher ? Utiliser l'IA sous supervision ou pour des traductions est-il acceptable ? La réponse n'est pas simple et nécessite un débat ouvert.
Propositions et Solutions
Pour encadrer ces usages, plusieurs solutions sont proposées. Plutôt que d'interdire l'IA, il est suggéré de fixer des règles pour une utilisation responsable. Des innovations pédagogiques peuvent également être explorées, comme la création de situations de concurrence professionnelle ou l'utilisation de détecteurs d'IA.
Conclusion
En conclusion, bien que l'étude présente des limites, elle souligne un besoin urgent de régulation. Une charte institutionnelle pourrait fournir un cadre pour une utilisation éthique.
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...OCTO Technology
Par Nicolas Bordier (Consultant numérique responsable @OCTO Technology) et Alaric Rougnon-Glasson (Sustainable Tech Consultant @OCTO Technology)
Sur un exemple très concret d’audit d’éco-conception de l’outil de bilan carbone C’Bilan développé par ICDC (Caisse des dépôts et consignations) nous allons expliquer en quoi l’ACV (analyse de cycle de vie) a été déterminante pour identifier les pistes d’actions pour réduire jusqu'à 82% de l’empreinte environnementale du service.
Vidéo Youtube : https://www.youtube.com/watch?v=7R8oL2P_DkU
Compte-rendu :
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...
Trouvez la faille! - Confoo 2012
1. Trouvez la faille!
Antonio Fontes / Confoo 2012 - Montréal
Notice 1: cette présentation contient des références à Common Weakness Enumeration:
http://cwe.mitre.org/data/index.html
Notice 2: aucun chat n'a été maltraité durant la préparation de cette séance.
Notice 3: cette présentation contient des références au
document "Test your Security IQ", par M. Howard et B. Sullivan
Notice 4: Un grand merci à Sébastien pour ses idées & propositions!
2. • Règles de jeu:
– Lire l’exemple de code affiché à l'écran
– Trouver la ou les éléments pouvant constituer un risque pour la sécurité du S.I.
– Tenir une comptabilité analytique des points obtenus!
02.03.2012 Confoo Conference 2012 - Antonio Fontes 2
3. Antonio Fontes
Genève (Suisse)
Consultant indépendant Infosécurité logicielle:
Sécurité des applications web
Visibilité et gestion du risque sur Internet
Formation / accompagnement durant les projets de développement
Bulletin d'information"cybermenaces et sécurité Internet":
http://cddb.ch
OWASP:
Membre du Comité - OWASP Suisse
Leader - OWASP Genève
A propos du conférencier…
02.03.2012 Confoo Conference 2012 - Antonio Fontes 3
4. • Le site d’actualité permet la création de comptes personnels, la
publication de réactions à l’actualité, l’échange de messages entre
membres.
• 1 point
02.03.2012 Confoo Conference 2012 - Antonio Fontes 4
5. Envoi des éléments
d'authentification en
clair.
• Le site d’actualité permet la création de comptes personnels, la
publication de réactions à l’actualité, l’échange de messages entre
membres.
• 1 point
02.03.2012 Confoo Conference 2012 - Antonio Fontes 5
7. function printFile($username,$filename){
//read file into string
$file = file_get_contents($filename);
if ($file && isOwnerOf($username,$filename)){
echo $file;
return true;
} else {
echo 'You are not authorized to view this file';
}
return false;
}
• 1 point
02.03.2012 Confoo Conference 2012 - Antonio Fontes 7
8. function printFile($username,$filename){
//read file into string
$file = file_get_contents($filename);
Le chargement du
if ($file && isOwnerOf($username,$filename)){
fichier a lieu avant
echo $file;
le contrôle d'accès.
return true;
} else {
echo 'You are not authorized to view this file';
}
return false;
}
• 1 point
– Identification du risque pour la disponibilité du S.I.
02.03.2012 Confoo Conference 2012 - Antonio Fontes 8
9. protected void Page_Load(object sender, EventArgs e)
{
string lastLogin = Request["LastLogin"];
if (String.IsNullOrEmpty(lastLogin)) {
HttpCookie lastLoginCookie = new HttpCookie("LastLogin",
DateTime.Now.ToShortDateString());
lastLoginCookie.Expires = DateTime.Now.AddYears(1);
Response.Cookies.Add(lastLoginCookie);
}
else {
Response.Write("Welcome back! You last logged in on " +
lastLogin);
Response.Cookies["LastLogin"].Value =
DateTime.Now.ToShortDateString();
}
}
• 1 point
02.03.2012 Confoo Conference 2012 - Antonio Fontes 9
10. protected void Page_Load(object sender, EventArgs e)
{
string lastLogin = Request["LastLogin"];
if (String.IsNullOrEmpty(lastLogin)) { Appel vers la
HttpCookie lastLoginCookie = new HttpCookie("LastLogin",
collection parente
DateTime.Now.ToShortDateString());
"Request"
lastLoginCookie.Expires = DateTime.Now.AddYears(1);
Response.Cookies.Add(lastLoginCookie);
}
else {
Response.Write("Welcome back! You last logged in on " +
lastLogin);
Response.Cookies["LastLogin"].Value Transfert du contenu
=
DateTime.Now.ToShortDateString(); vers le client, sans
} encodage approprié.
}
• 1 point
– Cas de type "XSS" (Cross-site scripting)
02.03.2012 Confoo Conference 2012 - Antonio Fontes 10
11. $role = $_COOKIES['role'];
if (!$role) {
$role = getRole('user');
if ($role) {
// save the cookie to send out in future responses
setcookie("role", $role, time()+60*60*2);
} else {
ShowLoginScreen();
die("n");
}
}
if ($role == 'Reader') {
DisplayMedicalHistory($_POST['patient_ID']);
} else {
die("You are not Authorized to view this recordn");
}
• 1 point
02.03.2012 Confoo Conference 2012 - Antonio Fontes 11
12. $role = $_COOKIES['role'];
if (!$role) { Absence de contrôle
$role = getRole('user'); d'intégrité du
if ($role) {
cookie.
// save the cookie to send out in future responses
setcookie("role", $role, time()+60*60*2);
} else {
Contournement du
ShowLoginScreen(); mécanisme
die("n"); d'authentification
}
}
if ($role == 'Reader') { Contournement du
DisplayMedicalHistory($_POST['patient_ID']); contrôle d'accès
} else {
die("You are not Authorized to view this recordn");
}
• 1 point
02.03.2012 Confoo Conference 2012 - Antonio Fontes 12
13. • 1 + 1 point
02.03.2012 Confoo Conference 2012 - Antonio Fontes 13
14. Transfert de
confiance à un
tiers
• 1 + 1 + 1 points
– 1 point: identification du risque d'injection de contenu par un tiers
– 1 point: identification du risque sur la confidentialité (fuite des referrers)
– 1 point: identification du risque de déni de service sur le tiers
02.03.2012 Confoo Conference 2012 - Antonio Fontes 14
15. • 1 + 1 + 1 points
– Faire attention aux recommandations sur le web: elles vont souvent à
l'encontre de la sécurité et visent à faciliter la collecte de données par des tiers.
– Vérifier qui est l'auteur d'une recommandation de codage.
02.03.2012 Confoo Conference 2012 - Antonio Fontes 15
16. // API flag, output JSON if set
$json = $_GET['json'];
$username = $_GET['user'];
if($json)
{
$record = getUserRecord($username);
echo(json_encode($record));
} else {
$record = getUserRecord($username);
foreach($record as $fieldName => $fieldValue) {
// never disclose user email addresses to the public (privacy req.)
if(!($fieldName == "email_address"))
renderToHtmlTable ($fieldName,$fieldValue);
}}}
• 1 point
02.03.2012 Confoo Conference 2012 - Antonio Fontes 16
17. // API flag, output JSON if set
$json = $_GET['json']; Dans le cas json,
$username = $_GET['user'];
l'adresse email n'est
if($json)
{ plus protégée contre les
$record = getUserRecord($username); fuites.
echo(json_encode($record));
} else {
$record = getUserRecord($username);
foreach($record as $fieldName => $fieldValue) {
// never disclose user email addresses to the public (privacy req.)
if(!($fieldName == "email_address"))
renderToHtmlTable ($fieldName,$fieldValue);
}}}
• 1 point
– Identification de la fuite d'adresses email
02.03.2012 Confoo Conference 2012 - Antonio Fontes 17
18. byte[] GetKey(UInt32 keySize)
{
byte[] key = null;
try
{
key = new byte[keySize];
RNGCryptoServiceProvider.Create().GetBytes(key);
}
catch (Exception e)
{
Math.Random r = new Math.Random();
r.NextBytes(key);
}
return key;
}
1 + 1 + 1 point
02.03.2012 Confoo Conference 2012 - Antonio Fontes 18
19. byte[] GetKey(UInt32 keySize)
{
byte[] key = null;
try
{
key = new byte[keySize];
RNGCryptoServiceProvider.Create().GetBytes(key);
}
catch (Exception e)
{ Exception générique?
Math.Random r = new Math.Random();
r.NextBytes(key);
} Math.Random?
Fail-safe?
return key;
}
1 + 1 + 1 point
– Exception générique: privilégier l'exception typée
– Principe de conception "Fail-safe": le code n'échoue pas en haute sécurité
– La classe Math.Random ne fournit pas d'entropie de niveau cryptographique
02.03.2012 Confoo Conference 2012 - Antonio Fontes 19
21. private decimal? lookupPrice(XmlDocument doc)
{
string query = @"//products/product[id/text()='" + Request["itemId"] +
"']/price"
XmlNode node = doc.SelectSingleNode(query); Validation?
if (node == null)
return null;
else
return(Convert.ToDecimal(node.InnerText));
}
• 1 point
– Injection de type Xpath (il n'y a pas que des injections SQL!!)
– Marche aussi sur: commandes système, LDAP, APIs ORM, etc.
02.03.2012 Confoo Conference 2012 - Antonio Fontes 21
22. public class MySessionIDManager : System.Web.Session State.SessionIDManager
{
private static object lockObject = new object();
public override string CreateSessionID(HttpContext context)
{
lock (lockObject)
{
Int32? lastSessionId = (int?)context.Application ["LastSessionId"];
if (lastSessionId == null)
lastSessionId = 1;
else
lastSessionId++;
context.Application["LastSessionId"] = lastSessionId;
return lastSessionId.ToString();
}}}
• 1 + 1 point
02.03.2012 Confoo Conference 2012 - Antonio Fontes 22
23. public class MySessionIDManager : System.Web.Session State.SessionIDManager
{
private static object lockObject = new object();
public override string CreateSessionID(HttpContext context)
{
lock (lockObject) Multi-serveur?
{
Int32? lastSessionId = (int?)context.Application ["LastSessionId"];
if (lastSessionId == null)
lastSessionId = 1; ID de session prédictibles
else
lastSessionId++;
context.Application["LastSessionId"] = lastSessionId;
return lastSessionId.ToString();
}}}
• 1 + 1 point
– Identification de l'identifiant de session prédictible
– Collision des identifiants de session si le serveur est répliqué!
02.03.2012 Confoo Conference 2012 - Antonio Fontes 23
24. bool login(SqlConnection connection, out string errorMessage)
{
string uname = Request.Form["username"];
string pword = Request.Form["password"];
SqlCommand selectUserAndPassword = new SqlCommand( "SELECT pwd FROM Users WHERE uname =
@username", connection);
selectUserAndPassword.Parameters.Add( new SqlParameter("@username", uname));
string validPassword = (string)selectUserAndPassword.ExecuteScalar();
if (validPassword == null)
{
// the user doesn't exist in the database
errorMessage = "The username is invalid.";
return false;
}
else if (validPassword != pword)
{
// the given password doesn't match
errorMessage = "The password is incorrect.";
return false;
}
else
{
// success
Bug #9 errorMessage = String.Empty;
return true;
}
} 1 + 1 + 1 points
– 1 point + bonus point
02.03.2012 Confoo Conference 2012 - Antonio Fontes 24
25. bool login(SqlConnection connection, out string errorMessage)
{ Requête paramétrée, ça, c'est juste!
string uname = Request.Form["username"];
string pword = Request.Form["password"];
SqlCommand selectUserAndPassword = new SqlCommand( "SELECT pwd FROM Users WHERE uname =
@username", connection);
selectUserAndPassword.Parameters.Add( new SqlParameter("@username", uname));
string validPassword = (string)selectUserAndPassword.ExecuteScalar();
if (validPassword == null)
{
// the user doesn't exist in the database Rapatriement inutile du
errorMessage = "The username is invalid.";
return false;
mot de passe!
}
else if (validPassword != pword)
{ Stockage du mot de passe en
// the given password doesn't match
clair.
errorMessage = "The password is incorrect.";
return false;
}
else Message d'erreur variable lorsque le
{
// success
login ou le mdp est faux (fuite)
Bug #9 errorMessage = String.Empty;
return true;
}
} 1 + 1 + 1 points
– 1 point + bonus point
02.03.2012 Confoo Conference 2012 - Antonio Fontes 25
26. // SilverLight code module review
bool verifyCode(string discountCode)
{
// We store the hash of the secret code instead of the plaintext of the secret code for security.
// We hash the incoming value and compare it against the stored hash.
byte[] codeHash = SecurityUtils.ComputeHash(discountCode, "MD5");
byte[] secretCode = new byte[] { 116, 46, 130, 122, 36, 234, 158, 125, 163, 122, 157, 186, 64, 142, 51,
153, 113, 79, 1, 42 };
// This should never happen, but we check it anyway
if (codeHash.Length != secretCode.Length)
return false;
// perform an element-by-element comparison of the arrays
for (int i = 0; i < codeHash.Length; i++)
{
if (codeHash[i] != secretCode[i])
return false; // the hashes don't match
} // all the elements match, so the strings match
// the discount code is valid, inform the server
WebServiceSoapClient client = new WebServiceSoapClient();
client.ApplyDiscountCode();
return true; 1 + 1 + 2 points
}
02.03.2012 Confoo Conference 2012 - Antonio Fontes 26
27. // SilverLight code module review
bool verifyCode(string discountCode) Algorithme déconseillé (+1)
{
// We store the hash of the secret code instead of the plaintext of the secret code for security.
// We hash the incoming value and compare it against the stored hash.
byte[] codeHash = SecurityUtils.ComputeHash(discountCode, "MD5");
byte[] secretCode = new byte[] { 116, 46, 130, 122, 36, 234, 158, 125, 163, 122, 157, 186, 64, 142, 51,
153, 113, 79, 1, 42 };
// This should never happen, but we check it anyway
A-t-on besoin d'un
if (codeHash.Length != secretCode.Length) sel? (seed) +1
return false;
// perform an element-by-element comparison of the arrays
for (int i = 0; i < codeHash.Length; i++)
{
if (codeHash[i] != secretCode[i]) Défense côté client
return false; // the hashes don't match
} // all the elements match, so the strings match totalement inutile! (+2
points)
// the discount code is accepted, inform the server
WebServiceSoapClient client = new WebServiceSoapClient();
client.ApplyDiscountCode();
return true; 1 + 1 + 2 points
}
02.03.2012 Confoo Conference 2012 - Antonio Fontes 27
28. • 1 point
02.03.2012 Confoo Conference 2012 - Antonio Fontes 28
29. Injection SQL
(absence de
validation)
• 1 point
02.03.2012 Confoo Conference 2012 - Antonio Fontes 29
31. $MessageFile = "messages/messages.out";
if ($_GET["action"] == "NewMessage") {
$name = $_GET["name"];
$message = $_GET["message"];
$handle = fopen($MessageFile, "a+");
fwrite($handle, "<b>$name</b> says '$message'<hr>n");
Et s'il y a du script
fclose($handle);
client?
echo "Message Saved!<p>n";
} else if ($_GET["action"] == "ViewMessages") {
include($MessageFile); include == eval()
} ?
• 1 + 1 point
– Identification de l'injection de code côté-serveur (via la fonction "include")
– Identification de l'injection de code côté-client (via l'affichage du fichier)
02.03.2012 Confoo Conference 2012 - Antonio Fontes 31
32. // anti SQL-injection filter for user input
string SQliProtect(string formValue)
{
string tmp = formValue.ToUpperCase();
return(tmp.Replace("SELECT", "").Replace("INSERT
", "").Replace("UPDATE", "").Replace("UNION","")
.Replace("BENCHMARK, "").Replace("--
", "").Replace("OR
1=1", "").Replace("DROP", "").Replace("@@version
", "").Replace("WAITFOR", "").Replace("OUTFILE",
"")
...
return(tmp)
}
• 1 point
02.03.2012 Confoo Conference 2012 - Antonio Fontes 32
33. // anti SQL-injection filter for user input
string SQliProtect(string formValue)
{
string tmp = formValue.ToUpperCase();
return(tmp.Replace("SELECT", table" ?
"DRDROPOP "").Replace("INSERT
", "").Replace("UPDATE", "").Replace("UNION","")
.Replace("BENCHMARK, "").Replace("--
", "").Replace("OR
1=1", "").Replace("DROP", "").Replace("@@version
", "").Replace("WAITFOR", "").Replace("OUTFILE",
"")
...
return(tmp)
}
• 1 point
– Identification de la technique de contournement du filtre
02.03.2012 Confoo Conference 2012 - Antonio Fontes 33
34. <?
$reqId = 0;
if(isset($_GET[“account_id"]))
$reqId = (int)(htmlentities($_GET[“account_id"]));
if($reqId == 0)
{
// no account selected, show the list of authorized accounts
$sql = " SELECT * FROM accounts a "
." INNER JOIN account_managers am "
." ON a.id = am.account_id "
." WHERE am.manager_id = ".$currentUserID;
echo(RenderHTMLTable($sql));
} else {
// docucment is clicked -> show statement
$sql = " SELECT * FROM accounts a WHERE a.id = ".$reqId;
RenderHTMLAccount($sql);
}
• 2 points
02.03.2012 Confoo Conference 2012 - Antonio Fontes 34
35. <?
$reqId = 0;
if(isset($_GET[“account_id"]))
$reqId = (int)(htmlentities($_GET[“account_id"]));
if($reqId == 0)
Références internes?
{
// no account selected, show the list of authorized accounts
$sql = " SELECT * FROM accounts a "
Contrôle d’accès. Bien!
." INNER JOIN account_managers am "
." ON a.id = am.account_id "
." WHERE am.manager_id = ".$currentUserID;
echo(RenderHTMLTable($sql));
} else {
// docucment is clicked -> show statement
$sql = " SELECT * FROM accounts a WHERE a.id = ".$reqId;
RenderHTMLAccount($sql);
} Mais ici?
• 2 points
– Identification de l'exposition de références internes
– Identification de l'absence de contrôle d'accès lors de l'affichage du document
02.03.2012 Confoo Conference 2012 - Antonio Fontes 35
36. bool verifyPassword(string formPwd, int userId)
{
byte[] formHash = Tools.ComputeSHA1Hash(formPwd);
byte[] dbHash = B64.Decode(User.GetPasswordHash(userId));
if (formHash.Length != dbHash.Length)
return false;
for (int i = 0; i < formHash.Length; i++)
{
if (formHash[i] != dbHash[i])
return false; // the hashes don't match
}
// we are still here, so the passwords matched
return true;
}
• 1+1+1+1+1 points
02.03.2012 Confoo Conference 2012 - Antonio Fontes 36
37. bool verifyPassword(string formPwd, int userId)
{ Sel?
byte[] formHash = Tools.ComputeSHA1Hash(formPwd);
byte[] dbHash = B64.Decode(User.GetPasswordHash(userId));
Rappatriement du mode
de passe?
if (formHash.Length != dbHash.Length) Algorithme fort?
return false;
for (int i = 0; i < formHash.Length; i++)
{
if (formHash[i] != dbHash[i]) Longueurs variables
return false; // the hashes don't match
possibles?
}
// we are still here, so the passwords matched
return true;
}
Stratégie Fail safe?
– Absence probable de sel +1
– S'interroger sur la nature de l'algorithme choisi +1
– Rapatriement inutile du mot de passe +1
– Identification de l'absence de mécanisme fail-safe +1
– Présence de signes indiquant une méconnaissance des fonctions de hachage +1
02.03.2012 Confoo Conference 2012 - Antonio Fontes 37
38. Quel a été votre score?
20 points et plus: changez de carrière, ça embauche!
De 13 à 19 points: Très bien! Vous vous y intéressez et ça
se voit. Vous devriez songer à appliquer vos
connaissances aussi au code de vos collègues si ce n'est
déjà fait, pensez aussi à joindre une association ou
communauté traitant du sujet. Sensibilisez les gens
autour de vous!
De 8 à 12 points: Vous avez clairement identifié la notion
de risque dans le code mais vous ne savez probablement
pas encore où regarder. Il faut à présent consolider les
bases simplement en…pratiquant!
De 4 à 7 points: Demandez à vos chefs de vous faire
suivre un cours!
Moins de 4 points: Si vous êtes développeur(ou
développeuse), votre code est probablement dangereux
pour la survie de l'organisation. Assurez-vous qu'il soit
relu par une personne expérimentée dans l'attente
d'avoir un peu plus d'expérience!
02.03.2012 Confoo Conference 2012 - Antonio Fontes 38
39. Common Weakness Enumeration database:
http://cwe.mitre.org/data/index.html
OWASP Secure Coding Checklist:
https://www.owasp.org/index.php/OWASP_Secure_Coding_Practices_-
_Quick_Reference_Guide
OWASP ASVS:
https://www.owasp.org/index.php/Category:OWASP_Application_Security_Ve
rification_Standard_Project
Merci de votre attention!
Si vous souhaitez me contacter:
– antonio.fontes@L7securite.ch ou @starbuck3000
– Newsletter: http://cddb.ch
02.03.2012 Confoo Conference 2012 - Antonio Fontes 39