<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    <title>PHP Security Blog Comments</title>
    <link>http://blog.php-security.org/</link>
    <description>Comments from </description>
    <dc:language>en</dc:language>
    <admin:errorReportsTo rdf:resource="mailto:" />
    <generator>Serendipity 3.1.4159 - http://www.s9y.org/</generator>
    
    <image>
        <url>http://blog.php-security.org/layout/default/img/s9y_banner_small.png</url>
        <title>RSS: PHP Security Blog Comments - Comments from </title>
        <link>http://blog.php-security.org/</link>
        <width>100</width>
        <height>21</height>
    </image>
<item>
    <title>Robin: Flash Game - 10000 of 900 possible points?!?!?</title>
    <link>http://blog.php-security.org/archives/95-Flash-Game-10000-of-900-possible-points!!.html</link>
<category></category>    <comments>http://blog.php-security.org/archives/95-Flash-Game-10000-of-900-possible-points!!.html#comments</comments>
    <wfw:comment>http://blog.php-security.org/wfwcomment.php?cid=95</wfw:comment>

    <author>blog-admin@nopiracy.de (Robin)</author>
    <content:encoded>
As the flash can be disassembled, doesn't that effectively remove all possibilities to actually hash/encrypt on the flash side?&lt;br /&gt;
&lt;br /&gt;
Keeping a state of all game actions might be a good idea, as it's harder to change/fake, but still possible I'll guess.    </content:encoded>
    <pubDate>Thu, 20 Dec 2007 09:22:59 +0000</pubDate>
    <guid isPermaLink="false">http://blog.php-security.org/archives/95-guid.html#c28508</guid>
    </item>
<item>
    <title>Norbert: Flash Game - 10000 of 900 possible points?!?!?</title>
    <link>http://blog.php-security.org/archives/95-Flash-Game-10000-of-900-possible-points!!.html</link>
<category></category>    <comments>http://blog.php-security.org/archives/95-Flash-Game-10000-of-900-possible-points!!.html#comments</comments>
    <wfw:comment>http://blog.php-security.org/wfwcomment.php?cid=95</wfw:comment>

    <author>blog-admin@nopiracy.de (Norbert)</author>
    <content:encoded>
When you create something real like a car there is a constant battle between the designers and the engineers.&lt;br /&gt;
&lt;br /&gt;
Compared to the web, many designers also try to do the engineering and most of them fail miserably. This highscore example looks to me as if someone who can program Flash also tried his basic knowledge in PHP. &lt;br /&gt;
&lt;br /&gt;
Sometimes available programs are just a little adapted to integrate them into the own website - money matters for the CEO.&lt;br /&gt;
&lt;br /&gt;
Another thing you can do beside encrypting the content is to embed a hash code / token in the Flash file and use this to encrypt/decrypt data and to use cookies / user agent for identification. This way you get a constantly changing key which is different for every client. Trying to manipulate the cookie or data will result in illegal data.    </content:encoded>
    <pubDate>Sun, 16 Dec 2007 17:48:31 +0000</pubDate>
    <guid isPermaLink="false">http://blog.php-security.org/archives/95-guid.html#c28347</guid>
    </item>
<item>
    <title>sickvicar: Flash Game - 10000 of 900 possible points?!?!?</title>
    <link>http://blog.php-security.org/archives/95-Flash-Game-10000-of-900-possible-points!!.html</link>
<category></category>    <comments>http://blog.php-security.org/archives/95-Flash-Game-10000-of-900-possible-points!!.html#comments</comments>
    <wfw:comment>http://blog.php-security.org/wfwcomment.php?cid=95</wfw:comment>

    <author>blog-admin@nopiracy.de (sickvicar)</author>
    <content:encoded>
Instead of crypting the whole message, one might just add a checksum.. perhaps the md5(highscore+other variables+magic passphrase) to make it even slightly harder to send in just any desired highscore?    </content:encoded>
    <pubDate>Sun, 16 Dec 2007 06:14:18 +0000</pubDate>
    <guid isPermaLink="false">http://blog.php-security.org/archives/95-guid.html#c28335</guid>
    </item>
<item>
    <title>char0n: Flash Game - 10000 of 900 possible points?!?!?</title>
    <link>http://blog.php-security.org/archives/95-Flash-Game-10000-of-900-possible-points!!.html</link>
