<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML xmlns="http://www.w3.org/TR/REC-html40" xmlns:v = 
"urn:schemas-microsoft-com:vml" xmlns:o = 
"urn:schemas-microsoft-com:office:office" xmlns:w = 
"urn:schemas-microsoft-com:office:word" xmlns:x = 
"urn:schemas-microsoft-com:office:excel" xmlns:p = 
"urn:schemas-microsoft-com:office:powerpoint" xmlns:a = 
"urn:schemas-microsoft-com:office:access" xmlns:dt = 
"uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:s = 
"uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:rs = 
"urn:schemas-microsoft-com:rowset" xmlns:z = "#RowsetSchema" xmlns:b = 
"urn:schemas-microsoft-com:office:publisher" xmlns:ss = 
"urn:schemas-microsoft-com:office:spreadsheet" xmlns:c = 
"urn:schemas-microsoft-com:office:component:spreadsheet" xmlns:odc = 
"urn:schemas-microsoft-com:office:odc" xmlns:oa = 
"urn:schemas-microsoft-com:office:activation" xmlns:html = 
"http://www.w3.org/TR/REC-html40" xmlns:q = 
"http://schemas.xmlsoap.org/soap/envelope/" xmlns:rtc = 
"http://microsoft.com/officenet/conferencing" XMLNS:D = "DAV:" XMLNS:Repl = 
"http://schemas.microsoft.com/repl/" xmlns:mt = 
"http://schemas.microsoft.com/sharepoint/soap/meetings/" xmlns:x2 = 
"http://schemas.microsoft.com/office/excel/2003/xml" xmlns:ppda = 
"http://www.passport.com/NameSpace.xsd" xmlns:ois = 
"http://schemas.microsoft.com/sharepoint/soap/ois/" xmlns:dir = 
"http://schemas.microsoft.com/sharepoint/soap/directory/" xmlns:ds = 
"http://www.w3.org/2000/09/xmldsig#" xmlns:dsp = 
"http://schemas.microsoft.com/sharepoint/dsp" xmlns:udc = 
"http://schemas.microsoft.com/data/udc" xmlns:xsd = 
"http://www.w3.org/2001/XMLSchema" xmlns:sub = 
"http://schemas.microsoft.com/sharepoint/soap/2002/1/alerts/" xmlns:ec = 
"http://www.w3.org/2001/04/xmlenc#" xmlns:sp = 
"http://schemas.microsoft.com/sharepoint/" xmlns:sps = 
"http://schemas.microsoft.com/sharepoint/soap/" xmlns:xsi = 
"http://www.w3.org/2001/XMLSchema-instance" xmlns:udcs = 
"http://schemas.microsoft.com/data/udc/soap" xmlns:udcxf = 
"http://schemas.microsoft.com/data/udc/xmlfile" xmlns:udcp2p = 
"http://schemas.microsoft.com/data/udc/parttopart" xmlns:wf = 
"http://schemas.microsoft.com/sharepoint/soap/workflow/" xmlns:dsss = 
"http://schemas.microsoft.com/office/2006/digsig-setup" xmlns:dssi = 
"http://schemas.microsoft.com/office/2006/digsig" xmlns:mdssi = 
"http://schemas.openxmlformats.org/package/2006/digital-signature" xmlns:mver = 
"http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:m = 
"http://schemas.microsoft.com/office/2004/12/omml" xmlns:mrels = 
"http://schemas.openxmlformats.org/package/2006/relationships" xmlns:spwp = 
"http://microsoft.com/sharepoint/webpartpages" xmlns:ex12t = 
"http://schemas.microsoft.com/exchange/services/2006/types" xmlns:ex12m = 
"http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:pptsl = 
"http://schemas.microsoft.com/sharepoint/soap/SlideLibrary/" xmlns:spsl = 
"http://microsoft.com/webservices/SharePointPortalServer/PublishedLinksService" 
XMLNS:Z = "urn:schemas-microsoft-com:" xmlns:st = ""><HEAD>
<META content="text/html; charset=us-ascii" http-equiv=Content-Type>
<META name=GENERATOR content="MSHTML 8.00.6001.18828"><!--[if !mso]>
<STYLE>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</STYLE>
<![endif]-->
<STYLE>
<!--
 /* Font Definitions */
 @font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Balloon Text Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";}
