[ previous ] [ next ] [ threads ]
 From:  Kris Maglione <bsdaemon at comcast dot net>
 To:  Steve Meyer <smeyer at socal dot rr dot com>
 Cc:  m0n0wall dash dev at lists dot m0n0 dot ch
 Subject:  Re: [m0n0wall-dev] Captive portal help needed
 Date:  Sun, 18 Sep 2005 17:06:19 -0400
Steve Meyer wrote:

> I need a captive portal implemented in a specific way and I am  
> interested in securing some help in getting this done. Essentially I  
> need to be able to have a persistent banner-type area for messaging  
> enabled. The captive portal would not be "catch and release" but  
> rather catch and remain or retain.

What you are asking is mad mojo, and this is not really the place to ask 
it. Also, it's not really a job for captive portal so much as an 
auxiliary transparent proxy.

I don't think you grasp just how complex what you are asking is, though. 
I assume that you want something like a top frame with your content in 
it on every page that a user visits. Would you have your URL at the top, 
or that of the page that a person is visiting? Either way, it's trouble. 
If you choose your URL, you have to prefix every page a person visits 
with a JS to check window.location, and to redirect if it's not your 
URL. This has to obvious holes. 1. A user can simply disable JavaScript 
and get rid of it. 2. Other sites do the same thing, to make sure that 
you're in their frameset. If a user hits one of these sites, you wind up 
with an infinate loop.

If you want their URL, you've got more trouble. In that case, you have 
to figure out all kinds of logistical issues with how to deal with 
posting your own frameset, not killing other framesets, and making sure 
not to stack your own framesets. It should be all but impossible without 
JS, and is like to break URLs with target attributes set and all kinds 
of JavaScripts.

Before you get into this, consider the problems. After that, you'll have 
to find a piece of software that either does what you need or can be 
adapted to do so. At that point, you may have to come back here to 
figure out how to integrate it into m0n0wall.