<category></category>    <comments>http://blog.php-security.org/archives/95-Flash-Game-10000-of-900-possible-points!!.html#comments</comments>
    <wfw:comment>http://blog.php-security.org/wfwcomment.php?cid=95</wfw:comment>

    <author>blog-admin@nopiracy.de (char0n)</author>
    <content:encoded>
Well, right now i am working on some application called banner*r. The server side of application is written in PHP and client side is written in Flash. Comunication between client (flash) and server(php) is going throught XML PRC protocol. This xml rpc protocol is fully crypted. So Flash client send a crypted xml-rpc request, I decrypt it in PHP, and send encrypted response that Flash decrypt for its self. Of course HTTP comunication is transparent..but consist of binary 256bit crypted data. The point is it's gonna be very very difficult for someone to sniff comunication and to 'cheat' it.    </content:encoded>
    <pubDate>Fri, 14 Dec 2007 07:22:01 +0000</pubDate>
    <guid isPermaLink="false">http://blog.php-security.org/archives/95-guid.html#c28259</guid>
    </item>
<item>
    <title>Ian P. Christian: Flash Game - 10000 of 900 possible points?!?!?</title>
    <link>http://blog.php-security.org/archives/95-Flash-Game-10000-of-900-possible-points!!.html</link>
<category></category>    <comments>http://blog.php-security.org/archives/95-Flash-Game-10000-of-900-possible-points!!.html#comments</comments>
    <wfw:comment>http://blog.php-security.org/wfwcomment.php?cid=95</wfw:comment>

    <author>pookey@pookey.co.uk (Ian P. Christian)</author>
    <content:encoded>
to answer my own answer.. this system doenst' make it that much better - just a hell of a lot harder &lt;img src=&quot;http://blog.php-security.org/layout/default/img/emoticons/smile.png&quot; alt=&quot;:-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;&lt;br /&gt;
&lt;br /&gt;
I've disassembled a flash movie myself to do this kind of thing, and it's certainly possible to hack even if the flash client is using cryptography the keys used for signing/encrypting the data has to be available to the flash client.&lt;br /&gt;
&lt;br /&gt;
IIRC, the thing I disassembled pased a param to the flash client of a 'game_id', that was used as part fo the encryption process.... I assume that a game_id coudl only be used once. This only made it slightly harder of course, as you could fake a new game, get the ID and use that to submit your crafted response.  &lt;br /&gt;
&lt;br /&gt;
A skilled 'hacker' wouldn't have much problem disassembling flash and reverse engineering this kind of thing.  &lt;br /&gt;
&lt;br /&gt;
One idea I had would be for the game to keep telling the server it's current state, and the server could employ cheat detection algorithms to detect unlikely events happening in real time - and then stop the game from continuing.    </content:encoded>
    <pubDate>Thu, 13 Dec 2007 11:48:13 +0000</pubDate>
    <guid isPermaLink="false">http://blog.php-security.org/archives/95-guid.html#c28227</guid>
    </item>
<item>
    <title>pookey: Flash Game - 10000 of 900 possible points?!?!?</title>
    <link>http://blog.php-security.org/archives/95-Flash-Game-10000-of-900-possible-points!!.html</link>
<category></category>    <comments>http://blog.php-security.org/archives/95-Flash-Game-10000-of-900-possible-points!!.html#comments</comments>
    <wfw:comment>http://blog.php-security.org/wfwcomment.php?cid=95</wfw:comment>

    <author>pookey@pookey.co.uk (pookey)</author>
    <content:encoded>
The server hosting the flash game won't send the request - the game will - so it will come from the users browser.&lt;br /&gt;
&lt;br /&gt;
You would need to use cryptography to secure the URL params.  There are crypto libraries for flash.    </content:encoded>
    <pubDate>Wed, 12 Dec 2007 17:53:59 +0000</pubDate>
    <guid isPermaLink="false">http://blog.php-security.org/archives/95-guid.html#c28202</guid>
    </item>
<item>
    <title>AVARD: Flash Game - 10000 of 900 possible points?!?!?</title>
    <link>http://blog.php-security.org/archives/95-Flash-Game-10000-of-900-possible-points!!.html</link>
