<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 12 (filtered medium)"><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;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 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";
        color:#339999;}
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;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";
        color:#339999;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:Consolas;
        color:#339999;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</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 bgcolor=white lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>What an outstanding analysis of the ESAPI Swingset! Thank for you this Chris!<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='color:#990000'><a href="https://docs.google.com/document/d/1cmkpheaBZ3gn0DYX0fVw0NIyTBrA7-BzG1s81rxOM7M/edit?hl=de&amp;authkey=CPPQzqYN">https://docs.google.com/document/d/1cmkpheaBZ3gn0DYX0fVw0NIyTBrA7-BzG1s81rxOM7M/edit?hl=de&amp;authkey=CPPQzqYN</a></span><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>When this document is done, would you please consider wikifying this and placing it on the ESAPI wiki?<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>If you do not wish to do this, do you mind if we do?<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Thanks all,<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Jim<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><div><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:windowtext'>From:</span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:windowtext'> Christopher Dickinson [mailto:christopher.dickinson@edu.hefr.ch] <br><b>Sent:</b> Monday, March 07, 2011 11:53 PM<br><b>To:</b> Jim Manico<br><b>Cc:</b> Rudolf Scheurer<br><b>Subject:</b> Re: ESAPI book<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal><span style='color:#990000'>Dear Jim,<br><br>Thank you for your response. It would be fun to complete the tutorial. However, it is possible I'll be working on a demo application in PHP in stead. Not decided yet.<br><br>Here's a link to my exploration of swingset, also very much &quot;work in progress&quot;, but if it can be of some use, I'll gladly share it with you.<br><br><a href="https://docs.google.com/document/d/1cmkpheaBZ3gn0DYX0fVw0NIyTBrA7-BzG1s81rxOM7M/edit?hl=de&amp;authkey=CPPQzqYN">https://docs.google.com/document/d/1cmkpheaBZ3gn0DYX0fVw0NIyTBrA7-BzG1s81rxOM7M/edit?hl=de&amp;authkey=CPPQzqYN</a><br><br>Best regards,<br><br>Chris</span><br><br>on 03/08/2011 07:14 AM Jim Manico wrote : <o:p></o:p></p><pre>Chris,<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Answers inline:<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><pre>Dear Jim,<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>I am working my way through the bundled Tomcat+Swingset demo, writing<o:p></o:p></pre><pre>down my discoveries along the way.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>So far I have found various bugs that look like Swingset was not<o:p></o:p></pre><pre>finished when published. Take for example the page<o:p></o:p></pre><pre><a href="http://localhost:8080/main?function=ChangePassword&amp;insecure">http://localhost:8080/main?function=ChangePassword&amp;insecure</a> which, when<o:p></o:p></pre><pre>submitted, attempts to load the non-existant page<o:p></o:p></pre><pre><a href="http://localhost:8080/main?function=ChangePasswordInsecure">http://localhost:8080/main?function=ChangePasswordInsecure</a>. I see that<o:p></o:p></pre><pre>this has been changed in the most recent version on Google Code.<o:p></o:p></pre><pre>Similarly, the XSS page wrongly displays the User Input Validation<o:p></o:p></pre><pre>Tutorial, whereas the most recent version on Google Code has fixed that<o:p></o:p></pre><pre>and seems to have a proper XSS tutorial.<o:p></o:p></pre></blockquote><pre><o:p>&nbsp;</o:p></pre><pre>This is not you - the swingset is not complete. Its a work in progress.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</o:p></pre><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><pre>Other things remain puzzling. E.g. the Login tutorial still shows a<o:p></o:p></pre><pre>mostly empty page for the insecure demo<o:p></o:p></pre><pre>(<a href="https://code.google.com/p/owasp-esapi-java-swingset/source/browse/trunk/webapp/src/main/webapp/WEB-INF/jsp/LoginInsecure.jsp">https://code.google.com/p/owasp-esapi-java-swingset/source/browse/trunk/webapp/src/main/webapp/WEB-INF/jsp/LoginInsecure.jsp</a>).<o:p></o:p></pre></blockquote><pre><o:p>&nbsp;</o:p></pre><pre>This is again, not you...<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><pre><o:p>&nbsp;</o:p></pre><pre>Before I continue doing work that has surely been done before, would you<o:p></o:p></pre><pre>have any idea if there is an available list of unfinished parts of<o:p></o:p></pre><pre>either the published (bundled ZIP) version of Swingset or else of the<o:p></o:p></pre><pre>most recent source code of Swingset?<o:p></o:p></pre></blockquote><pre><o:p>&nbsp;</o:p></pre><pre>There is not that I know of. We really need someone to &quot;own&quot; this piece<o:p></o:p></pre><pre>of code and keep it up to date. We are desperate for more help on this!<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</o:p></pre><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><pre>For the moment I'm doing this work merely as part of a global evaluation<o:p></o:p></pre><pre>of ESAPI Swingset. If I ever did attempt to rebundle the latest version,<o:p></o:p></pre><pre>I'll need to know what issues remain and which ones I might want to fix<o:p></o:p></pre><pre>before creating a new bundle.<o:p></o:p></pre></blockquote><pre><o:p>&nbsp;</o:p></pre><pre>Do you have time to list those issues out? We really lost track of this<o:p></o:p></pre><pre>piece of code. It needs some love. :)<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Thank you, very much, for this help.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>- Jim<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</o:p></pre><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><pre><o:p>&nbsp;</o:p></pre><pre>Thank you for your help!<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Best regards,<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Chris<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>p.s. I haven't downloaded and compiled the latest version of Swingset.<o:p></o:p></pre><pre>Do you happen to know if it is in a stable state? Would it be worth<o:p></o:p></pre><pre>examining that version in stead of the tomcat+swingset version I'm<o:p></o:p></pre><pre>currently working with?<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>on 03/03/2011 08:50 AM Jim Manico wrote :<o:p></o:p></pre><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><pre>So far I have the impression that ESAPI for Java was the first and still<o:p></o:p></pre><pre>is the most active project of all language specific ESAPI versions. Can<o:p></o:p></pre><pre>you confirm that?<o:p></o:p></pre></blockquote><pre>Agreed! You can see this in the google code activity metric.<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre> Also, can you confirm that ESAPI for Java would be the<o:p></o:p></pre><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><pre>best place to start for getting to know ESAPI? I noticed that the<o:p></o:p></pre><pre>Swingset bundled with Tomcat was from July 2009,<o:p></o:p></pre><pre><a href="https://code.google.com/p/swingset-demo/downloads/list">https://code.google.com/p/swingset-demo/downloads/list</a> seems to be from<o:p></o:p></pre><pre>Nov 2003. Nevertheless, it might be a good place to start also, no? What<o:p></o:p></pre><pre>is your opinion on this?<o:p></o:p></pre></blockquote><pre>The swingset is out of date with the current core. I'm not sure by much.<o:p></o:p></pre><pre>Would you have time to invest in working on updating the swingset?<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><pre>If you could give me any indications as to how to go about examining<o:p></o:p></pre><pre>ESAPI for our academic purposes in Web Application Security, I would be<o:p></o:p></pre><pre>most grateful.<o:p></o:p></pre></blockquote><pre>I would start building a small app that uses ESAPI! We are short on<o:p></o:p></pre><pre>documentation. The nest way to understand it is to use it!<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Ask use more questions along the way...<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Regards,<o:p></o:p></pre><pre>Jim<o:p></o:p></pre></blockquote><pre><o:p>&nbsp;</o:p></pre></blockquote><pre><o:p>&nbsp;</o:p></pre><p class=MsoNormal><br><br><o:p></o:p></p><pre>-- <o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre>Christopher Dickinson<o:p></o:p></pre><pre>Blvd. de PĂ©rolles 93<o:p></o:p></pre><pre>CH-1700 Fribourg<o:p></o:p></pre><pre><o:p>&nbsp;</o:p></pre><pre><a href="mailto:chris.dickinson@gmx.ch">chris.dickinson@gmx.ch</a><o:p></o:p></pre><pre>+41'76'468'01'02<o:p></o:p></pre></div></body></html>