<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://www.llaumgui.com/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>Le blog de llaumgui - Balise - WebDeveloper</title>
  <link>http://www.llaumgui.com/</link>
  <atom:link href="http://www.llaumgui.com/feed/tag/WebDeveloper/rss2" rel="self" type="application/rss+xml"/>
  <description>Linux en général, Fedora en particulier...</description>
  <language>fr</language>
  <pubDate>Wed, 03 Dec 2008 15:54:44 +0100</pubDate>
  <copyright>http://creativecommons.org/licenses/by-nc-nd/2.5/</copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Boutique en ligne, autopsie d'une faille de sécurité</title>
    <link>http://www.llaumgui.com/post/boutique-en-ligne-autopsie-dune-faille-de-securite</link>
    <guid isPermaLink="false">urn:md5:ee53fc6b75f0aa0a9ba0c9f31aff8b8b</guid>
    <pubDate>Tue, 19 Apr 2005 19:13:00 +0000</pubDate>
    <dc:creator>llaumgui</dc:creator>
        <category>Développement web</category>
        <category>Firefox</category><category>javascript</category><category>php</category><category>sécurité</category><category>WebDeveloper</category>    
    <description>&lt;p&gt;Actuellement, je travail pour une boutique de vente en ligne réservée aux
professionnels mais qui, depuis peu, s'ouvre au tout venant. Dans ce billet,
pour des raisons évidentes de sécurité, je ne donnerais ni de nom, ni de plus
grosses descriptions (Et les captures seront modifiés) : cela afin que vous ne
profitiez pas de la faille avant que je la (les) corrige(s)...&lt;br /&gt;
Jusqu'à ce que tout soit sécurisé, appelons les &lt;strong&gt;Boutique
X&lt;/strong&gt;.&lt;/p&gt;    &lt;h2&gt;I Première faille de sécurité : Calcul du prix via JavaScript :&lt;/h2&gt;
&lt;p&gt;Boutique X gère un très grand nombre de produits tous modifiables (Désolé,
je ne peux rentrer dans le détails.). Chaque panier doit être calculé en temps
réel... C'est à ce niveau qu'intervient JavaScript.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Problème :&lt;/strong&gt; Le calcul s'effectuant côté client, il est donc
facile de le modifier pour changer le prix de façon avantageuse...&lt;br /&gt;
&lt;strong&gt;Solution :&lt;/strong&gt; Effectuer le calcul côté serveur (php).&lt;/p&gt;
&lt;h2&gt;II. Deuxième faille de sécurité : register_global = On :&lt;/h2&gt;
&lt;p&gt;Autre faille de sécurité : les variables passées via le formulaire grâce à
la méthode post (method=&amp;quot;post&amp;quot;) ne sont pas récupérée via $_POST['variable']
mais par $variable.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Problème :&lt;/strong&gt; On peux modifier certaines variables en les
passant par l'url...&lt;br /&gt;
&lt;strong&gt;Rustine :&lt;/strong&gt; Vérifiant que le tableaux $_GET contient uniquement
les 2 champs que l'on utilise...&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Par soucis de rigueur, et partant du constat : &amp;quot;Qui peux le plus, peux
le moins&amp;quot; ; je conseils à tout le mode de travailler sous&lt;/em&gt; register_global
= Off&lt;em&gt;, plus contraignant... Ce qui marche à&lt;/em&gt; Off &lt;em&gt;marche à&lt;/em&gt; On
&lt;em&gt;mais la réciproque est fausse !!!&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;III Coup de grâce : WebDeveloper :&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;http://joliclic.free.fr/mozilla/webdeveloper/&quot; hreflang=&quot;fr&quot;&gt;WebDeveloppeur&lt;/a&gt; est une extension pour &lt;a href=&quot;http://www.mozilla-europe.org/fr/products/firefox/&quot; hreflang=&quot;us&quot;&gt;FireFox&lt;/a&gt;
permettant de modifier une page web directement via ce navigateur... J'en
parlais déjà &lt;a href=&quot;http://forums.xperience-fr.net/index.php?showtopic=1208&quot; hreflang=&quot;fr&quot;&gt;là&lt;/a&gt; et je l'utilise tout le temps pour débuguer mes sites
(Essayez là, c'est trop pratique, mais là n'est pas la question).&lt;/p&gt;
&lt;p&gt;Le problème vient du fait que le prix calculé précédement (Voir paragraphe
I) passe de pages en pages via le formulaire et ce avec d'autres données
sensibles... C'est en soit &lt;strong&gt;une énorme faille de sécurité&lt;/strong&gt; que
WebDeveloper rend accessible au premier pirate venu...&lt;/p&gt;
&lt;p class=&quot;center&quot;&gt;&lt;img src=&quot;http://www.llaumgui.com/public/images/web/secu-webdeveloper1.png&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
Vous pouvez voir en arrière plan, une partie des champs &amp;quot;&lt;em&gt;hidden&lt;/em&gt;&amp;quot;
rendus visible... Il y en a une pleine page !!!&lt;/p&gt;
&lt;p&gt;Outre le fait de permettre de rendre les champs &lt;em&gt;hidden&lt;/em&gt; (&amp;lt;input
type=hidden) visibles, WebDeveloper permet aussi de les modifier comme le
montre la capture ci-dessous, où le prix est devenu &amp;quot;&lt;em&gt;LLaumgui Euro&lt;/em&gt;&amp;quot;.
Bien sûr mettre LLaumgui ne sert qu'à signer mon acte, mais modifier le prix
pour un autre plus bas, là c'est avantageux !!!&lt;/p&gt;
&lt;p class=&quot;center&quot;&gt;&lt;img src=&quot;http://www.llaumgui.com/public/images/web/secu-webdeveloper2.png&quot; alt=&quot;&quot; /&gt;&lt;br /&gt;
Désolé, là encore, j'ai presque tout masqué ce qui pouvais permettre
d'identifier l'entreprise...&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Solution :&lt;/strong&gt; Utiliser les sessions et recalculer le tout
avant de passer par le système de payement...&lt;/p&gt;</description>
    
    
    
          <comments>http://www.llaumgui.com/post/boutique-en-ligne-autopsie-dune-faille-de-securite#comment-form</comments>
      <wfw:comment>http://www.llaumgui.com/post/boutique-en-ligne-autopsie-dune-faille-de-securite#comment-form</wfw:comment>
      <wfw:commentRss>http://www.llaumgui.com/feed/atom/comments/26</wfw:commentRss>
      </item>
    
</channel>
</rss>