<category></category>    <comments>http://blog.php-security.org/archives/95-Flash-Game-10000-of-900-possible-points!!.html#comments</comments>
    <wfw:comment>http://blog.php-security.org/wfwcomment.php?cid=95</wfw:comment>

    <author>blog-admin@nopiracy.de (AVARD)</author>
    <content:encoded>
There is database component within flash isn't it? I haven't mess with flash lately, but if I remember correctly, you can connect to a db directly in your flash. no php needed. but again, I'm not sure 100%    </content:encoded>
    <pubDate>Wed, 12 Dec 2007 16:47:52 +0000</pubDate>
    <guid isPermaLink="false">http://blog.php-security.org/archives/95-guid.html#c28201</guid>
    </item>
<item>
    <title>fa: Flash Game - 10000 of 900 possible points?!?!?</title>
    <link>http://blog.php-security.org/archives/95-Flash-Game-10000-of-900-possible-points!!.html</link>
<category></category>    <comments>http://blog.php-security.org/archives/95-Flash-Game-10000-of-900-possible-points!!.html#comments</comments>
    <wfw:comment>http://blog.php-security.org/wfwcomment.php?cid=95</wfw:comment>

    <author>fa@codeschmie.de (fa)</author>
    <content:encoded>
One way is to &quot;capture&quot; the game as a set of actions performed and save it on the server. You can replay it and verify that the player made legal moves in the game.    </content:encoded>
    <pubDate>Wed, 12 Dec 2007 14:15:47 +0000</pubDate>
    <guid isPermaLink="false">http://blog.php-security.org/archives/95-guid.html#c28199</guid>
    </item>
<item>
    <title>Evert: Flash Game - 10000 of 900 possible points?!?!?</title>
    <link>http://blog.php-security.org/archives/95-Flash-Game-10000-of-900-possible-points!!.html</link>
<category></category>    <comments>http://blog.php-security.org/archives/95-Flash-Game-10000-of-900-possible-points!!.html#comments</comments>
    <wfw:comment>http://blog.php-security.org/wfwcomment.php?cid=95</wfw:comment>

    <author>evert@rooftopsolutions.nl (Evert)</author>
    <content:encoded>
The only secure way to protect the data, is by having the game-login also on the server and tracking the users' every move..    </content:encoded>
    <pubDate>Wed, 12 Dec 2007 13:57:05 +0000</pubDate>
    <guid isPermaLink="false">http://blog.php-security.org/archives/95-guid.html#c28198</guid>
    </item>
<item>
    <title>Curtis: Flash Game - 10000 of 900 possible points?!?!?</title>
    <link>http://blog.php-security.org/archives/95-Flash-Game-10000-of-900-possible-points!!.html</link>
<category></category>    <comments>http://blog.php-security.org/archives/95-Flash-Game-10000-of-900-possible-points!!.html#comments</comments>
    <wfw:comment>http://blog.php-security.org/wfwcomment.php?cid=95</wfw:comment>

    <author>blog-admin@nopiracy.de (Curtis)</author>
    <content:encoded>
Checking for the server that sent the data? If it is not sent from the server running the flash file it would not be used. Or does it use the local ip when your running a flash file in a web browser?&lt;br /&gt;
&lt;br /&gt;
I guess it is always possible to get past the protection though, personally I wouldn't trust the highscores on flash games.    </content:encoded>
    <pubDate>Wed, 12 Dec 2007 12:14:55 +0000</pubDate>
    <guid isPermaLink="false">http://blog.php-security.org/archives/95-guid.html#c28197</guid>
    </item>
<item>
    <title>Robin: Flash Game - 10000 of 900 possible points?!?!?</title>
    <link>http://blog.php-security.org/archives/95-Flash-Game-10000-of-900-possible-points!!.html</link>
<category></category>    <comments>http://blog.php-security.org/archives/95-Flash-Game-10000-of-900-possible-points!!.html#comments</comments>
    <wfw:comment>http://blog.php-security.org/wfwcomment.php?cid=95</wfw:comment>

    <author>blog-admin@nopiracy.de (Robin)</author>
    <content:encoded>
What would be an appropriate way to protect the data? Is it even possible with flash?    </content:encoded>
    <pubDate>Wed, 12 Dec 2007 09:08:21 +0000</pubDate>
    <guid isPermaLink="false">http://blog.php-security.org/archives/95-guid.html#c28192</guid>
    </item>
