I've got a question about the risk of using a wildcard as a security domain in the method security.allowDomain with Flash.
Suppose the only thing a Flash application does is show some frames or images in a row, and doesn't have any exciting functionality. The Flash application implements System.security.allowDomain('*'), but the server does not have a cross-domain policy file.
The first image from the allowDomain documentation shows that a malicious SWF can use all the functions of the Flash application with the wildcard security policy. But because this application doesn't have any exciting functionality, this isn't an issue.
Can the malicious SWF steal cookies or other data from the Flash application when no functions are in place to do so? Adobe defines cross-scripting as:
movieA.swf can examine and modify variables, objects, properties, methods, and so on in movieB.swf
Does this mean that the malicious SWF can modify functions to return cookie or execute JavaScript in the security context of the Flash application?
Another resource, this tutorial page, talks about a difference between cross-domain policy files and the allowDomain function:
The trust given to a SWF loaded into the current security domain goes beyond that given through allowDomain. Whereas with allowDomain you're effectively giving a SWF anything you can do, I can do permissions, when loading a SWF into the same security domain, you give them permissions along the lines of I can do anything.
But what confuses me is that the page describes that this difference is non-existent because of the loadBytes method:
It's the difference between anything you can do, I can do and I can do anything. The difference being, there's actually no difference.
So what is the risk with allowDomain('*'), but with no functionality or cross-domain policy file?