Accessibility
 
Home / Developer Center / Flash Communication Server Developer Center /

Flash Communication Server Article

Icon or Spacer Icon or Spacer Icon or Spacer
David Simmons
 
David Simmons
Principal Engineer
Macromedia
 

Moving into production: A security checklist for Macromedia Flash Communication Server MX


After development, the Macromedia Flash communication application moves into production. At that time, you'll want to properly configure the Macromedia Flash Communication Server MX. This should be done with security issues high on the priority list. Insecure server configurations can result in several negative situations, including unauthorized users who compromise information, steal server usage, cheat in games, or disrupt—or even shut down—the server. Below you'll find a checklist of security configuration settings (as well as a few "best practice" tips) that you should consider as you set up your Flash Communication Server MX for real-time use by intranet or Internet users.

 
General administrative settings
 
1

Set a secure user ID and password. Don't use "admin", "administrator" (and so forth) as the user name. Pick a password with at least 8 characters, including digits and punctuation.

2 Use the <Allow> and <Deny> tags in the Server.xml file to restrict which client computers can connect to the Admin application.
3 Set the Admin tool to bind to a port that is not available to the general public. Block access to this port with your firewall.
The Vhost.xml file settings
 
1 Use the <Allow> and <Deny> tags in Vhost.xml to restrict what client computers can connect to the virtual host. (These same settings can also be accomplished in the Server.xml file—see above.)
2 Set the <MaxStreams> value to zero in Vhost.xml if your applications do not create or use streams.
3 Turn the <RecordAccessLog> value on or off as desired in Vhost.xml.
Other server administrator issues
 
1 Check the <ResourceLimits> values in Server.xml if you want to alter memory allocations, garbage collection frequency, or other similar settings.
2 Be sure to alter the <ServerDomain> tag in Server.xml if you are building server applications that connect between multiple computers.
3 Double check the <HostPortList> in Adaptor.xml (for all adaptors) to make certain you are not listening on any extra ports. Confirm that your firewall has the proper ports open or blocked.
4 If your applications are not open to the general public, use the <Allow> and <Deny> tags in Adaptor.xml to restrict domains and IP addresses that can connect to your applications.
Writing applications
 
1

Final, released Flash applications should not allow users to specify application names, server addresses (and so forth) in text fields. These should be hard-coded in your source code and hidden from the user.

2 Make certain your server-side scripts check the client referrer property when a user attempts to log on. This should be the SWF file from an expected URL, such as your web server. This will help prevent someone from writing their own client that logs on to your server using the same application name.
3 You can add some basic handshaking code in your Flash movie to try to prevent rogue clients from connecting to your server. The client and server code might exchange some token or perform some basic calculations to try and confirm that the you have the proper client connected to the proper server. While Flash movie byte code is not encrypted or fully secure, this makes it a bit harder for hackers to write rogue clients.
4 Check all your server scripts (ASC files) and be certain to remove any debugging code, extra "trace" output (or other unnecessary code) that remains from development.
5 Be certain to remove any extra script files or older versions that are no longer used by your application.
Application configuration
 
1

Set the <AppsDir> value in Vhost.xml to point to where your applications can be found. This directory should not be accessible to normal outside clients using web browsing or file access (or any other type of access).

2 Remove any extra applications from your application directory. Only install the applications you are making available to the end users.
3 Be certain to remove all the sample applications that install with the Macromedia Flash Communication Server MX.
4 Set the <Streams> value in Vhost.xml to point to the directory where streams are stored. This directory should not be accessible to normal outside client's web browsing, file access, etc. You can also set this in Application.xml
5 Check the <ResourceLimits> values in Vhost.xml to allow the proper number of shared objects, etc. Some of these values are limited by your server license.
6 Adjust the <Allow> value in Vhost.xml if you are restricting the connections to that virtual host.
7 Under the <JSEngine> section in Application.xml, change the <MaxTimeOut> value to prevent a runaway script from executing endlessly.
8 Check all the values in Application.xml. This file provides the default settings for all applications on the virtual host.
Web files
 
1

Your web files (HTML, SWF, and so forth) should be installed in your web server's publicly available folders. If this is the same computer which has the Flash Communication Server, keep the web files in a completely separate directory from the application files.

2 Remove any extra files from the web-accessible directories on your server. Make certain you haven't left the Flash source files for your movies (the FLA files) where they could be read by the public.
 

Conclusion
This checklist will help you review many important security-related configuration settings at production time. During deployment, moreover, adjusting these settings properly can help to ensure that your server remains secure and working in top form.


About the author
Dave Simmons joined Macromedia in 1993 and is currently an engineer on the Flash Communication Server MX team. Prior to joining that group, he developed the Shockwave Multiuser Server for Director. He spent several years as Project Manager for SoundEdit 16 and also worked on Japanese, Chinese and Korean language versions of Macromedia products. In a prior life, he worked in Tokyo and Singapore for 8 years before settling in Northern California.