<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: neuronaddict</title>
    <description>The latest articles on DEV Community by neuronaddict (@neuronaddict).</description>
    <link>https://dev.to/neuronaddict</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2735084%2Ff71078dd-64ea-46cc-a87b-4db3d19e3328.png</url>
      <title>DEV Community: neuronaddict</title>
      <link>https://dev.to/neuronaddict</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/neuronaddict"/>
    <language>en</language>
    <item>
      <title>Pourquoi votre code python ne marche plus sur votre serveur</title>
      <dc:creator>neuronaddict</dc:creator>
      <pubDate>Sun, 18 May 2025 10:33:24 +0000</pubDate>
      <link>https://dev.to/neuronaddict/pourquoi-votre-code-python-ne-marche-plus-sur-votre-serveur-5c58</link>
      <guid>https://dev.to/neuronaddict/pourquoi-votre-code-python-ne-marche-plus-sur-votre-serveur-5c58</guid>
      <description>&lt;p&gt;Vous avez préparé pendant des heures votre code python, vous l'avez testé et retesté sur votre poste.&lt;/p&gt;

&lt;p&gt;Et là, vous le déployez sur votre serveur et... il ne marche plus.&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/qLlr8DjaXvc"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Vous avez même suivi et appliqué les conseils de la vidéo précédente sur les dépendances python, mais en réalité ça vous permet de faire du code qui marche tout le temps sur une même machine.&lt;/p&gt;

&lt;p&gt;Alors que c'est il passé ? Dans cette vidéo je vous montre comment faire du code python qui marche partout.&lt;/p&gt;

&lt;p&gt;Lien vers la vidéo précédente, que je vous conseille de voir avant :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://youtu.be/2NkTdQI2G_0" rel="noopener noreferrer"&gt;https://youtu.be/2NkTdQI2G_0&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://neuronaddict.org/2025/01/19/pourquoi-votre-code-python-ne-marchera-plus-dans-2-mois/" rel="noopener noreferrer"&gt;https://neuronaddict.org/2025/01/19/pourquoi-votre-code-python-ne-marchera-plus-dans-2-mois/&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Le code des exemples: &lt;a href="https://codeberg.org/neuronaddict/generic-assistant" rel="noopener noreferrer"&gt;https://codeberg.org/neuronaddict/generic-assistant&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;--- Chapitres&lt;/p&gt;

&lt;p&gt;00:00 Intro&lt;br&gt;
00:18 Exemple sur un serveur ohv debian&lt;br&gt;
02:47 Analyse du problème&lt;br&gt;
05:28 Une question de version : migrer vers uv&lt;br&gt;
13:14 Les dépendances de dev&lt;br&gt;
14:24 Fix sur le serveur&lt;br&gt;
18:21 Quelques conseils pour résoudre les problèmes de ce type&lt;br&gt;
15:53 La suite...&lt;/p&gt;

&lt;p&gt;--- Liens&lt;/p&gt;

&lt;p&gt;uv: &lt;a href="https://docs.astral.sh/uv/" rel="noopener noreferrer"&gt;https://docs.astral.sh/uv/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Merci à Punch Deck pour le générique : "I can't Stop" / &lt;a href="https://soundcloud.com/punch-deck" rel="noopener noreferrer"&gt;https://soundcloud.com/punch-deck&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Comprendre IngressNightmare par l’exemple.</title>
      <dc:creator>neuronaddict</dc:creator>
      <pubDate>Sun, 18 May 2025 10:00:00 +0000</pubDate>
      <link>https://dev.to/neuronaddict/comprendre-ingressnightmare-par-lexemple-3kg6</link>
      <guid>https://dev.to/neuronaddict/comprendre-ingressnightmare-par-lexemple-3kg6</guid>
      <description>&lt;p&gt;Est ce qu’avoir un cluster exposé suffit à être vulnérable à IngressNightmare ? En fait ça dépend.&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/thl73jTzzdM"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Alors qu’est ce qui fait qu’on est vulnérable et surtout, qu’est ce qu’il faut patcher en premier ?&lt;/p&gt;

