<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Riad Benguella, Le blog &#187; Escaping</title>
	<atom:link href="http://blog.riadbenguella.com/tag/escaping/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.riadbenguella.com</link>
	<description>Développement, Web, High-Tech et autres</description>
	<lastBuildDate>Sat, 14 Jan 2012 12:22:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Faille XSS, et Symfony</title>
		<link>http://blog.riadbenguella.com/faille-xss-et-symfony/</link>
		<comments>http://blog.riadbenguella.com/faille-xss-et-symfony/#comments</comments>
		<pubDate>Tue, 28 Oct 2008 19:04:42 +0000</pubDate>
		<dc:creator>Riad</dc:creator>
				<category><![CDATA[Développement web et programmation]]></category>
		<category><![CDATA[Escaping]]></category>
		<category><![CDATA[Faille]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Sécurité]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[XSS]]></category>

		<guid isPermaLink="false">http://youknowriad.nomade-dz.com/?p=252</guid>
		<description><![CDATA[Que est ce que la faille XSS ? XSS ou le cross site scripting est l&#8217;une des failles les plus répandues dans les sites web dynamiques si ce n&#8217;est la plus répandue. Elle consiste en fait au passage d&#8217;un code &#8230; <a href="http://blog.riadbenguella.com/faille-xss-et-symfony/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><strong>Que est ce que la faille XSS ?</strong></p>
<p><em><strong>XSS </strong></em>ou le<em><strong> cross site scripting </strong></em>est l&#8217;une des failles les plus répandues dans les sites web dynamiques si ce n&#8217;est la plus répandue. Elle consiste en fait au passage d&#8217;un code éxécutable par le navigateur (JavaScript ou autre) en utilisant des formulaires ou diréctement l&#8217;URL. L&#8217;exploitation de cette faille permeterai notemment d&#8217;éxécuter des scripts douteux directement dans votre serveur web, c&#8217;est qui fournirai par exemple énormément d&#8217;informations sur le serveur &#8230;<span id="more-252"></span></p>
<p>Pour vérifier la présence d&#8217;une telle faille dans un formulaire par exemple, il suffit de remplir un champ du formulaire ou tous les champs (ça dépend du formulaire) par exemple par :</p>
<p><code>&lt;script&gt;alert('Ceci est une faille XSS')&lt;/script&gt;</code></p>
<p><strong>Symfony et la faille XSS ?</strong></p>
<p>J&#8217;ai longtemps cru à tord que symfony était par défaut protégé contre ce type de failles, jusqu&#8217;à ce qu&#8217;un testeur de <a href="http://www.bloginy.com">Bloginy</a> (un projet fait avec Symfony), m&#8217;indique que mon formulaire de recherche est vulnérable. En fait, symfony dispose d&#8217;une manière automatique d&#8217;éviter ces failles, mais ne l&#8217;active pas par défaut.</p>
<p>Pour palier à ces failles, symfony dispose donc d&#8217;un moyen d&#8217;échapement (<strong>escaping</strong>) pour tous vos données manipulés (c&#8217;est à dire que vos données sont automatiquement convertis au code XHTML correspondant). Par exemple, si vous entrez : <strong><em>&lt;script&gt;alert(&#8216;Ceci est une faille XSS&#8217;)&lt;/script&gt;</em></strong>, bain en réalité vous manipulerez le texte suivant : <strong><em>&amp;lt;script&amp;gt;alert(&#8216;Ceci est une faille XSS&#8217;)&amp;lt;/script&amp;gt;</em></strong>. Et ce texte ne poura être éxécuté en tant que code par le navigateur.</p>
<p><strong>Comment activer l&#8217;échappement automatique ?</strong></p>
<p>Rien de plus simple, par défaut Symfony utilise la stratégie d&#8217;échappement &laquo;&nbsp;bc&nbsp;&raquo;, qui ne vous protège pas par défaut des failles XSS, il faut donc modifier le fichier setting.yml de votre application Symfony comme suit :</p>
<p><code>all:<br />
&nbsp;&nbsp;.settings:<br />
&nbsp;&nbsp;&nbsp;&nbsp;escaping_strategy: both<br />
&nbsp;&nbsp;&nbsp;&nbsp;escaping_method: ESC_ENTITIES</code></p>
<p>Maintenant, toutes vos données seront transformées, et vous êtes protégés automatiquement de ce genre de failles.</p>
<p><strong>Et si je voulais que le code soit interprété :</strong></p>
<p>Il peut arriver que vous ayez besoin que le navigateur interprète ce que l&#8217;utilisateur entre, tel qu&#8217;il est. Par exemple pour afficher du code HTML généré par les utilisateurs (dans le cas d&#8217;un message dans un forum par exemple). Rien de plus simple la aussi, une variable transformée <em><strong>$var</strong></em>, est accessible sans échappement comme ceci : <strong>$sf_data-&gt;get(&#8216;test&#8217;)</strong>.</p>
<p>Si votre donnée est un objet, et que vous désirez accéder à un membre de cet objet sans échappement, rien de plus simple : <strong>$objet-&gt;getRawValue()-&gt;getMembre()</strong>.</p>
<p>Voilà, j&#8217;espère que vous êtes maintenant plus éclairés sur les failles XSS, et la manière de les évitez grâce au framework Symfony. Si vous rencontrez toujours des problèmes, n&#8217;hésitez pas à laisser des commentaires.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.riadbenguella.com/faille-xss-et-symfony/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

