[Esapi-dev] [Esapi-user] Fwd: ESAPI development process

Jim Manico jim.manico at owasp.org
Wed Sep 29 14:35:53 EDT 2010


This is good feedback - I'm tracking it at
http://code.google.com/p/owasp-esapi-java/issues/detail?id=154

Thanks Sebastian!
- Jim

-----Original Message-----
From: esapi-dev-bounces at lists.owasp.org
[mailto:esapi-dev-bounces at lists.owasp.org] On Behalf Of Sebastian Kübeck
Sent: Sunday, September 12, 2010 8:32 PM
To: esapi-dev at lists.owasp.org
Subject: Re: [Esapi-dev] [Esapi-user] Fwd: ESAPI development process

Am 13.09.2010 07:22, schrieb Chris Schmidt:
>   If we were to roll our own DI container (which we have talked about 
> before) I feel it would be an unwise design decision to keep our 
> configuration in properties files.
Would rolling out your own DI controller conflict
with others such as Spring, PICO, Guice, JEE6?
Maybe using JSR 299 cold help here but I am sure you already thought of
that...

http://www.jcp.org/en/jsr/detail?id=299
> 
> I really feel that our entire security configuration should move to an 
> xml format. There are a couple reasons for this.
> 
> 1. Through XML we can specify a definitive and enforceable schema for 
> the security configuration, which in turn would aid in allowing a 
> central security configuration to be managed for several ESAPI 
> implementations across various platforms.
> 
> 2. XML configuration allows us to be much more descriptive in our 
> configuration declarations.
> 
> So what I envision is something more like:
> 
> <security-configuration>
> <access-controller name="CustomerComponent" default="true">
> <bean class="com.xyzcorp.security.ESAPISpringAccessController" 
> singleton="true">
> <option name="hoursOfOperation" value="07-19" />
> </bean>
> </access-controller>
> </security-configuration>
> 
> -or if we are using an external DI container (ie Spring)-
> 
> <security-configuration>
> <access-controller name="CustomerComponent" default="true">
> <bean ref-id="CustomerComponent" context-config="spring-acl.xml" />
> </access-controller>
> </security-configuration>
> 
> This gives us a great amount of flexibility in configuration but also 
> allows us to have a enforcable validation policy through use of a XML
Schema
XML-Validation is a good thing but only part of the story.
It would be cool if there was an additional test that checked
the configuration for dependencies.
For example if you have a reference to a class, it would check if the
class exists and this before you launch the application server.

Another thing that would be cool would be to split HTTPUtilities.
A quick look at the documentation shows that this interface
is a case of excessive SRP* violation...

 * The HTTPUtilities interface is a collection of methods that provide
additional security related to HTTP requests,
 * responses, sessions, cookies, headers, and logging.

-Sebastian Kübeck

* The Single Responsibility Principle is one
  of the oldest and most respected design principles...

http://www.objectmentor.com/resources/articles/srp.pdf

> 
> On 9/12/2010 9:16 PM, Kevin W. Wall wrote:
>> Jim Manico wrote:
>>> Good stuff.
>>>
>>> So for
>>>
>>> ESAPI.accessController( "CustomerComponent" ), the CustomerComponent
string
>>> would be defined in the ESAPI config like
>>>
>>> CustomerComponent=com.beef.BeefAccessController?
>> Something like that. If we are still using Java properties files for
>> ESAPI configuration rather than XML, I'm guessing that it rather
>> would be something like:
>>
>> 	AccessController.CustomerComponent=com.beef.BeefAccessController
>>
>> so that the DI would know to apply this to the access controller
component
>> and not some other component such as (say) the authenticator component,
sonce
>> one might equally well have
>>
>> 	ESAPI.authenticator( "CustomerComponent" )
>>
>> However, the exact details will obviously be dependent on the
implementation.
>>
>> Chris and I have had a few off-list exchanges on this topic as well, but
because
>> of Chris' involvement in AppSec USA, we've not yet done any deep dives on
this.
>> Mostly, I think we are waiting for 2.0 to be officially released before
we
>> do that.
>>
>> -kevin
> 
> _______________________________________________
> Esapi-dev mailing list
> Esapi-dev at lists.owasp.org
> https://lists.owasp.org/mailman/listinfo/esapi-dev
> 

_______________________________________________
Esapi-dev mailing list
Esapi-dev at lists.owasp.org
https://lists.owasp.org/mailman/listinfo/esapi-dev



More information about the Esapi-dev mailing list