&lt;p&gt;Lorsque la faille IngressNightmare a été médiatisée, j’ai cru au début qu’il suffisait d’un accès à un endpoint HTTP derrière un nginx dans kubernetes pour risquer de se faire attaquer. Mais en fait pas exactement.&lt;/p&gt;

&lt;p&gt;C’est plus compliqué mais c’est surtout une faille moderne, dans le sens où elle implique une chaînes de plusieurs problèmes qui n’ont pas l’air si graves pris un à un.&lt;/p&gt;

&lt;p&gt;Attention je n’ai pas dit qu’il ne faut rien faire ! Je veux surtout que vous compreniez la faille pour être en mesure de la corriger efficacement.&lt;/p&gt;

&lt;p&gt;Comme toujours, vous pourrez télécharger les exemples et tester chez vous pour mieux comprendre comment ça marche.&lt;/p&gt;

&lt;p&gt;— Chapitres —&lt;/p&gt;

&lt;p&gt;00:00 Intro&lt;br&gt;
00:17 Exemple avec k3s&lt;br&gt;
04:05 Le mystérieux Ingress Controller&lt;br&gt;
08:56 L’Admission controller, oublié dans l’API&lt;br&gt;
15:19 C’est quoi le problème avec nginx alors ?&lt;br&gt;
22:51 Une injection pour executer du code&lt;br&gt;
28:47 Il reste une librairie à uploader…&lt;br&gt;
33:54 remédier pour de bon&lt;/p&gt;

&lt;p&gt;Liens :&lt;/p&gt;

&lt;p&gt;L’article de la faille : &lt;a href="https://www.wiz.io/blog/ingress-nginx-kubernetes-vulnerabilities" rel="noopener noreferrer"&gt;https://www.wiz.io/blog/ingress-nginx-kubernetes-vulnerabilities&lt;/a&gt;&lt;br&gt;
Les manifest dans k3s (on s’en lasse pas) : &lt;a href="https://docs.k3s.io/installation/packaged-components" rel="noopener noreferrer"&gt;https://docs.k3s.io/installation/packaged-components&lt;/a&gt;&lt;br&gt;
Vagrant : &lt;a href="https://developer.hashicorp.com/vagrant" rel="noopener noreferrer"&gt;https://developer.hashicorp.com/vagrant&lt;/a&gt;&lt;br&gt;
nginx ingress controller : &lt;a href="https://docs.nginx.com/nginx-ingress-controller/" rel="noopener noreferrer"&gt;https://docs.nginx.com/nginx-ingress-controller/&lt;/a&gt;&lt;br&gt;
Doc nginx du paramètre client_body_in_file_only : &lt;a href="https://nginx.org/en/docs/http/ngx_http_core_module.html#client_body_in_file_only" rel="noopener noreferrer"&gt;https://nginx.org/en/docs/http/ngx_http_core_module.html#client_body_in_file_only&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Hacker Spring avec du XML ? La faille XXE en détails</title>
      <dc:creator>neuronaddict</dc:creator>
      <pubDate>Sat, 17 May 2025 10:43:43 +0000</pubDate>
      <link>https://dev.to/neuronaddict/hacker-spring-avec-du-xml-la-faille-xxe-en-details-5bk6</link>
      <guid>https://dev.to/neuronaddict/hacker-spring-avec-du-xml-la-faille-xxe-en-details-5bk6</guid>
      <description>&lt;p&gt;Du XML ça serait vulnérable ? Etonnant non ? En fait comme souvent c’est la manière dont il est interprété qui pose problème.&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/s2H3ih4c6lM"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Lien peertube : &lt;a href="https://peertube.mesnumeriques.fr/w/bEf7zZNK6mtiqtJTLtYkNF?autoplay=1" rel="noopener noreferrer"&gt;https://peertube.mesnumeriques.fr/w/bEf7zZNK6mtiqtJTLtYkNF?autoplay=1&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Lien direct youtube : &lt;a href="https://youtu.be/s2H3ih4c6lM" rel="noopener noreferrer"&gt;https://youtu.be/s2H3ih4c6lM&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Cette faille est très vieille mais je la rencontre encore aujourd’hui et elle est intéressante car elle montre à quel point&lt;br&gt;
des features faites pour être utiles peuvent se révéler dévastatrices avec une utilisation malveillante.&lt;/p&gt;