<item>
    <title>Tijuan: Flash Game - 10000 of 900 possible points?!?!?</title>
    <link>http://blog.php-security.org/archives/95-Flash-Game-10000-of-900-possible-points!!.html</link>
<category></category>    <comments>http://blog.php-security.org/archives/95-Flash-Game-10000-of-900-possible-points!!.html#comments</comments>
    <wfw:comment>http://blog.php-security.org/wfwcomment.php?cid=95</wfw:comment>

    <author>blog-admin@nopiracy.de (Tijuan)</author>
    <content:encoded>
That's a common mistake from developpers to think that the flash communication with the server is hidden. &lt;br /&gt;
I've heard many times that the choice of the flash technology had for purpose this supposed security advantage, wich of course is a total mistake, and probably is misunderstanding of HTTP.&lt;br /&gt;
&lt;br /&gt;
People should play with firefox plugin &quot;livehttpHeaders&quot; (http://livehttpheaders.mozdev.org/) , they might understand that flash requests ARE totally transparent.    </content:encoded>
    <pubDate>Wed, 12 Dec 2007 08:37:09 +0000</pubDate>
    <guid isPermaLink="false">http://blog.php-security.org/archives/95-guid.html#c28190</guid>
    </item>
<item>
    <title>Gelangweilt: Flash Game - 10000 of 900 possible points?!?!?</title>
    <link>http://blog.php-security.org/archives/95-Flash-Game-10000-of-900-possible-points!!.html</link>
<category></category>    <comments>http://blog.php-security.org/archives/95-Flash-Game-10000-of-900-possible-points!!.html#comments</comments>
    <wfw:comment>http://blog.php-security.org/wfwcomment.php?cid=95</wfw:comment>

    <author>blog-admin@nopiracy.de (Gelangweilt)</author>
    <content:encoded>
Schnarch...&lt;br /&gt;
&lt;br /&gt;
Eine wasserdichte Absicherung dürfte unmöglich sein. Workaround: Verlosung    </content:encoded>
    <pubDate>Wed, 12 Dec 2007 08:04:40 +0000</pubDate>
    <guid isPermaLink="false">http://blog.php-security.org/archives/95-guid.html#c28188</guid>
    </item>
<item>
    <title>Alex: Flash Game - 10000 of 900 possible points?!?!?</title>
    <link>http://blog.php-security.org/archives/95-Flash-Game-10000-of-900-possible-points!!.html</link>
<category></category>    <comments>http://blog.php-security.org/archives/95-Flash-Game-10000-of-900-possible-points!!.html#comments</comments>
    <wfw:comment>http://blog.php-security.org/wfwcomment.php?cid=95</wfw:comment>

    <author>blog@bitsploit.de (Alex)</author>
    <content:encoded>
Well, the normal way to cheat in Flash games ...  &lt;img src=&quot;http://blog.php-security.org/layout/default/img/emoticons/wink.png&quot; alt=&quot;;-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;    </content:encoded>
    <pubDate>Tue, 11 Dec 2007 20:09:37 +0000</pubDate>
    <guid isPermaLink="false">http://blog.php-security.org/archives/95-guid.html#c28165</guid>
    </item>
<item>
    <title>F0rg3: MOPB Exploits taken down</title>
    <link>http://blog.php-security.org/archives/91-MOPB-Exploits-taken-down.html</link>
<category></category>    <comments>http://blog.php-security.org/archives/91-MOPB-Exploits-taken-down.html#comments</comments>
    <wfw:comment>http://blog.php-security.org/wfwcomment.php?cid=91</wfw:comment>

    <author>1nj3k0rf0rg3@gmail.com (F0rg3)</author>
    <content:encoded>
I just want to say that this is not going to stop people from learning and doing great things. I would strongly advice Mr Stefan Esser to move his work to the Netherlands for safe keeping and Hosting! I want to learn from Your Work, Its Awesome! Big Up. &lt;img src=&quot;http://blog.php-security.org/layout/default/img/emoticons/smile.png&quot; alt=&quot;:-)&quot; style=&quot;display: inline; vertical-align: bottom;&quot; class=&quot;emoticon&quot; /&gt;    </content:encoded>
    <pubDate>Wed, 05 Dec 2007 09:02:56 +0000</pubDate>
    <guid isPermaLink="false">http://blog.php-security.org/archives/91-guid.html#c27906</guid>
    </item>
</channel>
</rss>
