[omniORB] IIOP over HTTP

baileyk@schneider.com baileyk@schneider.com
Thu Feb 20 14:23:01 2003


At least I covered my self by saying "limited use cases".  I had read about
the security issues with pickle, but admit I didn't think that through when
writing my response.

I have also written a bit of code to marshal/unmarshal IDL structs to/from
XML.  It probably doesn't handle unions and enums but most of my IDL simply
uses structs and sequences.  Using such custom marshalling would be secure,
I think, since it's written to only instantiate classes in a given set of
IDL stub modules.  However, the cPickle module is much faster than my XML
unmarshalling code so I use that more often.  For HTTP requests, I suppose
security trumps speed.

My main point was, using Python and omniORBpy it is much easier to build a
generic gateway than it would be using C++ and DII/DSI.  I'm not sure how
good the speed would be, but it could be done in a few hours of coding,
even with a custom marshalling approach.

Kendall



                                                                                                                                  
                      Nathaniel Smith                                                                                             
                      <njs@pobox.com>                    To:       omniorb-list@omniorb-support.com                               
                      Sent by:                           cc:                                                                      
                      omniorb-list-admin@omniorb-        Fax to:                                                                  
                      support.com                        Subject:  Re: [omniORB] IIOP over HTTP                                   
                                                                                                                                  
                                                                                                                                  
                      02/19/2003 04:41 PM                                                                                         
                                                                                                                                  
                                                                                                                                  




On Wed, Feb 19, 2003 at 03:31:04PM -0600, baileyk@schneider.com wrote:
[...]
> One thing I've done is create a generic Python proxy service that can
> record invocation arguments and return values to file for later playback.
> The Python pickle file is just text, so it could easily be sent in an
HTTP
> request, along with method name and object identity information.
[...]

Neat idea.  You should be aware, though, that unpickling is a
dangerous operation -- a first-order rule of thumb is, don't unpickle
any data that you wouldn't be willing to evaluate as code in the same
context.  Unpickling arbitrary data someone sent to your HTTP server
is not secure without some work...

For more information:
   http://www.python.org/doc/current/lib/pickle-sec.html

-- Nathaniel

--
"...these, like all words, have single, decontextualized meanings: everyone
knows what each of these words means, everyone knows what constitutes an
instance of each of their referents.  Language is fixed.  Meaning is
certain.  Santa Claus comes down the chimney at midnight on December 24."
  -- The Language War, Robin Lakoff

This email may be read aloud.