&lt;p&gt;Comme toujours, le code des exemples est disponible :&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://codeberg.org/neuronaddict/xxe-demo
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Chapitres :&lt;/p&gt;

&lt;p&gt;00:00 Intro&lt;br&gt;
00:18 Du xml c’est dangereux ??&lt;br&gt;
02:57 Le diable dans les détails…&lt;br&gt;
07:19 Vol de fichier avec les external entities&lt;br&gt;
10:15 Bypass de firewall (encore ?)&lt;br&gt;
13:13 Exfiltration en aveugle&lt;br&gt;
20:02 Correction : il suffisait de se passer de ce dont on a pas besoin…&lt;br&gt;
24:06 Mais toutes les corrections ne se valent pas&lt;/p&gt;

&lt;p&gt;Doc de l’université de Nantes : &lt;a href="https://miage.univ-nantes.fr/miage/D2X1/chapitre_dtd/section_entites.htm" rel="noopener noreferrer"&gt;https://miage.univ-nantes.fr/miage/D2X1/chapitre_dtd/section_entites.htm&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Vidéo: faire un projet python qui restera fonctionnel dans 2 mois</title>
      <dc:creator>neuronaddict</dc:creator>
      <pubDate>Sun, 19 Jan 2025 17:22:05 +0000</pubDate>
      <link>https://dev.to/neuronaddict/video-faire-un-projet-python-qui-restera-fonctionnel-dans-2-mois-331m</link>
      <guid>https://dev.to/neuronaddict/video-faire-un-projet-python-qui-restera-fonctionnel-dans-2-mois-331m</guid>
      <description>&lt;p&gt;Il m'arrive souvent, quand je récupère un projet sur github et que je l’exécute, de me retrouver avec une stacktrace alors que j'ai suivi les instructions d'installation à la lettre.&lt;/p&gt;

&lt;p&gt;En général c'est une stacktrace bien enigmatique, qui parle d'une fonction incompatible. Super !&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs1d2o98i7s7uxf5sh2d7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs1d2o98i7s7uxf5sh2d7.png" alt="Mais pourquoi une erreur pareille avec du code que je vient de pull ?" width="800" height="192"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Mais pourquoi cette erreur sur du code que vous venez de pull ? &lt;/p&gt;

&lt;p&gt;C'est parce que les librairies qui ont été utilisées lors du dev ne sont plus les mêmes sur votre poste et les dernières versions à un instant t ont changé aussi.&lt;/p&gt;

&lt;p&gt;Dans cette vidéo je vous explique comment bien gérer ses dépendances python afin de ne pas avoir de mauvaise surprise quand vous ouvrirez votre projet dans quelques mois.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/2NkTdQI2G_0"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Nous partirons d'exemples que vous pourrez exécuter chez vous pour comprendre les différentes problématiques de dépendances.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Le problème&lt;/li&gt;
&lt;li&gt;Isoler son environnement&lt;/li&gt;
&lt;li&gt;Spécifier ce qu'on installe&lt;/li&gt;
&lt;li&gt;Spécifier exactement ce qu'on installe c'est encore mieux&lt;/li&gt;
&lt;li&gt;Le faire de manière évolutive&lt;/li&gt;
&lt;li&gt;Faire un environnement de dev compatible&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Le code des exemples est disponible ici : &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://codeberg.org/neuronaddict/generic-assistant" rel="noopener noreferrer"&gt;https://codeberg.org/neuronaddict/generic-assistant&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/NeuronAddict/generic-assistant" rel="noopener noreferrer"&gt;https://github.com/NeuronAddict/generic-assistant&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;En bonus : un template de projet qui vous permet de démarrer un projet qui marchera encore quand vous le ressortirez des cartons !&lt;/p&gt;

&lt;p&gt;Lien ici :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://codeberg.org/neuronaddict/python-template" rel="noopener noreferrer"&gt;https://codeberg.org/neuronaddict/python-template&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/NeuronAddict/python-template" rel="noopener noreferrer"&gt;https://github.com/NeuronAddict/python-template&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>python</category>
      <category>tutorial</category>
      <category>productivity</category>
      <category>security</category>
    </item>
  </channel>
</rss>
