I have a situation where I need to facilitate file uploads of up to 200M to a utility server which is separate from the main web site server. Here's my configuration:
Authenticated Client on Public Internet /\ \ | \_____ 200M | \_____ | \_____ V V Authenticating <-------> Utility Server Web Site (EC2, Windows, Apache, Python, Django) Server (EC2 LAMP)
My current solution is simply for my Web server to pass the EC2 URL of the Utility server, and allow the client to communicate with the Utility server directly. This has two flaws -- it exposes the URL of the unauthenticated utility server, and it requires cross domain tricks on the client to route the POST upload to the utility server.
The question is what's the best way to hide the utility server from the client, without pushing the file upload data through the web server? These are the ideas I thought to try:
- DNS alias the utility server with a subdomain. This probably fixes my cross domain scripting problem, but I'm not sure if it helps with securing the utility server. Maybe I can check the web server's authentication cookie from the utility server?
- Rewrite rule in web site's Apache config. I'm not clear how this affects where the data of the POST would actually be routed.
- Redirect in the web site's Apache config. I'm not sure if I can hide the utility server URL from the user with a redirect.
- Redirect from the web site's controller code. Same issue as #3, but I thought this might be better than #3 since it would pass the request through the PHP authentication layer.
- Something better??
- The unusual config of the utility server is a function of the intersection of available software for the utilities that it needs to perform.
- The utility server is NOT a high value target for serious mischief. It would be sufficient to have the security equivalent of locking the front door, but I'd like to avoid leaving the key under the mat.