I've ben struggling with this as well.  The issue is not with Flex; you'll have 
this with any client server application.
 
You even have a bigger issue than what you are outlining...
 
The components you have to expose on the server can be directly accessed by a 
skilled programmer without using your application.  And why deal with your code 
if someone can attach directly to the server and "update" their score directly? 
 I've started using validation anytime a user touches my server.  So all of my 
components have a validation mechanism.  Is it fool-proof?  Probably not.
 
So not only will you have to validate your interface; you'll have to validate 
the data being put into the server through your components.
 
Now for the application side.  The best way is to use CRCs on the application 
to know if something has changed in the code before it attaches to your server. 
 I'm not sure how this would be implemented in action script or if its 
possible.  If not, then you'll need some way to validate the code you provide 
to the end user.
 
Biggest thing... Never rely on the "stupidity" of your end users.  There's a 
small percentage of people that have the skills and that small percentage will 
be the ones that cause the biggest problems.  This is even more the case if 
there are rewards that people can earn.

________________________________

From: [email protected] on behalf of kenny14390
Sent: Tue 5/27/2008 10:26 AM
To: [email protected]
Subject: {Disarmed} [flexcoders] The "High Score" Problem



I've been doing a lot of research on this topic recently and I'm sort
of stuck. For those who don't know about this type of problem, it is
the security concern that communication between Flex (a Flash
front-end application) and a server through PHP is thinly-veiled and
prone to attack. Specifically, when a Flash game tries to tell the
server that a user got a high score, an attacker can find a way to
fake this high score and achieve the best score (sometimes resulting
in a cash prize).

The measures that I've been studying seem to only get in the way for
attackers, but not thwart them entirely. For example, one could simply
encrypt the data that is passed to a PHP file, but the Flash
application can be decompiled and the encryption technique is
discovered. Alternatively, one could obfuscate the application, making
the decompilation produce jargon, but this too can be translated into
human-readable text. A server can check data for feasibility by using
a timer to detect super-fast computer-generated PHP POSTs, but this
too can be overridden by slowing down the auto-POSTs. This is the case
for other "human" feasibility checks. If the server checks the POST
headers, they too can be faked by proxies. 

Is the simple conclusion that Flash applications are inherently
transparent? There is no such thing as Flash application security?
Does SSL patch any of these risks?

How can a "high score" problem be overcome?



 

-- 
This message has been scanned for viruses and 
dangerous content by MailScanner <http://www.mailscanner.info/> , and is 
believed to be clean. 

<<winmail.dat>>

Reply via email to