[Seaside] Security (was: Seaside Development. What goes on behind the scenes?)

Derek Brans seaside@lists.squeakfoundation.org
Mon, 02 Dec 2002 14:30:28 -0800


So, I've read a bit about capability security.  To sum it up: don't let 
an untrusted user express something (through an object reference or a 
method call) that it shouldn't be allowed to do.

So here's one simplistic idea to get the ball rolling:

Do capabilities at the "UI only".  Only render buttons that users are 
allowed to click on.  Only put text areas where users can modify data; 
put html text in others.  In the "UI only" model, the models behind the 
views are bare and exposed.

You might implement this using view factories: a session is a assigned a 
view factory based on the permissions of the user.  Whenever a view or 
component is needed to display something, it is requested from the 
session's view factory.

As you are developing views for domain objects, those views can 
implement methods like "view>>asReadOnly" to indicate that it should not 
modify its model.

As I'm thinking about it, it seems like capability-based security should 
really work from the model up, but that might require a lot of extra  
facade classes because everything in Smalltalk is so exposed.

Thoughts?
Derek





On Sunday, December 1, 2002, at 09:56 AM, Cees de Groot wrote:

> Derek Brans <brans@nerdonawire.com> said:
>> I am interested in exploring Cees suggestion of using capabilities.  I
>> need to read more about the concept, first.
>>
> The best place to dive in is probably http://www.erights.org.
> --
> Cees de Groot               http://www.cdegroot.com     
> <cg@cdegroot.com>
> GnuPG 1024D/E0989E8B 0016 F679 F38D 5946 4ECD  1986 F303 937F E098 9E8B
> Cogito ergo evigilo
> _______________________________________________
> Seaside mailing list
> Seaside@lists.squeakfoundation.org
> http://lists.squeakfoundation.org/listinfo/seaside
>
>
Nerd on a Wire: Web and Information Solutions
Website Design - Database Systems - Site Hosting
604.874.6463
mailto:info@nerdonawire.com
For more information, visit http://nerdonawire.com