<?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>BrainWaves &#187; PHP</title>
	<atom:link href="http://www.lab33.nl/archives/category/php/feed" rel="self" type="application/rss+xml" />
	<link>http://www.lab33.nl</link>
	<description>Erik's weblog</description>
	<lastBuildDate>Mon, 22 Mar 2010 19:57:24 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>$HTTP_GET_VARS en $HTTP_POST_VARS doen het niet meer!</title>
		<link>http://www.lab33.nl/archives/35</link>
		<comments>http://www.lab33.nl/archives/35#comments</comments>
		<pubDate>Fri, 14 Aug 2009 22:39:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.lab33.nl/?p=35</guid>
		<description><![CDATA[Eigenlijk doet het gehele scala: $HTTP_XXX_VARS het niet meer in PHP5 (deprecated). Deze zijn namelijk vervangen door $_XXX. Dus $HTTP_GET_VARS wordt $_GET en $HTTP_SERVER_VARS wordt $_SERVER. Leuk als je een oude shop (van osCommerce) op je server zet. Zoek dus niet in je query&#8217;s. Die zijn heus goed (ze deden het eerst ook namelijk). Maar [...]]]></description>
			<content:encoded><![CDATA[<p>Eigenlijk doet het gehele scala: $HTTP_XXX_VARS het niet meer in PHP5 (deprecated). Deze zijn namelijk vervangen door $_XXX. Dus $HTTP_GET_VARS wordt $_GET en $HTTP_SERVER_VARS wordt $_SERVER. Leuk als je een oude shop (van osCommerce) op je server zet. Zoek dus niet in je query&#8217;s. Die zijn heus goed (ze deden het eerst ook namelijk). Maar zoek dus eerst even op $HTTP_XXX_VARS.</p>
<p><strong>Hoe ben ik er vanaf gekomen?</strong><br />
Simpel. Dreamweaver heeft een superfijne &#8216;zoek en vervang&#8217; functie. Die doorzoekt je hele site en vervangt alles in 1x. Eerst zoek je op &#8216;$HTTP_&#8217;. Als je dan $HTTP_XXX_VARS tegenkomt, zoek en vervang je de specifieke code. Als je geen resultaten meer vind, ben je klaar.</p>
<p><strong>Een instinkertje:</strong><br />
$HTTP_POST_FILES wordt $_FILES</p>
<p><map name='google_ad_map_35_73be9208a8a096d8'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/35?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_35_73be9208a8a096d8' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=35&amp;url= http%3A%2F%2Fwww.lab33.nl%2Farchives%2F35' /></p>]]></content:encoded>
			<wfw:commentRss>http://www.lab33.nl/archives/35/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sql injectie voorkomen, ok. Maar hoe behoud ik werkbare formulieren?</title>
		<link>http://www.lab33.nl/archives/10</link>
		<comments>http://www.lab33.nl/archives/10#comments</comments>
		<pubDate>Wed, 25 Mar 2009 22:49:33 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.lab33.nl/?p=10</guid>
		<description><![CDATA[Met &#8216;mysql_real_escape_string&#8216; kun je eenvoudig enkele quotes en dubbele quotes (en \x00, \n, \r, \, &#8216;, &#8221; en \x1a) &#8216;escapen&#8217;. Hiermee voorkom je sql injectie. Volgens php.net moet deze functie altijd gebruikt worden wanneer er data vanuit een form in een database geplaatst wordt.
Niet echt lastig:
$myVar = mysql_real_escape_string($_POST["naam"]);
$myQuery = &#8220;UPDATE table SET naam = &#8216;&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p>Met &#8216;<a href="http://nl.php.net/manual/en/function.mysql-real-escape-string.php">mysql_real_escape_string</a>&#8216; kun je eenvoudig enkele quotes en dubbele quotes (en \x00, \n, \r, \, &#8216;, &#8221; en \x1a) &#8216;escapen&#8217;. Hiermee voorkom je sql injectie. Volgens php.net moet deze functie altijd gebruikt worden wanneer er data vanuit een form in een database geplaatst wordt.</p>
<p>Niet echt lastig:<br />
$myVar = mysql_real_escape_string($_POST["naam"]);<br />
$myQuery = &#8220;UPDATE table SET naam = &#8216;&#8221; . $myVar . &#8220;&#8216;&#8221;;</p>
<p>So far, so good.</p>
<p>Wanneer je een gebruiker de gelegenheid biedt om zijn ingevoerde content aan te kunnen passen via een formulier, kunnen er vervelende problemen ontstaan.</p>
<p>&lt;input name=&#8221;naam&#8221; type=&#8221;text&#8221; value=&#8221;&lt;?=$myRs[0]["naam"]?&gt;&#8221; /&gt;</p>
<p>De output is namelijk voorzien van slashes. Je text veld bevat dan bijvoorbeeld [waarde\'s]. Niet echt handig. Zeker niet als je deze input een keer of drie submit. Je krijgt dan: [waarde\\\'s].</p>
<p>De functie &#8216;<a href="http://nl.php.net/manual/en/function.stripslashes.php">stripslashes</a>&#8216; is dan een voor de hand liggende oplossing. Alleen krijg je dan een probleem met je dubbele quotes. Als je deze text probeert in te voeren [Deze "fiets" is van sjaak], zal dat niet lukken. Je krijgt het slechts voor elkaar om [Deze ] in te voeren. De eerste dubbele quote wordt namelijk gezien als afsluiter van de value in je input tag.</p>
<p>De enige oplossing die ik kon bedenken die in alle gevallen werkt is &#8216;<a href="http://nl.php.net/manual/en/function.htmlentities.php">htmlentities</a>&#8216;.</p>
<p>Dus: &lt;input name=&#8221;naam&#8221; type=&#8221;text&#8221; value=&#8221;&lt;?=htmlentities($myRs[0]["naam"])?&gt;&#8221; /&gt;</p>
<p>Je kunt dan echt helemaal los met quotes en dubbele quotes. Alles gaat de database is.</p>
<p><map name='google_ad_map_10_73be9208a8a096d8'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/10?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_10_73be9208a8a096d8' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=10&amp;url= http%3A%2F%2Fwww.lab33.nl%2Farchives%2F10' /></p>]]></content:encoded>
			<wfw:commentRss>http://www.lab33.nl/archives/10/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

