<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Kommentare zu: Sicherer Umgang mit der Request Variablen</title>
	<atom:link href="http://www.phphatesme.com/blog/allgemein/sicherer-umgang-mit-der-request-variablen/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.phphatesme.com/blog/allgemein/sicherer-umgang-mit-der-request-variablen/</link>
	<description>PhpHatesMe, but that&#039;s ok!</description>
	<lastBuildDate>Mon, 06 Feb 2012 20:59:49 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>Von: Bastian</title>
		<link>http://www.phphatesme.com/blog/allgemein/sicherer-umgang-mit-der-request-variablen/comment-page-1/#comment-37100</link>
		<dc:creator>Bastian</dc:creator>
		<pubDate>Fri, 06 Nov 2009 15:37:55 +0000</pubDate>
		<guid isPermaLink="false">http://www.phphatesme.com/?p=881#comment-37100</guid>
		<description>Ich habe letzten filter_input_array() für mich entdeckt. Nette kleine mächtige PHP-Funktion.</description>
		<content:encoded><![CDATA[<p>Ich habe letzten filter_input_array() für mich entdeckt. Nette kleine mächtige PHP-Funktion.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Nils Langner</title>
		<link>http://www.phphatesme.com/blog/allgemein/sicherer-umgang-mit-der-request-variablen/comment-page-1/#comment-180</link>
		<dc:creator>Nils Langner</dc:creator>
		<pubDate>Wed, 05 Nov 2008 12:09:58 +0000</pubDate>
		<guid isPermaLink="false">http://www.phphatesme.com/?p=881#comment-180</guid>
		<description>Die Intension der beiden Parameter war einfach die Möglichkeit für eine bestimmte Variable vom Standard Filter abzuweichen und einen hinzuzufügen oder zu entfernen.</description>
		<content:encoded><![CDATA[<p>Die Intension der beiden Parameter war einfach die Möglichkeit für eine bestimmte Variable vom Standard Filter abzuweichen und einen hinzuzufügen oder zu entfernen.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Frank Kleine</title>
		<link>http://www.phphatesme.com/blog/allgemein/sicherer-umgang-mit-der-request-variablen/comment-page-1/#comment-179</link>
		<dc:creator>Frank Kleine</dc:creator>
		<pubDate>Wed, 05 Nov 2008 10:05:53 +0000</pubDate>
		<guid isPermaLink="false">http://www.phphatesme.com/?p=881#comment-179</guid>
		<description>Den Ansatz finde ich problematisch. Wenn ich Werte nur in die Datenbank übernehme will ich die nur für den Eintrag in der DB absichern, aber nicht für die Ausgabe im Browser. Bei Deinem Ansatz muss ich jetzt den Filter für die Browserausgabe abstellen. Ich finde, damit drückt sich im Code nachher nicht mehr klar die Intention aus, was ich eigentlich will, nämlich einen Wert in die DB schreiben und den entsprechend vorher filtern. Bislang bin ich nämlich nicht dahinter gestiegen, was Deine Intention beim mit dem zweiten und dritten Parameter für das Filtern des Usernamen ist.</description>
		<content:encoded><![CDATA[<p>Den Ansatz finde ich problematisch. Wenn ich Werte nur in die Datenbank übernehme will ich die nur für den Eintrag in der DB absichern, aber nicht für die Ausgabe im Browser. Bei Deinem Ansatz muss ich jetzt den Filter für die Browserausgabe abstellen. Ich finde, damit drückt sich im Code nachher nicht mehr klar die Intention aus, was ich eigentlich will, nämlich einen Wert in die DB schreiben und den entsprechend vorher filtern. Bislang bin ich nämlich nicht dahinter gestiegen, was Deine Intention beim mit dem zweiten und dritten Parameter für das Filtern des Usernamen ist.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Nils Langner</title>
		<link>http://www.phphatesme.com/blog/allgemein/sicherer-umgang-mit-der-request-variablen/comment-page-1/#comment-178</link>
		<dc:creator>Nils Langner</dc:creator>
		<pubDate>Wed, 05 Nov 2008 09:54:13 +0000</pubDate>
		<guid isPermaLink="false">http://www.phphatesme.com/?p=881#comment-178</guid>
		<description>Ok bei meinem Ansatz sehe ich jetzt noch ein Problem. Wie kann man es schaffen, alle Filter zu entfernen. Da ich eine Singleton habe, weiß ich ja gar nicht, welche Filter aktiv sind.

Dafür gefällt es mir aus der Sicherheitssicht besser, dass man die Filter entfernen muss und nicht hinzufügen.</description>
		<content:encoded><![CDATA[<p>Ok bei meinem Ansatz sehe ich jetzt noch ein Problem. Wie kann man es schaffen, alle Filter zu entfernen. Da ich eine Singleton habe, weiß ich ja gar nicht, welche Filter aktiv sind.</p>
<p>Dafür gefällt es mir aus der Sicherheitssicht besser, dass man die Filter entfernen muss und nicht hinzufügen.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Frank Kleine</title>
		<link>http://www.phphatesme.com/blog/allgemein/sicherer-umgang-mit-der-request-variablen/comment-page-1/#comment-177</link>
		<dc:creator>Frank Kleine</dc:creator>
		<pubDate>Wed, 05 Nov 2008 09:05:33 +0000</pubDate>
		<guid isPermaLink="false">http://www.phphatesme.com/?p=881#comment-177</guid>
		<description>Stubbles macht sowas ähnliches. Deine Beispiele würden dort ungefähr so aussehen:

$isReadOnly = $request-&gt;getValidatedValue(new stubPreselectValidator(array(true, false)), &#039;isReadOnly&#039;);
$userId = $request-&gt;getFilteredValue(stubStringFilterFactory::forType(&#039;int&#039;), &#039;userId&#039;);
$username = $request-&gt;getFilteredValue(stubStringFilterFactory::forType(&#039;string&#039;)-&gt;length(1, 50)-&gt;asRequired()-&gt;defaultsTo(&#039;anonymous&#039;), &#039;username&#039;);

Wobei sich bei den Filtern alle beliebig kombinieren lassen. Man wird also immer daran erinnert, einen Filter oder Validator zu benutzen. Trotzdem kommt man an den rohen Wert genauso heran - man muss dann eben explizit einen entsprechenden Filter einsetzen.

Als Singleton würde ich den Request aber nicht bauen, ich brauche den schließlich nur einmal erzeugen und kann den dann überall mitgeben wo er benötigt wird. Macht sich besser beim Testen.</description>
		<content:encoded><![CDATA[<p>Stubbles macht sowas ähnliches. Deine Beispiele würden dort ungefähr so aussehen:</p>
<p>$isReadOnly = $request-&gt;getValidatedValue(new stubPreselectValidator(array(true, false)), &#8216;isReadOnly&#8217;);<br />
$userId = $request-&gt;getFilteredValue(stubStringFilterFactory::forType(&#8216;int&#8217;), &#8216;userId&#8217;);<br />
$username = $request-&gt;getFilteredValue(stubStringFilterFactory::forType(&#8216;string&#8217;)-&gt;length(1, 50)-&gt;asRequired()-&gt;defaultsTo(&#8216;anonymous&#8217;), &#8216;username&#8217;);</p>
<p>Wobei sich bei den Filtern alle beliebig kombinieren lassen. Man wird also immer daran erinnert, einen Filter oder Validator zu benutzen. Trotzdem kommt man an den rohen Wert genauso heran &#8211; man muss dann eben explizit einen entsprechenden Filter einsetzen.</p>
<p>Als Singleton würde ich den Request aber nicht bauen, ich brauche den schließlich nur einmal erzeugen und kann den dann überall mitgeben wo er benötigt wird. Macht sich besser beim Testen.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

