[Erp5-dev] python private var

bartek bartek at erp5.pl
Tue Feb 19 10:53:46 CET 2008


Hello

I was thining how to store a value in a python object in such a way it 
can be used for processing, but can not be retrieved as is, even using 
pdb prompt. And I came up with the following:

class PrivateStorage(object):
   """
     A class for storing and using variable in such a way that it can
     not be retrieved as is, even by someone able to modify source code
     or use a pdb prompt.
   """

   value = ''

   def __get__(self, container, cls):
     """
       Return result of processing stored value.
     """
     return self.process(container)

   def __set__(self, container, value):
     self.value = value

   def process(self, container):
     """
       Implementation method for processing stored value
       also using containter attributes.
     """
     return self.value == container.v


class Test(object):

   priv = PrivateStorage()
   v = ''


def main():
   t = Test()
   t.priv = 'aaa'
   print t.priv
   print t.__dict__
   t.v = 'abc'
   print t.priv
   t.v = 'aaa'
   print t.priv

Do you think it is secure, or is there a way to hack it?

Bartek

-- 
"feelings affect productivity. (...) unhappy people write worse 
software, and less of it."
Karl Fogel, "Producing Open Source Software"



More information about the Erp5-dev mailing list