[mapserver-dev] MS RFC 90: Enable/Disable Layers in OGC Web Services by IP Lists - Call for Comments

Daniel Morissette dmorissette at mapgears.com
Tue Feb 19 08:20:27 PST 2013


On 13-02-15 12:43 PM, Tamas Szekeres wrote:
> Hi Devs,
>
> I've prepared an RFC including most of the suggestions received with
> regards to this addition.
> http://mapserver.org/development/rfc/ms-rfc-90.html
>
> Let me know if you have further things to be taken into account before
> calling a vote on it.
>
>

Hi Tamas,

A few questions/comments:

- It is not clear if setting ows_allowed_ip_list implicitly means that 
all addresses are blocked, and then only the specified addresses are 
enabled, and vice-versa that setting ows_denied_ip_list means that any 
address has access by default, except for those listed in the deny list. 
I believe this is the implied behavior, but if yes then I think that 
should be made clear, and perhaps some examples provided with 
explanation of the corresponding behavior.

- Is it possible to set both ows_allowed_ip_list and ows_denied_ip_list 
and if yes in this case which one takes precedence? Or do they interact 
with each other (i.e. Could I block a range of IPs with the deny list 
and then open up specific workstation addresses with the allow list? or 
the reverse: open up a range of IP addresses with the allow list and 
block a subset with the deny list?)


- With respect to the ms_disable_modes, I don't like a logic where we 
need to explicitly list what we block. I prefer the other way around 
where we list what we enable to reduce the risk of leaving open holes in 
your server configuration.

Actually, perhaps one way to deal with this would be to switch to a 
"ms_enable_modes" and use the same kind of logic as ows_enable_requests, 
with "!*" meaning disable all, and "!MAP" meaning disable MAP mode, and 
then allowing the use of ms_enable_modes at the layer-level as well.

e.g.

MAP
   WEB
     METADATA
       # Block all CGI modes except MAP and LEGEND
       "ms_enable_modes" "!* MAP LEGEND"
       ...
     END
     ...
   END
   ...
END

using inheritance one could then block all modes at the top-level and 
re-enable a given mode only for specific layers:

MAP
   WEB
     METADATA
       # Block all CGI modes by default for this mapfile
       "ms_enable_modes" "!*"
       ...
     END
     ...
   END

   LAYER
     METADATA
       # Enable MAP and LEGEND requests for this layer
       "ms_enable_modes" "MAP LEGEND"
     END
     ...
   END
END

or one could be more open by default and selectively disable some 
requests at the layer level:

MAP
   WEB
     METADATA
       # Open up ALL CGI modes by default for this mapfile
       "ms_enable_modes" "*"
       ...
     END
     ...
   END

   LAYER
     METADATA
       # But allow only MAP requests on this layer
       "ms_enable_modes" "!* MAP"
     END
     ...
   END
END


-- 
Daniel Morissette
http://www.mapgears.com/
Provider of Professional MapServer Support since 2000



More information about the mapserver-dev mailing list