span.apple-style-span
        {mso-style-name:apple-style-span;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
span.BalloonTextChar
        {mso-style-name:"Balloon Text Char";
        mso-style-priority:99;
        mso-style-link:"Balloon Text";
        font-family:"Tahoma","sans-serif";}
.MsoChpDefault
        {mso-style-type:export-only;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.Section1
        {page:Section1;}
-->
</STYLE>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="2050" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]--></HEAD>
<BODY lang=EN-US link=blue vLink=purple>
<DIV dir=ltr align=left><SPAN class=704270518-12012010><FONT 
face="Book Antiqua">This response looks to me like a great start to an ESAPI 
cheat sheet.</FONT></SPAN></DIV>
<DIV align=left><FONT face="Book Antiqua"></FONT>&nbsp;</DIV>
<DIV align=left><FONT face="Book Antiqua">Mike&nbsp;<SPAN 
class=760305716-15062009>B.</SPAN></FONT></DIV>
<DIV>&nbsp;</DIV><BR>
<DIV dir=ltr lang=en-us class=OutlookMessageHeader align=left>
<HR tabIndex=-1>
<FONT size=2 face=Tahoma><B>From:</B> esapi-user-bounces@lists.owasp.org 
[mailto:esapi-user-bounces@lists.owasp.org] <B>On Behalf Of </B>Jeff 
Williams<BR><B>Sent:</B> Tuesday, January 12, 2010 5:41 AM<BR><B>To:</B> Dinis 
Cruz; SC-L@securecoding.org; esapi-user@lists.owasp.org<BR><B>Subject:</B> Re: 
[Esapi-user] Recommending ESAPI?<BR></FONT><BR></DIV>
<DIV></DIV>
<DIV class=Section1>
<P class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 10pt">Hi 
Dinis,<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 10pt"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 10pt">Thanks for the 
message. The ESAPI team is focused on getting version 2.0 final out the door, 
but your questions are very important for the long term success of the 
project.<o:p></o:p></SPAN></P>
<DIV>
<P class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt"><o:p>&nbsp;</o:p></SPAN></P>
<P style="MARGIN-LEFT: 0.5in" class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; COLOR: #002060; FONT-SIZE: 10pt">1) 
For an existing web application currently using a MVC framework (like Spring or 
Struts) are we today (9th Jan 2009) officially recommending&nbsp;that this web 
application development team adds OWASP's ESAPI.jar to the list of 'external' 
APIs (i.e. libs) they use, support and maintain?<o:p></o:p></SPAN></P></DIV>
<DIV>
<P class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 10pt"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt">Yes.&nbsp; ESAPI is 
not a framework &#8211; it&#8217;s a set of foundational security controls so that 
developers don&#8217;t have to keep remaking the same mistakes over and over.&nbsp; 
There are several security controls in ESAPI which are not provided by those 
frameworks. &nbsp;Of course, it&#8217;s always best if developers can work within 
their framework. If your framework already provides a control already, 
great.&nbsp; If your framework wants to use ESAPI and hide it from the 
developer, great.&nbsp; In some cases, the framework might want to expose ESAPI, 
and that&#8217;s fine too.&nbsp; Sometimes, you may want to integrate ESAPI into your 
framework&#8217;s existing security control. Generally this isn&#8217;t too hard. If you 
want to use Struts Validators, for example, you can write a custom Struts 
validator that delegates to an ESAPI validator. This allows most developers to 
use the Struts pattern as normal, but you get the advantage of canonicalization 
and intrusion detection under the hood.<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt"><o:p>&nbsp;</o:p></SPAN></P>
<P style="MARGIN-LEFT: 0.5in" class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; COLOR: #002060; FONT-SIZE: 10pt">2) 
When adopting the OWASP ESAPI's J2EE implementation, is ESAPI.jar ALL they need 
to add? or are there other dependencies (i.e. jars) that also need&nbsp;to be 
added, supported and maintained? (for example on the '<B>Dependencies</B>' 
section of the&nbsp;<A 
href="http://www.owasp.org/index.php/Category:OWASP_Enterprise_Security_API#tab=Java_EE" 
target=_blank><SPAN style="COLOR: #002060">ESAPI Java EE</SPAN></A>&nbsp;page 
(i.e. Tab) it seems to imply that there are other *.jars 
needed)<o:p></o:p></SPAN></P></DIV>
<DIV>
<P class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 10pt"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt">The ESAPI 
*<B>interfaces</B>* have no dependencies.&nbsp; However, the reference 
implementation, like most Java libraries these days, has several dependencies 
managed by Maven.<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt"><o:p>&nbsp;</o:p></SPAN></P>
<P style="MARGIN-LEFT: 0.5in" class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; COLOR: #002060; FONT-SIZE: 10pt">3) 
Where can I find detailed information about each of the 9 Security Controls that 
ESAPI.jar currently supports: 1) Authentication, 2)&nbsp;Access control, 3) 
Input validation, 4) Output encoding/escaping, 5) Cryptography, 6) Error 
handling and logging, 7) Communication security, 8) HTTP security and 9) 
Security configuration? (I took this list of controls from the&nbsp;<A 
href="http://www.owasp.org/images/8/81/Esapi-datasheet.pdf" target=_blank><SPAN 
style="COLOR: #002060">Introduction to ESAPI 
pdf)</SPAN></A><o:p></o:p></SPAN></P></DIV>
<DIV>
<P class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 10pt"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt">There are a number 
of documents at various stages of development linked on the OWASP Wiki.&nbsp; 
The <A 
href="http://owasp-esapi-java.googlecode.com/svn/trunk_doc/2.0-rc4/index.html">JavaDoc</A> 
is extensive and pretty much up to date. You can also check out the draft &#8220;<A 
href="https://www.owasp.org/images/7/79/ESAPI_Book.pdf">ESAPI Book</A>&#8221; which 
needs to be updated but you may find helpful.<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt"><o:p>&nbsp;</o:p></SPAN></P>
<P style="MARGIN-LEFT: 0.5in" class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; COLOR: #002060; FONT-SIZE: 10pt">4) 
When adopting EASPI.jar, are we recommending that the developers should adopt or 
retrofit their existing code on the areas affected by those 9 Security Controls? 
(i.e. code related to: Authentication,&nbsp;Access control,&nbsp;Input 
validation,&nbsp;Output encoding/escaping, Cryptography, Error handling and 
logging, Communication security, HTTP security and Security 
configuration)&nbsp;<o:p></o:p></SPAN></P></DIV>
<DIV>
<P class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 10pt"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 10pt">One of the specific 
use cases for ESAPI is to enable remediation of known security problems. You can 
use ESAPI to patch a single vulnerability, as part of a standard coding pattern, 
or as part of your framework hidden from developers.&nbsp; You can use the ESAPI 
controls in many different ways.&nbsp; I&#8217;m hopeful that creating security 
building blocks that we might enable the creation of new and better security 
models.<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 10pt"><o:p>&nbsp;</o:p></SPAN></P>
<P style="MARGIN-LEFT: 0.5in" class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; COLOR: #002060; FONT-SIZE: 10pt">5) 
Should we recommend the adoption of ALL 9 Security Controls? or are there some 
controls that are not ready today (9 Jan 2009) for production environments and 
should not be&nbsp;recommended? (for example is the 'Authentication' control as 
mature as the 'Error handling and logging' control?)<o:p></o:p></SPAN></P></DIV>
<DIV>
<P class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 10pt"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt">In working with a 
number of companies on the implementation of *<B>their</B>* Enterprise Security 
API, it&#8217;s clear that the best approach is to phase in controls over time.&nbsp; 
Most organizations are starting with validation, canonicalization, and encoding. 
The error handling, logging, encryption, randomizer, intrusion detector, 
security configuration, and http utilities don&#8217;t require much customization and 
are easily integrated.&nbsp; The authenticator requires some customization to 
tie it into your identity store. The access controller requires even more 
customization, as it varies so widely from organization to 
organization.<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt"><o:p>&nbsp;</o:p></SPAN></P>
<P style="MARGIN-LEFT: 0.5in" class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; COLOR: #002060; FONT-SIZE: 10pt">6) 
Are there commercial (i.e.&nbsp;<SPAN class=apple-style-span>paid)&nbsp;support 
services available for the companies who want to add ESAPI.jar to they 
application?</SPAN><o:p></o:p></SPAN></P></DIV>
<DIV>
<P class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 10pt"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt"><A 
href="http://www.aspectsecurity.com/">Aspect Security</A> provides paid support 
for ESAPI users, including training, integration, and customization. All 
improvements are contributed back to the ESAPI project as open source 
enhancements. Anyone interested can contact me directly.<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt"><o:p>&nbsp;</o:p></SPAN></P>
<P style="MARGIN-LEFT: 0.5in" class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; COLOR: #002060; FONT-SIZE: 10pt">7) 
What is the version of ESAPI.jar that we should recommend? the version 1.4 
(which looks like a stable release) or the version 2.0 rc4 (which looks like it 
is a Release Candidate)<o:p></o:p></SPAN></P></DIV>
<DIV>
<P class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 10pt"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt">I recommend moving 
to the ESAPI 2.0 branch. It&#8217;s our fourth release candidate and contains 
significant improvements over the 1.4 branch. Note that if you are using Java 
1.4, then you&#8217;ll have to stay with the ESAPI 1.4 branch since ESAPI 2.0 uses 
newer language features.&nbsp; We&#8217;ve started the process of back-porting the 2.0 
improvements to 1.4 since so many ESAPI users are still on Java 
1.4.<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt"><o:p>&nbsp;</o:p></SPAN></P>
<P style="MARGIN-LEFT: 0.5in" class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; COLOR: #002060; FONT-SIZE: 10pt">8) 
Where can I find the documentation of where and how ESAPI should be used? More 
importantly, where can I find the information of how it CAN NOT or SHOULD NOT be 
used (i.e. the cases where even when the EASPI.jar are used, the application is 
still vulnerable)<o:p></o:p></SPAN></P></DIV>
<DIV>
<P class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 10pt"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt">I think the 
decision about which security controls cannot or should not be used is requires 
quite a bit more context than is possible generically. Can you find 
documentation on the web about where deadbolt locks cannot or should not be 
used?&nbsp; &nbsp;We&#8217;ll try to give people reasonable guidance about when and 
how to use the controls in ESAPI.<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt"><o:p>&nbsp;</o:p></SPAN></P>
<P style="MARGIN-LEFT: 0.5in" class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; COLOR: #002060; FONT-SIZE: 10pt">9) 
if there list of companies that have currently added ESAPI.jar to their 
applications and have deployed it? (i.e. real world usage of 
EASPI)<o:p></o:p></SPAN></P></DIV>
<DIV>
<P class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 10pt"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt"><A 
href="http://www.owasp.org/index.php/Category:OWASP_Enterprise_Security_API#tab=Contributors.2FUsers">http://www.owasp.org/index.php/Category:OWASP_Enterprise_Security_API#tab=Contributors.2FUsers</A>. 
There are many others that I&#8217;m not at liberty to disclose.<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt"><o:p>&nbsp;</o:p></SPAN></P>
<P style="MARGIN-LEFT: 0.5in" class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; COLOR: #002060; FONT-SIZE: 10pt">10) 
Has the recommended ESAPI.jar (1.4 or 2.0 rc4) been through a security review? 
and if so where can I read its report?<o:p></o:p></SPAN></P></DIV>
<DIV>
<P class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 10pt"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt">Yes. A major 
systems integrator did a line-by-line code review of both version 1.4 and 2.0. 
They found a few issues and made a few requests for enhancement, which we have 
done. They are now approved to use ESAPI on all their internal 
applications.&nbsp; I will ask them again if it is okay to share their 
report.<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt"><o:p>&nbsp;</o:p></SPAN></P>
<P style="MARGIN-LEFT: 0.5in" class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; COLOR: #002060; FONT-SIZE: 10pt">11)&nbsp;when 
Jim says&nbsp;<I>"...&nbsp;you can build a new secure app without an ESAPI. But 
libs like OWASP ESAPI will get you there faster and 
cheaper....",&nbsp;<B>&nbsp;</B></I>do we have peer-reviewed data that suports 
this claim?&nbsp;<o:p></o:p></SPAN></P></DIV>
<DIV>
<P class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 10pt"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt">Nope.&nbsp; Jim is 
speaking from personal experience building enterprise applications both with and 
without ESAPI.&nbsp; I propose a controlled double-blind experiment where we 
take say 30 student programmers and have them all build the same web application 
(with features that should get some security).&nbsp; We give half of them ESAPI 
and let them go. Then we evaluate the results.&nbsp; Anyone willing to help get 
this done?<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt"><o:p>&nbsp;</o:p></SPAN></P>
<P style="MARGIN-LEFT: 0.5in" class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; COLOR: #002060; FONT-SIZE: 10pt">12) 
Is there a roadmap or how-to for companies that wish to adopt ESAPI.jar on an a) 
new application or b) existing real-world 
application'?<o:p></o:p></SPAN></P></DIV>
<DIV>
<P class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 10pt"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt">I think the ESAPI 
Book or perhaps the ESAPI SwingSet (demo app) are good places to 
start.<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt"><o:p>&nbsp;</o:p></SPAN></P>
<P style="MARGIN-LEFT: 0.5in" class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; COLOR: #002060; FONT-SIZE: 10pt">13) 
What about the current&nbsp;implementations&nbsp;of ESAPI for the other 
languages. Are we also&nbsp;recommending&nbsp;their 
use?<o:p></o:p></SPAN></P></DIV>
<DIV>
<P class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 10pt"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt">Here&#8217;s the current 
project scorecard (from a recent conference presentation).&nbsp; This doesn&#8217;t 
include the new JavaScript version that has just started.&nbsp; I would be more 
cautious with these until they reach a full release.<o:p></o:p></SPAN></P>
<P style="TEXT-INDENT: 0.5in" class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt"><IMG 
id=Picture_x0020_1 border=0 src="cid:704270518@12012010-2289" width=338 
height=236></SPAN><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt"><o:p>&nbsp;</o:p></SPAN></P>
<P style="MARGIN-LEFT: 0.5in" class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; COLOR: #002060; FONT-SIZE: 10pt">14) 
If a development team decides to use (for example) Spring and ESAPI together in 
their (new or existing) application, what are the&nbsp;recommended 'parts' from 
each of those APIs (Spring and EASPI) that the developers should be using? (for 
example: a) use Encoding from ESAPI, b) use Authentication from Spring, c) 
use&nbsp;Authorization&nbsp;from ESAPI, d) use Error Handling from Spring, e) 
use Logging from ESAPI, etc...)<o:p></o:p></SPAN></P></DIV>
<DIV>
<P class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 10pt"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt">We don&#8217;t have a 
guideline written for how to integrate ESAPI and the frameworks. Both libraries 
have been used successfully in combination with ESAPI since both support 
extension and ESAPI is not a framework. &nbsp;However, you&#8217;ll probably have to 
make some architectural choices and do some integration with your environment. 
Hopefully, we&#8217;ll get to write some adapters to help with this process soon. 
&nbsp;If you&#8217;re using ESAPI and these frameworks, please let us know so that we 
can learn from your experiences and share with others.<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt">I hope that 
helps,<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt"><o:p>&nbsp;</o:p></SPAN></P></DIV>
<DIV>
<P class=MsoNormal><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; COLOR: #1f497d; FONT-SIZE: 10pt">--Jeff</SPAN><SPAN 
style="FONT-FAMILY: 'Calibri','sans-serif'; COLOR: #002060; FONT-SIZE: 10pt"><o:p></o:p></SPAN></P></DIV></DIV></BODY></HTML>