<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.2.3" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>
<channel>
	<title>Comments on: A reliable way to serialize/unserialize objects in PHP</title>
	<link>http://efiquest.org/2007-12-10/6/</link>
	<description>(mostly in programming and *nix administration)</description>
	<pubDate>Sun, 06 Jul 2008 19:44:27 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2.3</generator>

	<item>
		<title>By: kate</title>
		<link>http://efiquest.org/2007-12-10/6/#comment-219</link>
		<dc:creator>kate</dc:creator>
		<pubDate>Thu, 06 Mar 2008 11:40:41 +0000</pubDate>
		<guid>http://efiquest.org/2007-12-10/6/#comment-219</guid>
		<description>good post man thx</description>
		<content:encoded><![CDATA[<p>good post man thx</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Веб-обзор #10 - бизнес, бизнес, немного РНР, совсем немного PostgreSQL и архитектуры Flickr и Google на русском. &#124; Alpha-Beta-Release Blog</title>
		<link>http://efiquest.org/2007-12-10/6/#comment-207</link>
		<dc:creator>Веб-обзор #10 - бизнес, бизнес, немного РНР, совсем немного PostgreSQL и архитектуры Flickr и Google на русском. &#124; Alpha-Beta-Release Blog</dc:creator>
		<pubDate>Sun, 10 Feb 2008 10:49:34 +0000</pubDate>
		<guid>http://efiquest.org/2007-12-10/6/#comment-207</guid>
		<description>[...] A reliable way to serialize/unserialize objects in PHP - ещё один материал, более основательный, для РНР разработчиков, который расскажет о таком, казалось бы тривиальном процессе, как сериализация и десериализация объектов. На самом деле это совсем не так просто и чревато разными подводными камнями, особенно для начинающих программистов, так что очень рекомендуется для изучения. [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] A reliable way to serialize/unserialize objects in PHP - ещё один материал, более основательный, для РНР разработчиков, который расскажет о таком, казалось бы тривиальном процессе, как сериализация и десериализация объектов. На самом деле это совсем не так просто и чревато разными подводными камнями, особенно для начинающих программистов, так что очень рекомендуется для изучения. [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Adam</title>
		<link>http://efiquest.org/2007-12-10/6/#comment-123</link>
		<dc:creator>Adam</dc:creator>
		<pubDate>Wed, 09 Jan 2008 13:55:40 +0000</pubDate>
		<guid>http://efiquest.org/2007-12-10/6/#comment-123</guid>
		<description>Serialize for the win!</description>
		<content:encoded><![CDATA[<p>Serialize for the win!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: developercast.com &#187; Pavel Shevaev&#8217;s Blog: A reliable way to serialize/unserialize objects in PHP</title>
		<link>http://efiquest.org/2007-12-10/6/#comment-54</link>
		<dc:creator>developercast.com &#187; Pavel Shevaev&#8217;s Blog: A reliable way to serialize/unserialize objects in PHP</dc:creator>
		<pubDate>Tue, 11 Dec 2007 18:45:04 +0000</pubDate>
		<guid>http://efiquest.org/2007-12-10/6/#comment-54</guid>
		<description>[...] Shevaev has posted his method (a reliable way) for serializing and unserializing objects in your [...]</description>
		<content:encoded><![CDATA[<p>[&#8230;] Shevaev has posted his method (a reliable way) for serializing and unserializing objects in your [&#8230;]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: PHPDeveloper.org</title>
		<link>http://efiquest.org/2007-12-10/6/#comment-53</link>
		<dc:creator>PHPDeveloper.org</dc:creator>
		<pubDate>Tue, 11 Dec 2007 13:57:29 +0000</pubDate>
		<guid>http://efiquest.org/2007-12-10/6/#comment-53</guid>
		<description>&lt;strong&gt;Pavel Shevaev's Blog: A reliable way to serialize/unserialize objects in PHP...&lt;/strong&gt;


Pavel Shevaev has posted his method (a reliable way) for serializing ......</description>
		<content:encoded><![CDATA[<p><strong>Pavel Shevaev&#8217;s Blog: A reliable way to serialize/unserialize objects in PHP&#8230;</strong></p>
<p>Pavel Shevaev has posted his method (a reliable way) for serializing &#8230;&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alexey Zakhlestin</title>
		<link>http://efiquest.org/2007-12-10/6/#comment-51</link>
		<dc:creator>Alexey Zakhlestin</dc:creator>
		<pubDate>Mon, 10 Dec 2007 11:14:17 +0000</pubDate>
		<guid>http://efiquest.org/2007-12-10/6/#comment-51</guid>
		<description>At some point I thought you would go the "java way" and put the code of the class into serialized stream ;)

Solution is an interesting one. Though, I doubt I will have a use-case for that. My projects usually have "ezc-style" autoload maps (and I patch external libs which I use to do the same)</description>
		<content:encoded><![CDATA[<p>At some point I thought you would go the &#8220;java way&#8221; and put the code of the class into serialized stream <img src='http://efiquest.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Solution is an interesting one. Though, I doubt I will have a use-case for that. My projects usually have &#8220;ezc-style&#8221; autoload maps (and I patch external libs which I use to do the same)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: pachanga</title>
		<link>http://efiquest.org/2007-12-10/6/#comment-50</link>
		<dc:creator>pachanga</dc:creator>
		<pubDate>Mon, 10 Dec 2007 10:35:16 +0000</pubDate>
		<guid>http://efiquest.org/2007-12-10/6/#comment-50</guid>
		<description>&gt;Although I’m not in favour of this approach. 
&gt;I think that a well structured application layout is very important...
&gt;If you have that then you know where class structures are located 
&gt;and can find them easily at runtime by use of __autoload

Unfortunately, this is often not the case  when dealing with misc. external libraries which have different file system layout, naming conventions or simply don't use __autoload at all.</description>
		<content:encoded><![CDATA[<p>>Although I’m not in favour of this approach.<br />
>I think that a well structured application layout is very important&#8230;<br />
>If you have that then you know where class structures are located<br />
>and can find them easily at runtime by use of __autoload</p>
<p>Unfortunately, this is often not the case  when dealing with misc. external libraries which have different file system layout, naming conventions or simply don&#8217;t use __autoload at all.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: pachanga</title>
		<link>http://efiquest.org/2007-12-10/6/#comment-49</link>
		<dc:creator>pachanga</dc:creator>
		<pubDate>Mon, 10 Dec 2007 10:31:21 +0000</pubDate>
		<guid>http://efiquest.org/2007-12-10/6/#comment-49</guid>
		<description>sorccu, I believe this should be a concern of the code using SerializableContainer. SerializableContainer is a pretty generic solution and it simply can't predict all possible misuses. The same security concerns are valid for serialize/unserialize calls too.  Anyway thanks for raising this issue.</description>
		<content:encoded><![CDATA[<p>sorccu, I believe this should be a concern of the code using SerializableContainer. SerializableContainer is a pretty generic solution and it simply can&#8217;t predict all possible misuses. The same security concerns are valid for serialize/unserialize calls too.  Anyway thanks for raising this issue.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: sorccu</title>
		<link>http://efiquest.org/2007-12-10/6/#comment-48</link>
		<dc:creator>sorccu</dc:creator>
		<pubDate>Mon, 10 Dec 2007 10:05:21 +0000</pubDate>
		<guid>http://efiquest.org/2007-12-10/6/#comment-48</guid>
		<description>var_dump(preg_match('~([&#124;&#124;;]O&#124;^O):\d+:"([^"]+)":\d+:{~', serialize('user;O:3:"Foo":0:{}input')));

So, depending on what you are serializing, some evil madman could be able to force you to load a class file that isn't necessarily needed. Given the need for the class to already exist at the time of serializing, this is hardly a serious risk but it is nevertheless quite scary.</description>
		<content:encoded><![CDATA[<p>var_dump(preg_match(&#8217;~([||;]O|^O):\d+:&#8221;([^&#8221;]+)&#8221;:\d+:{~&#8217;, serialize(&#8217;user;O:3:&#8221;Foo&#8221;:0:{}input&#8217;)));</p>
<p>So, depending on what you are serializing, some evil madman could be able to force you to load a class file that isn&#8217;t necessarily needed. Given the need for the class to already exist at the time of serializing, this is hardly a serious risk but it is nevertheless quite scary.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: pachanga</title>
		<link>http://efiquest.org/2007-12-10/6/#comment-47</link>
		<dc:creator>pachanga</dc:creator>
		<pubDate>Mon, 10 Dec 2007 08:07:57 +0000</pubDate>
		<guid>http://efiquest.org/2007-12-10/6/#comment-47</guid>
		<description>James, you are right about possible problems due to files relocation, I'll update the drawbacks list, thanks. Fortunately, this happens not that often to be a real issue(at least in my practice). However if this approach is used in a cluster, all servers _must_ have all PHP code stored using identical file system layout for obvious reasons.</description>
		<content:encoded><![CDATA[<p>James, you are right about possible problems due to files relocation, I&#8217;ll update the drawbacks list, thanks. Fortunately, this happens not that often to be a real issue(at least in my practice). However if this approach is used in a cluster, all servers _must_ have all PHP code stored using identical file system layout for obvious reasons.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
