<!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:D = "DAV:" xmlns:x2 = 
"http://schemas.microsoft.com/office/excel/2003/xml" 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:udcxf = 
"http://schemas.microsoft.com/data/udc/xmlfile" xmlns:wf = 
"http://schemas.microsoft.com/sharepoint/soap/workflow/" 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:ex12t = 
"http://schemas.microsoft.com/exchange/services/2006/types" xmlns:ex12m = 
"http://schemas.microsoft.com/exchange/services/2006/messages" XMLNS:Z = 
"urn:schemas-microsoft-com:" xmlns:st = ""><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.6000.16735" name=GENERATOR>
<STYLE>@font-face {
        font-family: Calibri;
}
@font-face {
        font-family: Tahoma;
}
@font-face {
        font-family: Georgia;
}
@page Section1 {size: 612.0pt 792.0pt; margin: 72.0pt 72.0pt 72.0pt 72.0pt; }
P.MsoNormal {
        FONT-SIZE: 12pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: "Times New Roman","serif"
}
LI.MsoNormal {
        FONT-SIZE: 12pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: "Times New Roman","serif"
}
DIV.MsoNormal {
        FONT-SIZE: 12pt; MARGIN: 0cm 0cm 0pt; FONT-FAMILY: "Times New Roman","serif"
}
A:link {
        COLOR: blue; TEXT-DECORATION: underline; mso-style-priority: 99
}
SPAN.MsoHyperlink {
        COLOR: blue; TEXT-DECORATION: underline; mso-style-priority: 99
}
A:visited {
        COLOR: purple; TEXT-DECORATION: underline; mso-style-priority: 99
}
SPAN.MsoHyperlinkFollowed {
        COLOR: purple; TEXT-DECORATION: underline; mso-style-priority: 99
}
SPAN.EpostStil17 {
        COLOR: windowtext; FONT-FAMILY: "Georgia","serif"; mso-style-type: personal-reply
}
.MsoChpDefault {
        mso-style-type: export-only
}
DIV.Section1 {
        page: Section1
}
</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 lang=EN-US vLink=purple link=blue>
<DIV><SPAN class=632502516-15122008><FONT face=Arial color=#0000ff size=2>2 
comments on Documentation Weakness I agree, that is not the issues, but 
"Sensitive Information Disclosure via comments" </FONT></SPAN></DIV>
<DIV><SPAN class=632502516-15122008><FONT face=Arial color=#0000ff 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=632502516-15122008><FONT face=Arial color=#0000ff 
size=2>Anyway, regardless of the name, What about OWASP created a tool that take 
off all the comments in source code and leave IDs on their&nbsp;place?. You can 
run it just before deploying your code. At the same time this process could be 
reversed by simply replacing back the comments in case you need them back for 
further modification of the source code. It would be ideal if this could be a 
plug-in for Eclipse where you can see the comments in place but the actual code 
do not contain them. Also many other interpreter-based tech will benefit as 
well,&nbsp;like PHP, Perl&nbsp;and Classic ASP.</FONT></SPAN></DIV>
<DIV><SPAN class=632502516-15122008><FONT face=Arial color=#0000ff 
size=2></FONT></SPAN>&nbsp;</DIV>
<DIV><SPAN class=632502516-15122008><FONT face=Arial color=#0000ff size=2>Anyone 
interested on running the project, it shouldn't be&nbsp;that much :) 
?</FONT></SPAN></DIV>
<DIV><FONT face=Arial color=#0000ff size=2></FONT>&nbsp;</DIV>
<DIV><SPAN class=632502516-15122008><FONT face=Arial color=#0000ff 
size=2>Regards,</FONT></SPAN></DIV>
<DIV dir=ltr align=left><FONT face=Arial size=2>Juan Carlos 
Calderon</FONT></DIV>
<DIV align=left><FONT face=Arial color=#0000ff size=1>Application Security 
Program</FONT></DIV>
<DIV align=left><FONT face=Arial color=#0000ff size=1>Project 
Leader</FONT></DIV>
<DIV>&nbsp;</DIV><BR>
<DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left>
<HR tabIndex=-1>
<FONT face=Tahoma size=2><B>From:</B> owasp-leaders-bounces@lists.owasp.org 
[mailto:owasp-leaders-bounces@lists.owasp.org] <B>On Behalf Of </B>Erlend 
Oftedal<BR><B>Sent:</B> Lunes, 15 de Diciembre de 2008 09:25 a.m.<BR><B>To:</B> 
owasp-leaders@lists.owasp.org<BR><B>Subject:</B> Re: [Owasp-leaders] Owasp 
Source Code Flaws Top 10 Project<BR></FONT><BR></DIV>
<DIV></DIV>
<DIV class=Section1>
<P class=MsoNormal><SPAN 
style="FONT-SIZE: 11pt; FONT-FAMILY: 'Georgia','serif'">Hi 
Paolo<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN 
style="FONT-SIZE: 11pt; FONT-FAMILY: 'Georgia','serif'"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal><SPAN 
style="FONT-SIZE: 11pt; FONT-FAMILY: 'Georgia','serif'">This is an interesting 
project, which I hope will be successful.<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN 
style="FONT-SIZE: 11pt; FONT-FAMILY: 'Georgia','serif'"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal><SPAN 
style="FONT-SIZE: 11pt; FONT-FAMILY: 'Georgia','serif'">I have some 
comments:<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN 
style="FONT-SIZE: 11pt; FONT-FAMILY: 'Georgia','serif'">“C3 – Missing input 
validation” – I would call this “Missing input validation and output encoding”. 
It’s not always possible to filter out dangerous characters from the input. 
Consider the name O’Brian. It contains a quote (‘) which might be considered 
dangerous (SQL-injection) and filtered out. However it’s actually a part of the 
name, and we should thus store it. So the correct way to handle this character 
would be to encode it when sending the data to the SQL-server. Best practices 
here would be to use parameterized queries or in the case of missing language 
support, escape it yourself. However this is not a part of input validation. 
It’s something developers should do where they create the 
SQL-statement.<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN 
style="FONT-SIZE: 11pt; FONT-FAMILY: 'Georgia','serif'">The same logic can be 
used for XSS. <o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN 
style="FONT-SIZE: 11pt; FONT-FAMILY: 'Georgia','serif'">Please not that I’m not 
saying input validation is useless. I just think both are 
necessary.<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN 
style="FONT-SIZE: 11pt; FONT-FAMILY: 'Georgia','serif'"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal><SPAN 
style="FONT-SIZE: 11pt; FONT-FAMILY: 'Georgia','serif'">&nbsp;“C9 - 
Documentation weakness” – I don’t think that documentation is the issue here. In 
my opinion, writing maintainable code is not about documenting your code, but 
about writing code that others can read. If you look to coding gurus like Robert 
C. Martin (author of books such as “Clean Code”), he says "Obviously, there are 
times when you must write a comment but I want those times to be few and far 
between and if I find myself writing a comment because I've got no other option, 
I kick myself. It's a failure of my ability to express myself well in 
code."<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN 
style="FONT-SIZE: 11pt; FONT-FAMILY: 'Georgia','serif'">The idea &nbsp;is to use 
short methods (easy to get an overview), good method and variable naming, and 
good object oriented design (using design principles like the 
Single-Responsibility-Principle) to reduce the complexity of the 
code.<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN 
style="FONT-SIZE: 11pt; FONT-FAMILY: 'Georgia','serif'">Documentation and 
comments has a tendency to lie, because when developers are short on time (which 
they often are because of management or customer pressure), they tend to fix the 
code without updating the comments. In this case the documentation will lie, 
which is a lot worse than no documentation at all. However the code does not 
lie. The best documentation you can have, is in the form of unit tests and 
integration tests, because the documentation/specification is then executable. 
So my suggestion for C9 would be: “C9 – Readability” or “C9 – Unreadable code”. 
<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN 
style="FONT-SIZE: 11pt; FONT-FAMILY: 'Georgia','serif'">While on the subject of 
testing, “CX – Untested code” could be another item in you list. 
<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN 
style="FONT-SIZE: 11pt; FONT-FAMILY: 'Georgia','serif'"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal><SPAN 
style="FONT-SIZE: 11pt; FONT-FAMILY: 'Georgia','serif'"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal><SPAN 
style="FONT-SIZE: 11pt; FONT-FAMILY: 'Georgia','serif'">Best 
regards<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN 
style="FONT-SIZE: 11pt; FONT-FAMILY: 'Georgia','serif'">Erlend 
Oftedal<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN 
style="FONT-SIZE: 11pt; FONT-FAMILY: 'Georgia','serif'">OWASP 
Norway<o:p></o:p></SPAN></P>
<P class=MsoNormal><SPAN 
style="FONT-SIZE: 11pt; FONT-FAMILY: 'Georgia','serif'"><o:p>&nbsp;</o:p></SPAN></P>
<P class=MsoNormal><SPAN 
style="FONT-SIZE: 11pt; FONT-FAMILY: 'Georgia','serif'"><o:p>&nbsp;</o:p></SPAN></P>
<DIV 
style="BORDER-RIGHT: medium none; PADDING-RIGHT: 0cm; BORDER-TOP: #b5c4df 1pt solid; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: medium none; PADDING-TOP: 3pt; BORDER-BOTTOM: medium none">
<P class=MsoNormal><B><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Tahoma','sans-serif'">Fra:</SPAN></B><SPAN 
style="FONT-SIZE: 10pt; FONT-FAMILY: 'Tahoma','sans-serif'"> 
owasp-leaders-bounces@lists.owasp.org 
[mailto:owasp-leaders-bounces@lists.owasp.org] <B>På vegne av</B> Paolo 
Perego<BR><B>Sendt:</B> 15. desember 2008 15:11<BR><B>Til:</B> Owasp 
leaders<BR><B>Emne:</B> [Owasp-leaders] Owasp Source Code Flaws Top 10 
Project<o:p></o:p></SPAN></P></DIV>
<P class=MsoNormal><o:p>&nbsp;</o:p></P>
<DIV>
<P class=MsoNormal>Hello leaders, I'm really happy to announce a new 
documentation project I started today. Our Top 10 most critical web app 
vulnerabilities is the standard de facto when trying to summarize findings when 
you assess a web application. And it is great.<o:p></o:p></P></DIV>
<DIV>
<P class=MsoNormal><o:p>&nbsp;</o:p></P></DIV>
<DIV>
<P class=MsoNormal>Looking at source code assessment (or code review, or static 
analysis, or whatever the name you want to use :-)), nothing like this exists. 
Gary McGraw introduced the 7 kingdoms as taxonomy. I started looking at this 
great job extending it to meet Owasp Top 10 like template.<o:p></o:p></P></DIV>
<DIV>
<P class=MsoNormal>I also used categories that I found useful to gather security 
code review findings in.<o:p></o:p></P></DIV>
<DIV>
<P class=MsoNormal><o:p>&nbsp;</o:p></P></DIV>
<DIV>
<P class=MsoNormal>That's why I started this Top 10 project. The goal is to 
provide something useful in Owasp Code Review Guide while trying to organize 
security issues and the second goal is to use it as Owasp Orizon default library 
cookbooks in order to have a "fil rouge" from Code review guide and the 
implementing tool. The Source code flaws Top 10 will be that fil 
rouge.<o:p></o:p></P></DIV>
<DIV>
<P class=MsoNormal><o:p>&nbsp;</o:p></P></DIV>
<DIV>
<P class=MsoNormal>I really hope that everyone interested will subscribe to 
mailing list and give some contributions to this document I'd like to release as 
beta quality project in the next AppSec Europe 2009 in 
Cracow.<o:p></o:p></P></DIV>
<DIV>
<P class=MsoNormal><o:p>&nbsp;</o:p></P></DIV>
<P class=MsoNormal>Link: <A 
href="http://www.owasp.org/index.php/Category:OWASP_Source_Code_Flaws_Top_10_Project">http://www.owasp.org/index.php/Category:OWASP_Source_Code_Flaws_Top_10_Project</A><BR 
clear=all>Roadmap:&nbsp;<A 
href="http://www.owasp.org/index.php/Category:OWASP_Source_Code_Flaws_Top_10_Project_Roadmap">http://www.owasp.org/index.php/Category:OWASP_Source_Code_Flaws_Top_10_Project_Roadmap</A><o:p></o:p></P>
<DIV>
<P class=MsoNormal>Mailinglist subscription page:&nbsp;<A 
href="https://lists.owasp.org/mailman/listinfo/owasp-source-code-flaws-top-10">https://lists.owasp.org/mailman/listinfo/owasp-source-code-flaws-top-10</A><o:p></o:p></P></DIV>
<DIV>
<P class=MsoNormal><o:p>&nbsp;</o:p></P></DIV>
<DIV>
<P class=MsoNormal>Regards<o:p></o:p></P></DIV>
<DIV>
<P class=MsoNormal>thesp0nge<BR>-- <BR>"stay hungry, stay foolish"<BR><BR>OWASP 
Orizon project, <A 
href="http://orizon.sourceforge.net">http://orizon.sourceforge.net</A><BR>"enjoy 
your code review experience"<o:p></o:p></P></DIV></DIV></BODY></HTML>