<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.owasp.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kcfredman</id>
		<title>OWASP - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.owasp.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kcfredman"/>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php/Special:Contributions/Kcfredman"/>
		<updated>2026-05-28T18:55:20Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.27.2</generator>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Access_Control_Cheat_Sheet&amp;diff=182165</id>
		<title>Access Control Cheat Sheet</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Access_Control_Cheat_Sheet&amp;diff=182165"/>
				<updated>2014-09-11T21:42:42Z</updated>
		
		<summary type="html">&lt;p&gt;Kcfredman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= DRAFT CHEAT SHEET - WORK IN PROGRESS =&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This article is focused on providing clear, simple, actionable guidance for providing Access Control security in your applications.&lt;br /&gt;
&lt;br /&gt;
==What is Access Control / Authorization?==&lt;br /&gt;
&lt;br /&gt;
Authorization is the process where requests to access a particular resource should be granted or denied. It should be noted that authorization is not equivalent to authentication - as these terms and their definitions are frequently confused.&lt;br /&gt;
&lt;br /&gt;
Access Control is the method or mechanism of authorization to enforce that requests to a system resource or functionality should be granted.&lt;br /&gt;
&lt;br /&gt;
== Role Based Access Control (RBAC) ==&lt;br /&gt;
In Role-Based Access Control (RBAC), access decisions are based on an individual's roles and responsibilities within the organization or user base. The process of defining roles is usually based on analyzing the fundamental goals and structure of an organization and is usually linked to the security policy. For instance, in a medical organization, the different roles of users may include those such as doctor, nurse, attendant, nurse, patients, etc. Obviously, these members require different levels of access in order to perform their functions, but also the types of web transactions and their allowed context vary greatly depending on the security policy and any relevant regulations (HIPAA, Gramm-Leach-Bliley, etc.). &lt;br /&gt;
&lt;br /&gt;
An RBAC access control framework should provide web application security administrators with the ability to determine who can perform what actions, when, from where, in what order, and in some cases under what relational circumstances. http://csrc.nist.gov/rbac/ provides some great resources for RBAC implementation. The following aspects exhibit RBAC attributes to an access control model.&lt;br /&gt;
*Roles are assigned based on organizational structure with emphasis on the organizational security policy&lt;br /&gt;
*Roles are assigned by the administrator based on relative relationships within the organization or user base. For instance, a manager would have certain authorized transactions over his employees. An administrator would have certain authorized transactions over his specific realm of duties (backup, account creation, etc.) &lt;br /&gt;
*Each role is designated a profile that includes all authorized commands, transactions, and allowable information access.&lt;br /&gt;
*Roles are granted permissions based on the principle of least privilege.&lt;br /&gt;
*Roles are determined with a separation of duties in mind so that a developer Role should not overlap a QA tester Role.&lt;br /&gt;
*Roles are activated statically and dynamically as appropriate to certain relational triggers (help desk queue, security alert, initiation of a new project, etc.) &lt;br /&gt;
*Roles can be only be transferred or delegated using strict sign-offs and procedures.&lt;br /&gt;
*Roles are managed centrally by a security administrator or project leader&lt;br /&gt;
&lt;br /&gt;
OWASP has a role based access control implementation project, [[OWASP_PHPRBAC_Project|OWASP RBAC Project]].&lt;br /&gt;
&lt;br /&gt;
== Discretionary Access Control (DAC)' ==&lt;br /&gt;
&lt;br /&gt;
Discretionary Access Control (DAC) is a means of restricting access to information based on the identity of users and/or membership in certain groups. Access decisions are typically based on the authorizations granted to a user based on the credentials he presented at the time of authentication (user name, password, hardware/software token, etc.). In most typical DAC models, the owner of information or any resource is able to change its permissions at his discretion (thus the name). DAC has the drawback of the administrators not being able to centrally manage these permissions on files/information stored on the web server. A DAC access control model often exhibits one or more of the following attributes.&lt;br /&gt;
*Data Owners can transfer ownership of information to other users &lt;br /&gt;
*Data Owners can determine the type of access given to other users (read, write, copy, etc.) &lt;br /&gt;
*Repetitive authorization failures to access the same resource or object generates an alarm and/or restricts the user's access&lt;br /&gt;
*Special add-on or plug-in software required to apply to an HTTP client to prevent indiscriminate copying by users (&amp;quot;cutting and pasting&amp;quot; of information) &lt;br /&gt;
*Users who do not have access to information should not be able to determine its characteristics (file size, file name, directory path, etc.) &lt;br /&gt;
*Access to information is determined based on authorizations to access control lists based on user identifier and group membership.&lt;br /&gt;
&lt;br /&gt;
== Mandatory Access Control (MAC) ==&lt;br /&gt;
&lt;br /&gt;
Mandatory Access Control (MAC) ensures that the enforcement of organizational security policy does not rely on voluntary web application user compliance. MAC secures information by assigning sensitivity labels on information and comparing this to the level of sensitivity a user is operating at. In general, MAC access control mechanisms are more secure than DAC yet have trade offs in performance and convenience to users. MAC mechanisms assign a security level to all information, assign a security clearance to each user, and ensure that all users only have access to that data for which they have a clearance. MAC is usually appropriate for extremely secure systems including multilevel secure military applications or mission critical data applications. A MAC access control model often exhibits one or more of the following attributes.&lt;br /&gt;
*Only administrators, not data owners, make changes to a resource's security label. &lt;br /&gt;
*All data is assigned security level that reflects its relative sensitivity, confidentiality, and protection value.&lt;br /&gt;
*All users can read from a lower classification than the one they are granted (A &amp;quot;secret&amp;quot; user can read an unclassified document).&lt;br /&gt;
*All users can write to a higher classification (A &amp;quot;secret&amp;quot; user can post information to a Top Secret resource). &lt;br /&gt;
*All users are given read/write access to objects only of the same classification (a &amp;quot;secret&amp;quot; user can only read/write to a secret document).&lt;br /&gt;
*Access is authorized or restricted to objects based on the time of day depending on the labeling on the resource and the user's credentials (driven by policy). &lt;br /&gt;
*Access is authorized or restricted to objects based on the security characteristics of the HTTP client (e.g. SSL bit length, version information, originating IP address or domain, etc.)&lt;br /&gt;
&lt;br /&gt;
== Attribute Based Access Control (ABAC) ==&lt;br /&gt;
&lt;br /&gt;
[http://csrc.nist.gov/publications/drafts/800-162/sp800_162_draft.pdf NIST Special Publication (SP) 800-162 (Draft)]&lt;br /&gt;
&lt;br /&gt;
=Attacks on Access Control=&lt;br /&gt;
&lt;br /&gt;
Vertical Access Control Attacks - A standard user accessing administration functionality&lt;br /&gt;
&lt;br /&gt;
Horizontal Access Control attacks - Same role, but accessing another user's private data&lt;br /&gt;
&lt;br /&gt;
Business Logic Access Control Attacks - Abuse of one or more linked activities that collectively realize a business objective&lt;br /&gt;
&lt;br /&gt;
=Access Control Issues=&lt;br /&gt;
*Many applications used the &amp;quot;All or Nothing&amp;quot; approach - Once authenticated, all users have equal privileges&lt;br /&gt;
&lt;br /&gt;
*Authorization Logic often relies on Security by Obscurity (STO) by assuming:&lt;br /&gt;
**Users will not find unlinked or hidden paths or functionality&lt;br /&gt;
**Users will not find and tamper with &amp;quot;obscured&amp;quot; client side parameters (i.e. &amp;quot;hidden&amp;quot; form fields, cookies, etc.)&lt;br /&gt;
	&lt;br /&gt;
*Applications with multiple permission levels/roles often increases the possibility of conflicting permission sets resulting in unanticipated privileges&lt;br /&gt;
&lt;br /&gt;
*Many administrative interfaces require only a password for authentication&lt;br /&gt;
*Shared accounts combined with a lack of auditing and logging make it extremely difficult to differentiate between malicious and honest administrators&lt;br /&gt;
*Administrative interfaces are often not designed as “secure” as user-level interfaces given the assumption that administrators are trusted users&lt;br /&gt;
*Authorization/Access Control relies on client-side information (e.g., hidden fields)&lt;br /&gt;
*Web and application server processes run as root, Administrator, LOCALSYSTEM or other privileged accounts&lt;br /&gt;
*Some web applications access the database via sa or other administrative account (or more privileges than required)&lt;br /&gt;
*Some applications implement authorization controls by including a file or web control or code snippet on every page in the application&lt;br /&gt;
	&lt;br /&gt;
     &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;fname&amp;quot; value=&amp;quot;Derek&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;lname&amp;quot; value=&amp;quot;Jeter&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;usertype&amp;quot; value=&amp;quot;admin&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Access Control Anti-Patterns=&lt;br /&gt;
&lt;br /&gt;
*Hard-coded role checks in application code&lt;br /&gt;
*Lack of centralized access control logic&lt;br /&gt;
*Untrusted data driving access control decisions&lt;br /&gt;
*Access control that is &amp;quot;open by default&amp;quot;&lt;br /&gt;
*Lack of addressing horizontal access control in a standardized way (if at all)&lt;br /&gt;
*Access control logic that needs to be manually added to every endpoint in code&lt;br /&gt;
*non-anonymous entry point DO NOT have an access control check&lt;br /&gt;
*No authorization check at or near the beginning of code implementing sensitive activities&lt;br /&gt;
&lt;br /&gt;
==Hard Coded Roles==&lt;br /&gt;
&lt;br /&gt;
  if (user.isManager() ||&lt;br /&gt;
      user.isAdministrator() ||&lt;br /&gt;
      user.isEditor() ||&lt;br /&gt;
      user.isUser()) {&lt;br /&gt;
      //execute action&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
'''Hard Codes Roles can create several issues including:'''&lt;br /&gt;
&lt;br /&gt;
*Making the policy of an application difficult to &amp;quot;prove&amp;quot; for audit or Q/A purposes &lt;br /&gt;
*Causing new code to be pushed each time an access control policy needs to be changed. &lt;br /&gt;
*They are fragile and easy to make mistakes&lt;br /&gt;
&lt;br /&gt;
==Order Specific Operations==&lt;br /&gt;
&lt;br /&gt;
Imagine the following parameters&lt;br /&gt;
&lt;br /&gt;
  http://example.com/buy?action=chooseDataPackage&lt;br /&gt;
  http://example.com/buy?action=customizePackage&lt;br /&gt;
  http://example.com/buy?action=makePayment&lt;br /&gt;
  http://example.com/buy?action=downloadData&lt;br /&gt;
&lt;br /&gt;
'''Can an attacker control the sequence?'''&lt;br /&gt;
&lt;br /&gt;
'''Can an attacker abuse this with concurrency?'''&lt;br /&gt;
&lt;br /&gt;
==Never Depend on Untrusted Data==&lt;br /&gt;
&lt;br /&gt;
*Never trust user data for access control decisions&lt;br /&gt;
*Never make access control decisions in JavaScript&lt;br /&gt;
*Never depend on the order of values sent from the client&lt;br /&gt;
*Never make authorization decisions based solely on&lt;br /&gt;
**hidden fields&lt;br /&gt;
**cookie values&lt;br /&gt;
**form parameters&lt;br /&gt;
**URL parameters&lt;br /&gt;
**anything else from the request&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
=Attacking Access Controls=&lt;br /&gt;
&lt;br /&gt;
*Elevation of privileges&lt;br /&gt;
*Disclosure of confidential data - Compromising admin-level accounts often result in access to a user's confidential data&lt;br /&gt;
*Data tampering - Privilege levels do not distinguish users who can only view data and users permitted to modify data&lt;br /&gt;
&lt;br /&gt;
=Testing for Broken Access Control=&lt;br /&gt;
&lt;br /&gt;
*Attempt to access administrative components or functions as an anonymous or regular user&lt;br /&gt;
**Scour HTML source for “interesting” hidden form fields&lt;br /&gt;
**Test web accessible directory structure for names like admin, administrator, manager, etc (i.e. attempt to directly browse to “restricted” areas)&lt;br /&gt;
*Determine how administrators are authenticated. Ensure that adequate authentication is used and enforced&lt;br /&gt;
*For each user role, ensure that only the appropriate pages or components are accessible for that role.&lt;br /&gt;
*Login as a low-level user, browse history for a higher level user’s cache, load the page to see if the original authorization is passed to a previous session.&lt;br /&gt;
*If able to compromise administrator-level account, test for all other common web application vulnerabilities (poor input validation, privileged database access, etc)&lt;br /&gt;
&lt;br /&gt;
=Defenses Against Access Control Attacks=&lt;br /&gt;
&lt;br /&gt;
*Implement role based access control to assign permissions to application users for vertical access control requirements&lt;br /&gt;
*Implement data-contextual access control to assign permissions to application users in the context of specific data items for horizontal access control requirements&lt;br /&gt;
*Avoid assigning permissions on a per-user basis&lt;br /&gt;
*Perform consistent authorization checking routines on all application pages&lt;br /&gt;
*Where applicable, apply DENY privileges last, issue ALLOW privileges on a case-by-case basis&lt;br /&gt;
*Where possible restrict administrator access to machines located on the local area network (i.e. it’s best to avoid remote administrator access from public facing access points)&lt;br /&gt;
*Log all failed access authorization requests to a secure location for review by administrators&lt;br /&gt;
*Perform reviews of failed login attempts on a periodic basis&lt;br /&gt;
*Utilize the strengths and functionality provided by the SSO solution you chose&lt;br /&gt;
&lt;br /&gt;
'''Java'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
if ( authenticated ) {&lt;br /&gt;
&lt;br /&gt;
	request.getSession(true).setValue(“AUTHLEVEL”) = X_USER;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''.NET (C#)'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
if ( authenticated ) {&lt;br /&gt;
&lt;br /&gt;
	Session[“AUTHLEVEL”] = X_USER;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''PHP'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
if ( authenticated ) {&lt;br /&gt;
&lt;br /&gt;
	$_SESSION[‘authlevel’] = X_USER; 	// X_USER is defined elsewhere as meaning, the user is authorized&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Best Practices=&lt;br /&gt;
&lt;br /&gt;
==Best Practice: Code to the Activity==&lt;br /&gt;
&lt;br /&gt;
   if (AC.hasAccess(ARTICLE_EDIT)) {&lt;br /&gt;
       //execute activity&lt;br /&gt;
   }&lt;br /&gt;
*Code it once, never needs to change again&lt;br /&gt;
*Implies policy is persisted/centralized in some way&lt;br /&gt;
*Avoid assigning permissions on a per-user basis&lt;br /&gt;
*Requires more design/work up front to get right&lt;br /&gt;
&lt;br /&gt;
==Best Practice: Centralized ACL Controller==&lt;br /&gt;
&lt;br /&gt;
*Define a centralized access controller&lt;br /&gt;
      ACLService.isAuthorized(ACTION_CONSTANT)&lt;br /&gt;
      ACLService.assertAuthorized(ACTION_CONSTANT)&lt;br /&gt;
*Access control decisions go through these simple API’s&lt;br /&gt;
*Centralized logic to drive policy behavior and persistence&lt;br /&gt;
*May contain data-driven access control policy information&lt;br /&gt;
*Policy language needs to support ability to express both access rights and prohibitions&lt;br /&gt;
&lt;br /&gt;
==Best Practice: Using a Centralized Access Controller==&lt;br /&gt;
&lt;br /&gt;
*In Presentation Layer&lt;br /&gt;
&lt;br /&gt;
       if (isAuthorized(VIEW_LOG_PANEL))&lt;br /&gt;
       {&lt;br /&gt;
          Here are the logs&lt;br /&gt;
          &amp;lt;%=getLogs();%/&amp;gt;&lt;br /&gt;
       }&lt;br /&gt;
	&lt;br /&gt;
*In Controller&lt;br /&gt;
&lt;br /&gt;
       try (assertAuthorized(DELETE_USER))&lt;br /&gt;
       {&lt;br /&gt;
          deleteUser();&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
==Best Practice: Verifying policy server-side==&lt;br /&gt;
&lt;br /&gt;
*Keep user identity verification in session&lt;br /&gt;
*Load entitlements server side from trusted sources&lt;br /&gt;
*Force authorization checks on ALL requests&lt;br /&gt;
**JS file, image, AJAX and FLASH requests as well!&lt;br /&gt;
**Force this check using a filter if possible&lt;br /&gt;
&lt;br /&gt;
=SQL Integrated Access Control=&lt;br /&gt;
&lt;br /&gt;
'''Example Feature'''&lt;br /&gt;
&lt;br /&gt;
    http://mail.example.com/viewMessage?msgid=2356342&lt;br /&gt;
&lt;br /&gt;
'''This SQL would be vulnerable to tampering'''&lt;br /&gt;
&lt;br /&gt;
  select * from messages where messageid = 2356342&lt;br /&gt;
&lt;br /&gt;
'''Ensure the owner is referenced in the query!'''&lt;br /&gt;
&lt;br /&gt;
  select * from messages where messageid = 2356342 AND messages.message_owner = &lt;br /&gt;
&lt;br /&gt;
=Access Control Positive Patterns=&lt;br /&gt;
&lt;br /&gt;
*Code to the activity, not the role&lt;br /&gt;
*Centralize access control logic&lt;br /&gt;
*Design access control as a filter&lt;br /&gt;
*Deny by default, fail securely&lt;br /&gt;
*Build centralized access control mechanism&lt;br /&gt;
*Apply same core logic to presentation and server-side access control decisions&lt;br /&gt;
*Determine access control through Server-side trusted data&lt;br /&gt;
&lt;br /&gt;
=Data Contextual Access Control=&lt;br /&gt;
&lt;br /&gt;
'''Data Contextual / Horizontal Access Control API examples'''&lt;br /&gt;
&lt;br /&gt;
    ACLService.isAuthorized(EDIT_ORG, 142)&lt;br /&gt;
    ACLService.assertAuthorized(VIEW_ORG, 900)&lt;br /&gt;
&lt;br /&gt;
Long Form&lt;br /&gt;
&lt;br /&gt;
    isAuthorized(user, EDIT_ORG, Organization.class, 14)&lt;br /&gt;
	&lt;br /&gt;
*Essentially checking if the user has the right role in the context of a specific object&lt;br /&gt;
*Centralize access control logic&lt;br /&gt;
*Protecting data at the lowest level!&lt;br /&gt;
&lt;br /&gt;
=Authors and Primary Editors=&lt;br /&gt;
&lt;br /&gt;
Jim Manico - jim [at] owasp dot org&amp;lt;br/&amp;gt;&lt;br /&gt;
Fred Donovan - fred.donovan [at] owasp dot org&amp;lt;br/&amp;gt;&lt;br /&gt;
Mennouchi Islam Azeddine - azeddine.mennouchi [at] owasp.org&lt;br /&gt;
&lt;br /&gt;
== Other Cheatsheets ==&lt;br /&gt;
{{Cheatsheet_Navigation}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Cheatsheets]]&lt;/div&gt;</summary>
		<author><name>Kcfredman</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Access_Control_Cheat_Sheet&amp;diff=170946</id>
		<title>Access Control Cheat Sheet</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Access_Control_Cheat_Sheet&amp;diff=170946"/>
				<updated>2014-03-27T23:01:14Z</updated>
		
		<summary type="html">&lt;p&gt;Kcfredman: /* Activity Based Access Control (ABAC) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= DRAFT CHEAT SHEET - WORK IN PROGRESS =&lt;br /&gt;
=Introduction=&lt;br /&gt;
&lt;br /&gt;
This article is focused on providing clear, simple, actionable guidance for providing Access Control security in your applications.&lt;br /&gt;
&lt;br /&gt;
==What is Access Control / Authorization?==&lt;br /&gt;
&lt;br /&gt;
Authorization is the process where requests to access a particular resource should be granted or denied. It should be noted that authorization is not equivalent to authentication - as these terms and their defininitions are frequently confused.&lt;br /&gt;
&lt;br /&gt;
Access Control is the method or mechanism of authorization to enfore that requests to a system resource or functionality should be granted.&lt;br /&gt;
&lt;br /&gt;
== Role Based Access Control (RBAC) ==&lt;br /&gt;
In Role-Based Access Control (RBAC), access decisions are based on an individual's roles and responsibilities within the organization or user base. The process of defining roles is usually based on analyzing the fundamental goals and structure of an organization and is usually linked to the security policy. For instance, in a medical organization, the different roles of users may include those such as doctor, nurse, attendant, nurse, patients, etc. Obviously, these members require different levels of access in order to perform their functions, but also the types of web transactions and their allowed context vary greatly depending on the security policy and any relevant regulations (HIPAA, Gramm-Leach-Bliley, etc.). &lt;br /&gt;
&lt;br /&gt;
An RBAC access control framework should provide web application security administrators with the ability to determine who can perform what actions, when, from where, in what order, and in some cases under what relational circumstances. http://csrc.nist.gov/rbac/ provides some great resources for RBAC implementation. The following aspects exhibit RBAC attributes to an access control model.&lt;br /&gt;
*Roles are assigned based on organizational structure with emphasis on the organizational security policy&lt;br /&gt;
*Roles are assigned by the administrator based on relative relationships within the organization or user base. For instance, a manager would have certain authorized transactions over his employees. An administrator would have certain authorized transactions over his specific realm of duties (backup, account creation, etc.) &lt;br /&gt;
*Each role is designated a profile that includes all authorized commands, transactions, and allowable information access.&lt;br /&gt;
*Roles are granted permissions based on the principle of least privilege.&lt;br /&gt;
*Roles are determined with a separation of duties in mind so that a developer Role should not overlap a QA tester Role.&lt;br /&gt;
*Roles are activated statically and dynamically as appropriate to certain relational triggers (help desk queue, security alert, initiation of a new project, etc.) &lt;br /&gt;
*Roles can be only be transferred or delegated using strict sign-offs and procedures.&lt;br /&gt;
*Roles are managed centrally by a security administrator or project leader&lt;br /&gt;
&lt;br /&gt;
== Discretionary Access Control (DAC)' ==&lt;br /&gt;
&lt;br /&gt;
Discretionary Access Control (DAC) is a means of restricting access to information based on the identity of users and/or membership in certain groups. Access decisions are typically based on the authorizations granted to a user based on the credentials he presented at the time of authentication (user name, password, hardware/software token, etc.). In most typical DAC models, the owner of information or any resource is able to change its permissions at his discretion (thus the name). DAC has the drawback of the administrators not being able to centrally manage these permissions on files/information stored on the web server. A DAC access control model often exhibits one or more of the following attributes.&lt;br /&gt;
*Data Owners can transfer ownership of information to other users &lt;br /&gt;
*Data Owners can determine the type of access given to other users (read, write, copy, etc.) &lt;br /&gt;
*Repetitive authorization failures to access the same resource or object generates an alarm and/or restricts the user's access&lt;br /&gt;
*Special add-on or plug-in software required to apply to an HTTP client to prevent indiscriminate copying by users (&amp;quot;cutting and pasting&amp;quot; of information) &lt;br /&gt;
*Users who do not have access to information should not be able to determine its characteristics (file size, file name, directory path, etc.) &lt;br /&gt;
*Access to information is determined based on authorizations to access control lists based on user identifier and group membership.&lt;br /&gt;
&lt;br /&gt;
== Mandatory Access Control (MAC) ==&lt;br /&gt;
&lt;br /&gt;
Mandatory Access Control (MAC) ensures that the enforcement of organizational security policy does not rely on voluntary web application user compliance. MAC secures information by assigning sensitivity labels on information and comparing this to the level of sensitivity a user is operating at. In general, MAC access control mechanisms are more secure than DAC yet have trade offs in performance and convenience to users. MAC mechanisms assign a security level to all information, assign a security clearance to each user, and ensure that all users only have access to that data for which they have a clearance. MAC is usually appropriate for extremely secure systems including multilevel secure military applications or mission critical data applications. A MAC access control model often exhibits one or more of the following attributes.&lt;br /&gt;
*Only administrators, not data owners, make changes to a resource's security label. &lt;br /&gt;
*All data is assigned security level that reflects its relative sensitivity, confidentiality, and protection value.&lt;br /&gt;
*All users can read from a lower classification than the one they are granted (A &amp;quot;secret&amp;quot; user can read an unclassified document).&lt;br /&gt;
*All users can write to a higher classification (A &amp;quot;secret&amp;quot; user can post information to a Top Secret resource). &lt;br /&gt;
*All users are given read/write access to objects only of the same classification (a &amp;quot;secret&amp;quot; user can only read/write to a secret document).&lt;br /&gt;
*Access is authorized or restricted to objects based on the time of day depending on the labeling on the resource and the user's credentials (driven by policy). &lt;br /&gt;
*Access is authorized or restricted to objects based on the security characteristics of the HTTP client (e.g. SSL bit length, version information, originating IP address or domain, etc.)&lt;br /&gt;
&lt;br /&gt;
== Attribute Based Access Control (ABAC) ==&lt;br /&gt;
&lt;br /&gt;
[http://csrc.nist.gov/publications/drafts/800-162/sp800_162_draft.pdf NIST Special Publication (SP) 800-162 (Draft)]&lt;br /&gt;
&lt;br /&gt;
=Attacks on Access Control=&lt;br /&gt;
&lt;br /&gt;
Vertical Access Control Attacks - A standard user accessing administration functionality&lt;br /&gt;
&lt;br /&gt;
Horizontal Access Control attacks - Same role, but accessing another user's private data&lt;br /&gt;
&lt;br /&gt;
Business Logic Access Control Attacks - Abuse of one or more linked activities that collectively realize a business objective&lt;br /&gt;
&lt;br /&gt;
=Access Control Issues=&lt;br /&gt;
*Many applications used the &amp;quot;All or Nothing&amp;quot; approach - Once authenticated, all users have equal privileges&lt;br /&gt;
&lt;br /&gt;
*Authorization Logic often relies on Security by Obscurity (STO) by assuming:&lt;br /&gt;
**Users will not find unlinked or hidden paths or functionality&lt;br /&gt;
**Users will not find and tamper with &amp;quot;obscured&amp;quot; client side parameters (i.e. &amp;quot;hidden&amp;quot; form fields, cookies, etc.)&lt;br /&gt;
	&lt;br /&gt;
*Applications with multiple permission levels/roles often increases the possibility of conflicting permission sets resulting in unanticipated privileges&lt;br /&gt;
&lt;br /&gt;
*Many administrative interfaces require only a password for authentication&lt;br /&gt;
*Shared accounts combined with a lack of auditing and logging make it extremely difficult to differentiate between malicious and honest administrators&lt;br /&gt;
*Administrative interfaces are often not designed as “secure” as user-level interfaces given the assumption that administrators are trusted users&lt;br /&gt;
*Authorization/Access Control relies on client-side information (e.g., hidden fields)&lt;br /&gt;
*Web and application server processes run as root, Administrator, LOCALSYSTEM or other privileged accounts&lt;br /&gt;
*Some web applications access the database via sa or other administrative account (or more privileges than required)&lt;br /&gt;
*Some applications implement authorization controls by including a file or web control or code snippet on every page in the application&lt;br /&gt;
	&lt;br /&gt;
     &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;fname&amp;quot; value=&amp;quot;Derek&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;lname&amp;quot; value=&amp;quot;Jeter&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;usertype&amp;quot; value=&amp;quot;admin&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Access Control Anti-Patterns=&lt;br /&gt;
&lt;br /&gt;
*Hard-coded role checks in application code&lt;br /&gt;
*Lack of centralized access control logic&lt;br /&gt;
*Untrusted data driving access control decisions&lt;br /&gt;
*Access control that is &amp;quot;open by default&amp;quot;&lt;br /&gt;
*Lack of addressing horizontal access control in a standardized way (if at all)&lt;br /&gt;
*Access control logic that needs to be manually added to every endpoint in code&lt;br /&gt;
*non-anonymous entry point DO NOT have an access control check&lt;br /&gt;
*No authorization check at or near the beginning of code implementing sensitive activities&lt;br /&gt;
&lt;br /&gt;
==Hard Coded Roles==&lt;br /&gt;
&lt;br /&gt;
  if (user.isManager() ||&lt;br /&gt;
      user.isAdministrator() ||&lt;br /&gt;
      user.isEditor() ||&lt;br /&gt;
      user.isUser()) {&lt;br /&gt;
      //execute action&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
'''Hard Codes Roles can create several issues including:'''&lt;br /&gt;
&lt;br /&gt;
*Making the policy of an application difficult to &amp;quot;prove&amp;quot; for audit or Q/A purposes &lt;br /&gt;
*Causing new code to be pushed each time an access control policy needs to be changed. &lt;br /&gt;
*They are fragile and easy to make mistakes&lt;br /&gt;
&lt;br /&gt;
==Order Specific Operations==&lt;br /&gt;
&lt;br /&gt;
Imagine the following parameters&lt;br /&gt;
&lt;br /&gt;
  http://example.com/buy?action=chooseDataPackage&lt;br /&gt;
  http://example.com/buy?action=customizePackage&lt;br /&gt;
  http://example.com/buy?action=makePayment&lt;br /&gt;
  http://example.com/buy?action=downloadData&lt;br /&gt;
&lt;br /&gt;
'''Can an attacker control the sequence?'''&lt;br /&gt;
&lt;br /&gt;
'''Can an attacker abuse this with concurency?'''&lt;br /&gt;
&lt;br /&gt;
==Never Depend on Untrusted Data==&lt;br /&gt;
&lt;br /&gt;
*Never trust user data for access control decisions&lt;br /&gt;
*Never make access control decisions in JavaScript&lt;br /&gt;
*Never depend on the order of values sent from the client&lt;br /&gt;
*Never make authorization decisions based solely on&lt;br /&gt;
**hidden fields&lt;br /&gt;
**cookie values&lt;br /&gt;
**form parameters&lt;br /&gt;
**URL parameters&lt;br /&gt;
**anything else from the request&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
=Attacking Access Controls=&lt;br /&gt;
&lt;br /&gt;
*Elevation of privileges&lt;br /&gt;
*Disclosure of confidential data - Compromising admin-level accounts often result in access to a user's confidential data&lt;br /&gt;
*Data tampering - Privilege levels do not distinguish users who can only view data and users permitted to modify data&lt;br /&gt;
&lt;br /&gt;
=Testing for Broken Access Control=&lt;br /&gt;
&lt;br /&gt;
*Attempt to access administrative components or functions as an anonymous or regular user&lt;br /&gt;
**Scour HTML source for “interesting” hidden form fields&lt;br /&gt;
**Test web accessible directory structure for names like admin, administrator, manager, etc (i.e. attempt to directly browse to “restricted” areas)&lt;br /&gt;
*Determine how administrators are authenticated. Ensure that adequate authentication is used and enforced&lt;br /&gt;
*For each user role, ensure that only the appropriate pages or components are accessible for that role.&lt;br /&gt;
*Login as a low-level user, browse history for a higher level user’s cache, load the page to see if the original authorization is passed to a previous session.&lt;br /&gt;
*If able to compromise administrator-level account, test for all other common web application vulnerabilities (poor input validation, privileged database access, etc)&lt;br /&gt;
&lt;br /&gt;
=Defenses Against Access Control Attacks=&lt;br /&gt;
&lt;br /&gt;
*Implement role based access control to assign permissions to application users for vertical access control requirements&lt;br /&gt;
*Implement data-contextual access control to assign permissions to application users in the context of specific data items for horizontal access control requirements&lt;br /&gt;
*Avoid assigning permissions on a per-user basis&lt;br /&gt;
*Perform consistent authorization checking routines on all application pages&lt;br /&gt;
*Where applicable, apply DENY privileges last, issue ALLOW privileges on a case-by-case basis&lt;br /&gt;
*Where possible restrict administrator access to machines located on the local area network (i.e. it’s best to avoid remote administrator access from public facing access points)&lt;br /&gt;
*Log all failed access authorization requests to a secure location for review by administrators&lt;br /&gt;
*Perform reviews of failed login attempts on a periodic basis&lt;br /&gt;
*Utilize the strengths and functionality provided by the SSO solution you chose&lt;br /&gt;
&lt;br /&gt;
'''Java'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
if ( authenticated ) {&lt;br /&gt;
&lt;br /&gt;
	request.getSession(true).setValue(“AUTHLEVEL”) = X_USER;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''.NET (C#)'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
if ( authenticated ) {&lt;br /&gt;
&lt;br /&gt;
	Session[“AUTHLEVEL”] = X_USER;&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''PHP'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
if ( authenticated ) {&lt;br /&gt;
&lt;br /&gt;
	$_SESSION[‘authlevel’] = X_USER; 	// X_USER is defined elsewhere as meaning, the user is authorized&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Best Practices=&lt;br /&gt;
&lt;br /&gt;
==Best Practice: Code to the Activity==&lt;br /&gt;
&lt;br /&gt;
   if (AC.hasAccess(ARTICLE_EDIT)) {&lt;br /&gt;
       //execute activity&lt;br /&gt;
   }&lt;br /&gt;
*Code it once, never needs to change again&lt;br /&gt;
*Implies policy is persisted/centralized in some way&lt;br /&gt;
*Avoid assigning permissions on a per-user basis&lt;br /&gt;
*Requires more design/work up front to get right&lt;br /&gt;
&lt;br /&gt;
==Best Practice: Centralized ACL Controller==&lt;br /&gt;
&lt;br /&gt;
*Define a centralized access controller&lt;br /&gt;
      ACLService.isAuthorized(ACTION_CONSTANT)&lt;br /&gt;
      ACLService.assertAuthorized(ACTION_CONSTANT)&lt;br /&gt;
*Access control decisions go through these simple API’s&lt;br /&gt;
*Centralized logic to drive policy behavior and persistence&lt;br /&gt;
*May contain data-driven access control policy information&lt;br /&gt;
*Policy language needs to support ability to express both access rights and prohibitions&lt;br /&gt;
&lt;br /&gt;
==Best Practice: Using a Centralized Access Controller==&lt;br /&gt;
&lt;br /&gt;
*In Presentation Layer&lt;br /&gt;
&lt;br /&gt;
       if (isAuthorized(VIEW_LOG_PANEL))&lt;br /&gt;
       {&lt;br /&gt;
          Here are the logs&lt;br /&gt;
          &amp;lt;%=getLogs();%/&amp;gt;&lt;br /&gt;
       }&lt;br /&gt;
	&lt;br /&gt;
*In Controller&lt;br /&gt;
&lt;br /&gt;
       try (assertAuthorized(DELETE_USER))&lt;br /&gt;
       {&lt;br /&gt;
          deleteUser();&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
==Best Practice: Verifying policy server-side==&lt;br /&gt;
&lt;br /&gt;
*Keep user identity verification in session&lt;br /&gt;
*Load entitlements server side from trusted sources&lt;br /&gt;
*Force authorization checks on ALL requests&lt;br /&gt;
**JS file, image, AJAX and FLASH requests as well!&lt;br /&gt;
**Force this check using a filter if possible&lt;br /&gt;
&lt;br /&gt;
=SQL Integrated Access Control=&lt;br /&gt;
&lt;br /&gt;
'''Example Feature'''&lt;br /&gt;
&lt;br /&gt;
    http://mail.example.com/viewMessage?msgid=2356342&lt;br /&gt;
&lt;br /&gt;
'''This SQL would be vulnerable to tampering'''&lt;br /&gt;
&lt;br /&gt;
  select * from messages where messageid = 2356342&lt;br /&gt;
&lt;br /&gt;
'''Ensure the owner is referenced in the query!'''&lt;br /&gt;
&lt;br /&gt;
  select * from messages where messageid = 2356342 AND messages.message_owner = &lt;br /&gt;
&lt;br /&gt;
=Access Control Positive Patterns=&lt;br /&gt;
&lt;br /&gt;
*Code to the activity, not the role&lt;br /&gt;
*Centralize access control logic&lt;br /&gt;
*Design access control as a filter&lt;br /&gt;
*Deny by default, fail securely&lt;br /&gt;
*Build centralized access control mechanism&lt;br /&gt;
*Apply same core logic to presentation and server-side access control decisions&lt;br /&gt;
*Determine access control through Server-side trusted data&lt;br /&gt;
&lt;br /&gt;
=Data Contextual Access Control=&lt;br /&gt;
&lt;br /&gt;
'''Data Contextual / Horizontal Access Control API examples'''&lt;br /&gt;
&lt;br /&gt;
    ACLService.isAuthorized(EDIT_ORG, 142)&lt;br /&gt;
    ACLService.assertAuthorized(VIEW_ORG, 900)&lt;br /&gt;
&lt;br /&gt;
Long Form&lt;br /&gt;
&lt;br /&gt;
    isAuthorized(user, EDIT_ORG, Organization.class, 14)&lt;br /&gt;
	&lt;br /&gt;
*Essentially checking if the user has the right role in the context of a specific object&lt;br /&gt;
*Centralize access control logic&lt;br /&gt;
*Protecting data at the lowest level!&lt;br /&gt;
&lt;br /&gt;
=Authors and Primary Editors=&lt;br /&gt;
&lt;br /&gt;
Jim Manico - jim [at] owasp dot org&amp;lt;br/&amp;gt;&lt;br /&gt;
Fred Donovan - fred.donovan [at] owasp dot org&amp;lt;br/&amp;gt;&lt;br /&gt;
Mennouchi Islam Azeddine - azeddine.mennouchi [at] owasp.org&lt;br /&gt;
&lt;br /&gt;
== Other Cheatsheets ==&lt;br /&gt;
{{Cheatsheet_Navigation}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Cheatsheets]]&lt;/div&gt;</summary>
		<author><name>Kcfredman</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Access_Control_Cheat_Sheet&amp;diff=125969</id>
		<title>Access Control Cheat Sheet</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Access_Control_Cheat_Sheet&amp;diff=125969"/>
				<updated>2012-03-11T20:21:43Z</updated>
		
		<summary type="html">&lt;p&gt;Kcfredman: /* Hard Coded Roles */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
&lt;br /&gt;
This article is focused on providing clear, simple, actionable guidance for providing Access Control security in your applications.&lt;br /&gt;
&lt;br /&gt;
==What is Access Control / Authorization?==&lt;br /&gt;
&lt;br /&gt;
Authorization is the process where requests to access a particular resource should be granted or denied. It should be noted that authorization is not equivalent to authentication - as these terms and their defininitions are frequently confused.&lt;br /&gt;
&lt;br /&gt;
Access Control is the method or mechanism of authorization to enfore that requests to a system resource or functionality should be granted.&lt;br /&gt;
&lt;br /&gt;
'''Role Based Access Control (RBAC)''' is commonly used to manage permissions within an application. Permissions are assigned to users in a many to many relationship.&lt;br /&gt;
&lt;br /&gt;
'''Discretioinary Access Control (DAC)''' is commonly used to manage permissions within an operating system.&lt;br /&gt;
&lt;br /&gt;
'''Mandatory Access Control (MAC)''' is a classification based system of objects and subjects. To &amp;quot;write up&amp;quot;, a subject's clearance level must be dominated by the object being written to the system. To &amp;quot;read down&amp;quot;, a subject's clearance level must govern the security level of the object being read. In this system, a subject may be able to write to an object, but will never be able to read it. This prevents malicious software from being able to leak data from different classification levels.  &amp;quot;Write up&amp;quot; prevents leakage from high to low. &lt;br /&gt;
(See the [http://csrc.nist.gov/publications/history/dod85.pdf Orange Book] for more information about classification levels and confidentiality controls in &amp;quot;DAC&amp;quot; and &amp;quot;MAC&amp;quot;.)&lt;br /&gt;
&lt;br /&gt;
=Attacks on Access Control=&lt;br /&gt;
&lt;br /&gt;
Vertical Access Control Attacks - A standard user accessing administration functionality&lt;br /&gt;
&lt;br /&gt;
Horizontal Access Control attacks - Same role, but accessing another user's private data&lt;br /&gt;
&lt;br /&gt;
Business Logic Access Control Attacks - Abuse of one or more linked activities that collectively realize a business objective&lt;br /&gt;
&lt;br /&gt;
=Access Control Issues=&lt;br /&gt;
*Many applications used the &amp;quot;All or Nothing&amp;quot; approach - Once authenticated, all users have equal privileges&lt;br /&gt;
&lt;br /&gt;
*Authorization Logic often relies on Security by Obscurity (STO) by assuming:&lt;br /&gt;
**Users will not find unlinked or hidden paths or functionality&lt;br /&gt;
**Users will not find and tamper with &amp;quot;obscured&amp;quot; client side parameters (i.e. &amp;quot;hidden&amp;quot; form fields, cookies, etc.)&lt;br /&gt;
	&lt;br /&gt;
*Applications with multiple permission levels/roles often increases the possibility of conflicting permission sets resulting in unanticipated privileges&lt;br /&gt;
&lt;br /&gt;
*Many administrative interfaces require only a password for authentication&lt;br /&gt;
*Shared accounts combined with a lack of auditing and logging make it extremely difficult to differentiate between malicious and honest administrators&lt;br /&gt;
*Administrative interfaces are often not designed as “secure” as user-level interfaces given the assumption that administrators are trusted users&lt;br /&gt;
*Authorization/Access Control relies on client-side information (e.g., hidden fields)&lt;br /&gt;
	&lt;br /&gt;
     &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;fname&amp;quot; value=&amp;quot;Derek&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;lname&amp;quot; value=&amp;quot;Jeter&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;usertype&amp;quot; value=&amp;quot;admin&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Access Control Anti-Patterns=&lt;br /&gt;
&lt;br /&gt;
*Hard-coded role checks in application code&lt;br /&gt;
*Lack of centralized access control logic&lt;br /&gt;
*Untrusted data driving access control decisions&lt;br /&gt;
*Access control that is &amp;quot;open by default&amp;quot;&lt;br /&gt;
*Lack of addressing horizontal access control in a standardized way (if at all)&lt;br /&gt;
*Access control logic that needs to be manually added to every endpoint in code&lt;br /&gt;
&lt;br /&gt;
==Hard Coded Roles==&lt;br /&gt;
&lt;br /&gt;
  if (user.isManager() ||&lt;br /&gt;
      user.isAdministrator() ||&lt;br /&gt;
      user.isEditor() ||&lt;br /&gt;
      user.isUser()) {&lt;br /&gt;
      //execute action&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
'''Hard Codes Roles can create several issues including:'''&lt;br /&gt;
&lt;br /&gt;
*Making the policy of an application difficult to &amp;quot;prove&amp;quot; for audit or Q/A purposes &lt;br /&gt;
*Causing new code to be pushed each time an access control policy needs to be changed. &lt;br /&gt;
*They are fragile and easy to make mistakes&lt;br /&gt;
&lt;br /&gt;
==Order Specific Operations==&lt;br /&gt;
&lt;br /&gt;
Imagine the following parameters&lt;br /&gt;
&lt;br /&gt;
  http://example.com/buy?action=chooseDataPackage&lt;br /&gt;
  http://example.com/buy?action=customizePackage&lt;br /&gt;
  http://example.com/buy?action=makePayment&lt;br /&gt;
  http://example.com/buy?action=downloadData&lt;br /&gt;
&lt;br /&gt;
'''Can an attacker control the sequence?'''&lt;br /&gt;
&lt;br /&gt;
'''Can an attacker abuse this with concurency?'''&lt;br /&gt;
&lt;br /&gt;
==Never Depend on Untrusted Data==&lt;br /&gt;
&lt;br /&gt;
*Never trust user data for access control decisions&lt;br /&gt;
*Never make access control decisions in JavaScript&lt;br /&gt;
*Never depend on the order of values sent from the client&lt;br /&gt;
*Never make authorization decisions based solely on&lt;br /&gt;
**hidden fields&lt;br /&gt;
**cookie values&lt;br /&gt;
**form parameters&lt;br /&gt;
**URL parameters&lt;br /&gt;
**anything else from the request&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
=Attacking Access Controls=&lt;br /&gt;
&lt;br /&gt;
*Elevation of privileges&lt;br /&gt;
*Disclosure of confidential data - Compromising admin-level accounts often result in access to a user's confidential data&lt;br /&gt;
*Data tampering - Privilege levels do not distinguish users who can only view data and users permitted to modify data&lt;br /&gt;
&lt;br /&gt;
=Testing for Broken Access Control=&lt;br /&gt;
&lt;br /&gt;
*Attempt to access administrative components or functions as an anonymous or regular user&lt;br /&gt;
**Scour HTML source for “interesting” hidden form fields&lt;br /&gt;
**Test web accessible directory structure for names like admin, administrator, manager, etc (i.e. attempt to directly browse to “restricted” areas)&lt;br /&gt;
*Determine how administrators are authenticated. Ensure that adequate authentication is used and enforced&lt;br /&gt;
*For each user role, ensure that only the appropriate pages or components are accessible for that role.&lt;br /&gt;
*Login as a low-level user, browse history for a higher level user’s cache, load the page to see if the original authorization is passed to a previous session.&lt;br /&gt;
*If able to compromise administrator-level account, test for all other common web application vulnerabilities (poor input validation, privileged database access, etc)&lt;br /&gt;
&lt;br /&gt;
=Defenses Against Access Control Attacks=&lt;br /&gt;
&lt;br /&gt;
*Implement role based access control to assign permissions to application users for vertical access control requirements&lt;br /&gt;
*Implement data-contextual access control to assign permissions to application users in the context of specific data items for horizontal access control requirements&lt;br /&gt;
*Avoid assigning permissions on a per-user basis&lt;br /&gt;
*Perform consistent authorization checking routines on all application pages&lt;br /&gt;
*Where applicable, apply DENY privileges last, issue ALLOW privileges on a case-by-case basis&lt;br /&gt;
*Where possible restrict administrator access to machines located on the local area network (i.e. it’s best to avoid remote administrator access from public facing access points)&lt;br /&gt;
*Log all failed access authorization requests to a secure location for review by administrators&lt;br /&gt;
*Perform reviews of failed login attempts on a periodic basis&lt;br /&gt;
*Utilize the strengths and functionality provided by the SSO solution you chose&lt;br /&gt;
&lt;br /&gt;
=Best Practices=&lt;br /&gt;
&lt;br /&gt;
==Best Practice: Code to the Activity==&lt;br /&gt;
&lt;br /&gt;
   if (AC.hasAccess(ARTICLE_EDIT)) {&lt;br /&gt;
       //execute activity&lt;br /&gt;
   }&lt;br /&gt;
*Code it once, never needs to change again&lt;br /&gt;
*Implies policy is persisted/centralized in some way&lt;br /&gt;
*Avoid assigning permissions on a per-user basis&lt;br /&gt;
*Requires more design/work up front to get right&lt;br /&gt;
&lt;br /&gt;
==Best Practice: Centralized ACL Controller==&lt;br /&gt;
&lt;br /&gt;
*Define a centralized access controller&lt;br /&gt;
	ACLService.isAuthorized(ACTION_CONSTANT)&lt;br /&gt;
	ACLService.assertAuthorized(ACTION_CONSTANT)&lt;br /&gt;
*Access control decisions go through these simple API’s&lt;br /&gt;
*Centralized logic to drive policy behavior and persistence&lt;br /&gt;
*May contain data-driven access control policy information&lt;br /&gt;
*Policy language needs to support ability to express both access rights and prohibitions&lt;br /&gt;
&lt;br /&gt;
==Best Practice: Using a Centralized Access Controller==&lt;br /&gt;
&lt;br /&gt;
*In Presentation Layer&lt;br /&gt;
&lt;br /&gt;
       if (isAuthorized(VIEW_LOG_PANEL))&lt;br /&gt;
       {&lt;br /&gt;
          Here are the logs&lt;br /&gt;
          &amp;lt;%=getLogs();%/&amp;gt;&lt;br /&gt;
       }&lt;br /&gt;
	&lt;br /&gt;
*In Controller&lt;br /&gt;
&lt;br /&gt;
       try (assertAuthorized(DELETE_USER))&lt;br /&gt;
       {&lt;br /&gt;
          deleteUser();&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
==Best Practice: Verifying policy server-side==&lt;br /&gt;
&lt;br /&gt;
*Keep user identity verification in session&lt;br /&gt;
*Load entitlements server side from trusted sources&lt;br /&gt;
*Force authorization checks on ALL requests&lt;br /&gt;
**JS file, image, AJAX and FLASH requests as well!&lt;br /&gt;
**Force this check using a filter if possible&lt;br /&gt;
&lt;br /&gt;
=SQL Integrated Access Control=&lt;br /&gt;
&lt;br /&gt;
'''Example Feature'''&lt;br /&gt;
&lt;br /&gt;
    http://mail.example.com/viewMessage?msgid=2356342&lt;br /&gt;
&lt;br /&gt;
'''This SQL would be vulnerable to tampering'''&lt;br /&gt;
&lt;br /&gt;
  select * from messages where messageid = 2356342&lt;br /&gt;
&lt;br /&gt;
'''Ensure the owner is referenced in the query!'''&lt;br /&gt;
&lt;br /&gt;
  select * from messages where messageid = 2356342 AND messages.message_owner = &lt;br /&gt;
&lt;br /&gt;
=Access Control Positive Patterns=&lt;br /&gt;
&lt;br /&gt;
*Code to the activity, not the role&lt;br /&gt;
*Centralize access control logic&lt;br /&gt;
*Design access control as a filter&lt;br /&gt;
*Deny by default, fail securely&lt;br /&gt;
*Build centralized access control mechanism&lt;br /&gt;
*Apply same core logic to presentation and server-side access control decisions&lt;br /&gt;
*Determine access control through Server-side trusted data&lt;br /&gt;
&lt;br /&gt;
=Data Contextual Access Control=&lt;br /&gt;
&lt;br /&gt;
'''Data Contextual / Horizontal Access Control API examples'''&lt;br /&gt;
&lt;br /&gt;
    ACLService.isAuthorized(EDIT_ORG, 142)&lt;br /&gt;
    ACLService.assertAuthorized(VIEW_ORG, 900)&lt;br /&gt;
&lt;br /&gt;
Long Form&lt;br /&gt;
&lt;br /&gt;
    isAuthorized(user, EDIT_ORG, Organization.class, 14)&lt;br /&gt;
	&lt;br /&gt;
*Essentially checking if the user has the right role in the context of a specific object&lt;br /&gt;
*Centralize access control logic&lt;br /&gt;
*Protecting data at the lowest level!&lt;br /&gt;
&lt;br /&gt;
=Authors and Primary Editors=&lt;br /&gt;
&lt;br /&gt;
Jim Manico = jim [manico] dot net&lt;br /&gt;
&lt;br /&gt;
Fred Donovan - fred.donovan [at] owasp dot org&lt;/div&gt;</summary>
		<author><name>Kcfredman</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Access_Control_Cheat_Sheet&amp;diff=125946</id>
		<title>Access Control Cheat Sheet</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Access_Control_Cheat_Sheet&amp;diff=125946"/>
				<updated>2012-03-11T19:09:27Z</updated>
		
		<summary type="html">&lt;p&gt;Kcfredman: /* Data Contextual Access Control */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
&lt;br /&gt;
This article is focused on providing clear, simple, actionable guidance for providing Access Control security in your applications.&lt;br /&gt;
&lt;br /&gt;
==What is Access Control / Authorization?==&lt;br /&gt;
&lt;br /&gt;
Authorization is the process where requests to access a particular resource should be granted or denied. It should be noted that authorization is not equivalent to authentication - as these terms and their defininitions are frequently confused.&lt;br /&gt;
&lt;br /&gt;
Access Control is the method or mechanism of authorization to enfore that requests to a system resource or functionality should be granted.&lt;br /&gt;
&lt;br /&gt;
'''Role Based Access Control (RBAC)''' is commonly used to manage permissions within an application. Permissions are assigned to users in a many to many relationship.&lt;br /&gt;
&lt;br /&gt;
'''Discretioinary Access Control (DAC)''' is commonly used to manage permissions within an operating system.&lt;br /&gt;
&lt;br /&gt;
'''Mandatory Access Control (MAC)''' is a classification based system of objects and subjects. To &amp;quot;write up&amp;quot;, a subject's clearance level must be dominated by the object being written to the system. To &amp;quot;read down&amp;quot;, a subject's clearance level must govern the security level of the object being read. In this system, a subject may be able to write to an object, but will never be able to read it. This prevents malicious software from being able to leak data from different classification levels.  &amp;quot;Write up&amp;quot; prevents leakage from high to low. &lt;br /&gt;
(See the [http://csrc.nist.gov/publications/history/dod85.pdf Orange Book] for more information about classification levels and confidentiality controls in &amp;quot;DAC&amp;quot; and &amp;quot;MAC&amp;quot;.)&lt;br /&gt;
&lt;br /&gt;
=Attacks on Access Control=&lt;br /&gt;
&lt;br /&gt;
Vertical Access Control Attacks - A standard user accessing administration functionality&lt;br /&gt;
&lt;br /&gt;
Horizontal Access Control attacks - Same role, but accessing another user's private data&lt;br /&gt;
&lt;br /&gt;
Business Logic Access Control Attacks - Abuse of one or more linked activities that collectively realize a business objective&lt;br /&gt;
&lt;br /&gt;
=Access Control Issues=&lt;br /&gt;
*Many applications used the &amp;quot;All or Nothing&amp;quot; approach - Once authenticated, all users have equal privileges&lt;br /&gt;
&lt;br /&gt;
*Authorization Logic often relies on Security by Obscurity (STO) by assuming:&lt;br /&gt;
**Users will not find unlinked or hidden paths or functionality&lt;br /&gt;
**Users will not find and tamper with &amp;quot;obscured&amp;quot; client side parameters (i.e. &amp;quot;hidden&amp;quot; form fields, cookies, etc.)&lt;br /&gt;
	&lt;br /&gt;
*Applications with multiple permission levels/roles often increases the possibility of conflicting permission sets resulting in unanticipated privileges&lt;br /&gt;
&lt;br /&gt;
*Many administrative interfaces require only a password for authentication&lt;br /&gt;
*Shared accounts combined with a lack of auditing and logging make it extremely difficult to differentiate between malicious and honest administrators&lt;br /&gt;
*Administrative interfaces are often not designed as “secure” as user-level interfaces given the assumption that administrators are trusted users&lt;br /&gt;
*Authorization/Access Control relies on client-side information (e.g., hidden fields)&lt;br /&gt;
	&lt;br /&gt;
     &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;fname&amp;quot; value=&amp;quot;Derek&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;lname&amp;quot; value=&amp;quot;Jeter&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;usertype&amp;quot; value=&amp;quot;admin&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Access Control Anti-Patterns=&lt;br /&gt;
&lt;br /&gt;
*Hard-coded role checks in application code&lt;br /&gt;
*Lack of centralized access control logic&lt;br /&gt;
*Untrusted data driving access control decisions&lt;br /&gt;
*Access control that is &amp;quot;open by default&amp;quot;&lt;br /&gt;
*Lack of addressing horizontal access control in a standardized way (if at all)&lt;br /&gt;
*Access control logic that needs to be manually added to every endpoint in code&lt;br /&gt;
&lt;br /&gt;
==Hard Coded Roles==&lt;br /&gt;
&lt;br /&gt;
  if (user.isManager() ||&lt;br /&gt;
      user.isAdministrator() ||&lt;br /&gt;
      user.isEditor() ||&lt;br /&gt;
      user.isUser()) {&lt;br /&gt;
      //execute action&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
'''Hard Codes Roles can create several issues including:'''&lt;br /&gt;
&lt;br /&gt;
*Making the policy of an application difficult to &amp;quot;prove&amp;quot; for audit or Q/A purposes &lt;br /&gt;
*Causing new code to be pushed each time an access control policy needs to be changed. &lt;br /&gt;
*They are fragile and easy to make mistakes Order Specific Operations&lt;br /&gt;
&lt;br /&gt;
==Order Specific Operations==&lt;br /&gt;
&lt;br /&gt;
Imagine the following parameters&lt;br /&gt;
&lt;br /&gt;
  http://example.com/buy?action=chooseDataPackage&lt;br /&gt;
  http://example.com/buy?action=customizePackage&lt;br /&gt;
  http://example.com/buy?action=makePayment&lt;br /&gt;
  http://example.com/buy?action=downloadData&lt;br /&gt;
&lt;br /&gt;
'''Can an attacker control the sequence?'''&lt;br /&gt;
&lt;br /&gt;
'''Can an attacker abuse this with concurency?'''&lt;br /&gt;
&lt;br /&gt;
==Never Depend on Untrusted Data==&lt;br /&gt;
&lt;br /&gt;
*Never trust user data for access control decisions&lt;br /&gt;
*Never make access control decisions in JavaScript&lt;br /&gt;
*Never depend on the order of values sent from the client&lt;br /&gt;
*Never make authorization decisions based solely on&lt;br /&gt;
**hidden fields&lt;br /&gt;
**cookie values&lt;br /&gt;
**form parameters&lt;br /&gt;
**URL parameters&lt;br /&gt;
**anything else from the request&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
=Attacking Access Controls=&lt;br /&gt;
&lt;br /&gt;
*Elevation of privileges&lt;br /&gt;
*Disclosure of confidential data - Compromising admin-level accounts often result in access to a user's confidential data&lt;br /&gt;
*Data tampering - Privilege levels do not distinguish users who can only view data and users permitted to modify data&lt;br /&gt;
&lt;br /&gt;
=Testing for Broken Access Control=&lt;br /&gt;
&lt;br /&gt;
*Attempt to access administrative components or functions as an anonymous or regular user&lt;br /&gt;
**Scour HTML source for “interesting” hidden form fields&lt;br /&gt;
**Test web accessible directory structure for names like admin, administrator, manager, etc (i.e. attempt to directly browse to “restricted” areas)&lt;br /&gt;
*Determine how administrators are authenticated. Ensure that adequate authentication is used and enforced&lt;br /&gt;
*For each user role, ensure that only the appropriate pages or components are accessible for that role.&lt;br /&gt;
*Login as a low-level user, browse history for a higher level user’s cache, load the page to see if the original authorization is passed to a previous session.&lt;br /&gt;
*If able to compromise administrator-level account, test for all other common web application vulnerabilities (poor input validation, privileged database access, etc)&lt;br /&gt;
&lt;br /&gt;
=Defenses Against Access Control Attacks=&lt;br /&gt;
&lt;br /&gt;
*Implement role based access control to assign permissions to application users for vertical access control requirements&lt;br /&gt;
*Implement data-contextual access control to assign permissions to application users in the context of specific data items for horizontal access control requirements&lt;br /&gt;
*Avoid assigning permissions on a per-user basis&lt;br /&gt;
*Perform consistent authorization checking routines on all application pages&lt;br /&gt;
*Where applicable, apply DENY privileges last, issue ALLOW privileges on a case-by-case basis&lt;br /&gt;
*Where possible restrict administrator access to machines located on the local area network (i.e. it’s best to avoid remote administrator access from public facing access points)&lt;br /&gt;
*Log all failed access authorization requests to a secure location for review by administrators&lt;br /&gt;
*Perform reviews of failed login attempts on a periodic basis&lt;br /&gt;
*Utilize the strengths and functionality provided by the SSO solution you chose&lt;br /&gt;
&lt;br /&gt;
=Best Practices=&lt;br /&gt;
&lt;br /&gt;
==Best Practice: Code to the Activity==&lt;br /&gt;
&lt;br /&gt;
   if (AC.hasAccess(ARTICLE_EDIT)) {&lt;br /&gt;
       //execute activity&lt;br /&gt;
   }&lt;br /&gt;
*Code it once, never needs to change again&lt;br /&gt;
*Implies policy is persisted/centralized in some way&lt;br /&gt;
*Avoid assigning permissions on a per-user basis&lt;br /&gt;
*Requires more design/work up front to get right&lt;br /&gt;
&lt;br /&gt;
==Best Practice: Centralized ACL Controller==&lt;br /&gt;
&lt;br /&gt;
*Define a centralized access controller&lt;br /&gt;
	ACLService.isAuthorized(ACTION_CONSTANT)&lt;br /&gt;
	ACLService.assertAuthorized(ACTION_CONSTANT)&lt;br /&gt;
*Access control decisions go through these simple API’s&lt;br /&gt;
*Centralized logic to drive policy behavior and persistence&lt;br /&gt;
*May contain data-driven access control policy information&lt;br /&gt;
*Policy language needs to support ability to express both access rights and prohibitions&lt;br /&gt;
&lt;br /&gt;
==Best Practice: Using a Centralized Access Controller==&lt;br /&gt;
&lt;br /&gt;
*In Presentation Layer&lt;br /&gt;
&lt;br /&gt;
       if (isAuthorized(VIEW_LOG_PANEL))&lt;br /&gt;
       {&lt;br /&gt;
          Here are the logs&lt;br /&gt;
          &amp;lt;%=getLogs();%/&amp;gt;&lt;br /&gt;
       }&lt;br /&gt;
	&lt;br /&gt;
*In Controller&lt;br /&gt;
&lt;br /&gt;
       try (assertAuthorized(DELETE_USER))&lt;br /&gt;
       {&lt;br /&gt;
          deleteUser();&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
==Best Practice: Verifying policy server-side==&lt;br /&gt;
&lt;br /&gt;
*Keep user identity verification in session&lt;br /&gt;
*Load entitlements server side from trusted sources&lt;br /&gt;
*Force authorization checks on ALL requests&lt;br /&gt;
**JS file, image, AJAX and FLASH requests as well!&lt;br /&gt;
**Force this check using a filter if possible&lt;br /&gt;
&lt;br /&gt;
=SQL Integrated Access Control=&lt;br /&gt;
&lt;br /&gt;
'''Example Feature'''&lt;br /&gt;
&lt;br /&gt;
    http://mail.example.com/viewMessage?msgid=2356342&lt;br /&gt;
&lt;br /&gt;
'''This SQL would be vulnerable to tampering'''&lt;br /&gt;
&lt;br /&gt;
  select * from messages where messageid = 2356342&lt;br /&gt;
&lt;br /&gt;
'''Ensure the owner is referenced in the query!'''&lt;br /&gt;
&lt;br /&gt;
  select * from messages where messageid = 2356342 AND messages.message_owner = &lt;br /&gt;
&lt;br /&gt;
=Access Control Positive Patterns=&lt;br /&gt;
&lt;br /&gt;
*Code to the activity, not the role&lt;br /&gt;
*Centralize access control logic&lt;br /&gt;
*Design access control as a filter&lt;br /&gt;
*Deny by default, fail securely&lt;br /&gt;
*Build centralized access control mechanism&lt;br /&gt;
*Apply same core logic to presentation and server-side access control decisions&lt;br /&gt;
*Determine access control through Server-side trusted data&lt;br /&gt;
&lt;br /&gt;
=Data Contextual Access Control=&lt;br /&gt;
&lt;br /&gt;
'''Data Contextual / Horizontal Access Control API examples'''&lt;br /&gt;
&lt;br /&gt;
    ACLService.isAuthorized(EDIT_ORG, 142)&lt;br /&gt;
    ACLService.assertAuthorized(VIEW_ORG, 900)&lt;br /&gt;
&lt;br /&gt;
Long Form&lt;br /&gt;
&lt;br /&gt;
    isAuthorized(user, EDIT_ORG, Organization.class, 14)&lt;br /&gt;
	&lt;br /&gt;
*Essentially checking if the user has the right role in the context of a specific object&lt;br /&gt;
*Centralize access control logic&lt;br /&gt;
*Protecting data at the lowest level!&lt;br /&gt;
&lt;br /&gt;
=Authors and Primary Editors=&lt;br /&gt;
&lt;br /&gt;
Jim Manico = jim [manico] dot net&lt;br /&gt;
&lt;br /&gt;
Fred Donovan - fred.donovan [at] owasp dot org&lt;/div&gt;</summary>
		<author><name>Kcfredman</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Access_Control_Cheat_Sheet&amp;diff=125945</id>
		<title>Access Control Cheat Sheet</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Access_Control_Cheat_Sheet&amp;diff=125945"/>
				<updated>2012-03-11T19:04:47Z</updated>
		
		<summary type="html">&lt;p&gt;Kcfredman: /* What is Access Control / Authorization? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
&lt;br /&gt;
This article is focused on providing clear, simple, actionable guidance for providing Access Control security in your applications.&lt;br /&gt;
&lt;br /&gt;
==What is Access Control / Authorization?==&lt;br /&gt;
&lt;br /&gt;
Authorization is the process where requests to access a particular resource should be granted or denied. It should be noted that authorization is not equivalent to authentication - as these terms and their defininitions are frequently confused.&lt;br /&gt;
&lt;br /&gt;
Access Control is the method or mechanism of authorization to enfore that requests to a system resource or functionality should be granted.&lt;br /&gt;
&lt;br /&gt;
'''Role Based Access Control (RBAC)''' is commonly used to manage permissions within an application. Permissions are assigned to users in a many to many relationship.&lt;br /&gt;
&lt;br /&gt;
'''Discretioinary Access Control (DAC)''' is commonly used to manage permissions within an operating system.&lt;br /&gt;
&lt;br /&gt;
'''Mandatory Access Control (MAC)''' is a classification based system of objects and subjects. To &amp;quot;write up&amp;quot;, a subject's clearance level must be dominated by the object being written to the system. To &amp;quot;read down&amp;quot;, a subject's clearance level must govern the security level of the object being read. In this system, a subject may be able to write to an object, but will never be able to read it. This prevents malicious software from being able to leak data from different classification levels.  &amp;quot;Write up&amp;quot; prevents leakage from high to low. &lt;br /&gt;
(See the [http://csrc.nist.gov/publications/history/dod85.pdf Orange Book] for more information about classification levels and confidentiality controls in &amp;quot;DAC&amp;quot; and &amp;quot;MAC&amp;quot;.)&lt;br /&gt;
&lt;br /&gt;
=Attacks on Access Control=&lt;br /&gt;
&lt;br /&gt;
Vertical Access Control Attacks - A standard user accessing administration functionality&lt;br /&gt;
&lt;br /&gt;
Horizontal Access Control attacks - Same role, but accessing another user's private data&lt;br /&gt;
&lt;br /&gt;
Business Logic Access Control Attacks - Abuse of one or more linked activities that collectively realize a business objective&lt;br /&gt;
&lt;br /&gt;
=Access Control Issues=&lt;br /&gt;
*Many applications used the &amp;quot;All or Nothing&amp;quot; approach - Once authenticated, all users have equal privileges&lt;br /&gt;
&lt;br /&gt;
*Authorization Logic often relies on Security by Obscurity (STO) by assuming:&lt;br /&gt;
**Users will not find unlinked or hidden paths or functionality&lt;br /&gt;
**Users will not find and tamper with &amp;quot;obscured&amp;quot; client side parameters (i.e. &amp;quot;hidden&amp;quot; form fields, cookies, etc.)&lt;br /&gt;
	&lt;br /&gt;
*Applications with multiple permission levels/roles often increases the possibility of conflicting permission sets resulting in unanticipated privileges&lt;br /&gt;
&lt;br /&gt;
*Many administrative interfaces require only a password for authentication&lt;br /&gt;
*Shared accounts combined with a lack of auditing and logging make it extremely difficult to differentiate between malicious and honest administrators&lt;br /&gt;
*Administrative interfaces are often not designed as “secure” as user-level interfaces given the assumption that administrators are trusted users&lt;br /&gt;
*Authorization/Access Control relies on client-side information (e.g., hidden fields)&lt;br /&gt;
	&lt;br /&gt;
     &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;fname&amp;quot; value=&amp;quot;Derek&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;lname&amp;quot; value=&amp;quot;Jeter&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;usertype&amp;quot; value=&amp;quot;admin&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Access Control Anti-Patterns=&lt;br /&gt;
&lt;br /&gt;
*Hard-coded role checks in application code&lt;br /&gt;
*Lack of centralized access control logic&lt;br /&gt;
*Untrusted data driving access control decisions&lt;br /&gt;
*Access control that is &amp;quot;open by default&amp;quot;&lt;br /&gt;
*Lack of addressing horizontal access control in a standardized way (if at all)&lt;br /&gt;
*Access control logic that needs to be manually added to every endpoint in code&lt;br /&gt;
&lt;br /&gt;
==Hard Coded Roles==&lt;br /&gt;
&lt;br /&gt;
  if (user.isManager() ||&lt;br /&gt;
      user.isAdministrator() ||&lt;br /&gt;
      user.isEditor() ||&lt;br /&gt;
      user.isUser()) {&lt;br /&gt;
      //execute action&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
'''Hard Codes Roles can create several issues including:'''&lt;br /&gt;
&lt;br /&gt;
*Making the policy of an application difficult to &amp;quot;prove&amp;quot; for audit or Q/A purposes &lt;br /&gt;
*Causing new code to be pushed each time an access control policy needs to be changed. &lt;br /&gt;
*They are fragile and easy to make mistakes Order Specific Operations&lt;br /&gt;
&lt;br /&gt;
==Order Specific Operations==&lt;br /&gt;
&lt;br /&gt;
Imagine the following parameters&lt;br /&gt;
&lt;br /&gt;
  http://example.com/buy?action=chooseDataPackage&lt;br /&gt;
  http://example.com/buy?action=customizePackage&lt;br /&gt;
  http://example.com/buy?action=makePayment&lt;br /&gt;
  http://example.com/buy?action=downloadData&lt;br /&gt;
&lt;br /&gt;
'''Can an attacker control the sequence?'''&lt;br /&gt;
&lt;br /&gt;
'''Can an attacker abuse this with concurency?'''&lt;br /&gt;
&lt;br /&gt;
==Never Depend on Untrusted Data==&lt;br /&gt;
&lt;br /&gt;
*Never trust user data for access control decisions&lt;br /&gt;
*Never make access control decisions in JavaScript&lt;br /&gt;
*Never depend on the order of values sent from the client&lt;br /&gt;
*Never make authorization decisions based solely on&lt;br /&gt;
**hidden fields&lt;br /&gt;
**cookie values&lt;br /&gt;
**form parameters&lt;br /&gt;
**URL parameters&lt;br /&gt;
**anything else from the request&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
=Attacking Access Controls=&lt;br /&gt;
&lt;br /&gt;
*Elevation of privileges&lt;br /&gt;
*Disclosure of confidential data - Compromising admin-level accounts often result in access to a user's confidential data&lt;br /&gt;
*Data tampering - Privilege levels do not distinguish users who can only view data and users permitted to modify data&lt;br /&gt;
&lt;br /&gt;
=Testing for Broken Access Control=&lt;br /&gt;
&lt;br /&gt;
*Attempt to access administrative components or functions as an anonymous or regular user&lt;br /&gt;
**Scour HTML source for “interesting” hidden form fields&lt;br /&gt;
**Test web accessible directory structure for names like admin, administrator, manager, etc (i.e. attempt to directly browse to “restricted” areas)&lt;br /&gt;
*Determine how administrators are authenticated. Ensure that adequate authentication is used and enforced&lt;br /&gt;
*For each user role, ensure that only the appropriate pages or components are accessible for that role.&lt;br /&gt;
*Login as a low-level user, browse history for a higher level user’s cache, load the page to see if the original authorization is passed to a previous session.&lt;br /&gt;
*If able to compromise administrator-level account, test for all other common web application vulnerabilities (poor input validation, privileged database access, etc)&lt;br /&gt;
&lt;br /&gt;
=Defenses Against Access Control Attacks=&lt;br /&gt;
&lt;br /&gt;
*Implement role based access control to assign permissions to application users for vertical access control requirements&lt;br /&gt;
*Implement data-contextual access control to assign permissions to application users in the context of specific data items for horizontal access control requirements&lt;br /&gt;
*Avoid assigning permissions on a per-user basis&lt;br /&gt;
*Perform consistent authorization checking routines on all application pages&lt;br /&gt;
*Where applicable, apply DENY privileges last, issue ALLOW privileges on a case-by-case basis&lt;br /&gt;
*Where possible restrict administrator access to machines located on the local area network (i.e. it’s best to avoid remote administrator access from public facing access points)&lt;br /&gt;
*Log all failed access authorization requests to a secure location for review by administrators&lt;br /&gt;
*Perform reviews of failed login attempts on a periodic basis&lt;br /&gt;
*Utilize the strengths and functionality provided by the SSO solution you chose&lt;br /&gt;
&lt;br /&gt;
=Best Practices=&lt;br /&gt;
&lt;br /&gt;
==Best Practice: Code to the Activity==&lt;br /&gt;
&lt;br /&gt;
   if (AC.hasAccess(ARTICLE_EDIT)) {&lt;br /&gt;
       //execute activity&lt;br /&gt;
   }&lt;br /&gt;
*Code it once, never needs to change again&lt;br /&gt;
*Implies policy is persisted/centralized in some way&lt;br /&gt;
*Avoid assigning permissions on a per-user basis&lt;br /&gt;
*Requires more design/work up front to get right&lt;br /&gt;
&lt;br /&gt;
==Best Practice: Centralized ACL Controller==&lt;br /&gt;
&lt;br /&gt;
*Define a centralized access controller&lt;br /&gt;
	ACLService.isAuthorized(ACTION_CONSTANT)&lt;br /&gt;
	ACLService.assertAuthorized(ACTION_CONSTANT)&lt;br /&gt;
*Access control decisions go through these simple API’s&lt;br /&gt;
*Centralized logic to drive policy behavior and persistence&lt;br /&gt;
*May contain data-driven access control policy information&lt;br /&gt;
*Policy language needs to support ability to express both access rights and prohibitions&lt;br /&gt;
&lt;br /&gt;
==Best Practice: Using a Centralized Access Controller==&lt;br /&gt;
&lt;br /&gt;
*In Presentation Layer&lt;br /&gt;
&lt;br /&gt;
       if (isAuthorized(VIEW_LOG_PANEL))&lt;br /&gt;
       {&lt;br /&gt;
          Here are the logs&lt;br /&gt;
          &amp;lt;%=getLogs();%/&amp;gt;&lt;br /&gt;
       }&lt;br /&gt;
	&lt;br /&gt;
*In Controller&lt;br /&gt;
&lt;br /&gt;
       try (assertAuthorized(DELETE_USER))&lt;br /&gt;
       {&lt;br /&gt;
          deleteUser();&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
==Best Practice: Verifying policy server-side==&lt;br /&gt;
&lt;br /&gt;
*Keep user identity verification in session&lt;br /&gt;
*Load entitlements server side from trusted sources&lt;br /&gt;
*Force authorization checks on ALL requests&lt;br /&gt;
**JS file, image, AJAX and FLASH requests as well!&lt;br /&gt;
**Force this check using a filter if possible&lt;br /&gt;
&lt;br /&gt;
=SQL Integrated Access Control=&lt;br /&gt;
&lt;br /&gt;
'''Example Feature'''&lt;br /&gt;
&lt;br /&gt;
    http://mail.example.com/viewMessage?msgid=2356342&lt;br /&gt;
&lt;br /&gt;
'''This SQL would be vulnerable to tampering'''&lt;br /&gt;
&lt;br /&gt;
  select * from messages where messageid = 2356342&lt;br /&gt;
&lt;br /&gt;
'''Ensure the owner is referenced in the query!'''&lt;br /&gt;
&lt;br /&gt;
  select * from messages where messageid = 2356342 AND messages.message_owner = &lt;br /&gt;
&lt;br /&gt;
=Access Control Positive Patterns=&lt;br /&gt;
&lt;br /&gt;
*Code to the activity, not the role&lt;br /&gt;
*Centralize access control logic&lt;br /&gt;
*Design access control as a filter&lt;br /&gt;
*Deny by default, fail securely&lt;br /&gt;
*Build centralized access control mechanism&lt;br /&gt;
*Apply same core logic to presentation and server-side access control decisions&lt;br /&gt;
*Determine access control through Server-side trusted data&lt;br /&gt;
&lt;br /&gt;
=Data Contextual Access Control=&lt;br /&gt;
&lt;br /&gt;
'''Data Contextual / Horizontal Access Control API examples'''&lt;br /&gt;
&lt;br /&gt;
    ACLService.isAuthorized(EDIT_ORG, 142)&lt;br /&gt;
    ACLService.assertAuthorized(VIEW_ORG, 900)&lt;br /&gt;
&lt;br /&gt;
Long Form&lt;br /&gt;
&lt;br /&gt;
    isAuthorized(user, EDIT_ORG, Organization.class, 14)&lt;br /&gt;
	&lt;br /&gt;
*Essentially checking if the user has the right role in the context of a specific object&lt;br /&gt;
*Centralize access control logic&lt;br /&gt;
*Protecting data a the lowest level!&lt;br /&gt;
&lt;br /&gt;
=Authors and Primary Editors=&lt;br /&gt;
&lt;br /&gt;
Jim Manico = jim [manico] dot net&lt;br /&gt;
&lt;br /&gt;
Fred Donovan - fred.donovan [at] owasp dot org&lt;/div&gt;</summary>
		<author><name>Kcfredman</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Access_Control_Cheat_Sheet&amp;diff=125935</id>
		<title>Access Control Cheat Sheet</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Access_Control_Cheat_Sheet&amp;diff=125935"/>
				<updated>2012-03-11T18:21:03Z</updated>
		
		<summary type="html">&lt;p&gt;Kcfredman: /* Access Control Issues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
&lt;br /&gt;
This article is focused on providing clear, simple, actionable guidance for providing Access Control security in your applications.&lt;br /&gt;
&lt;br /&gt;
==What is Access Control / Authorization?==&lt;br /&gt;
&lt;br /&gt;
Authorization is the process where requests to access a particular resource should be granted or denied. It should be noted that authorization is not equivalent to authentication - as these terms and their defininitions are frequently confused.&lt;br /&gt;
&lt;br /&gt;
Access Control is the method or mechanism of authorization to enfore that requests to a system resource or functionality should be granted.&lt;br /&gt;
&lt;br /&gt;
'''Role Based Access Control (RBAC)''' is commonly used to manage permissions within an application. Permissions are assigned to users in a many to many relationship.&lt;br /&gt;
&lt;br /&gt;
'''Discretioinary Access Control (DAC)''' is commonly used to manage permissions within an application.&lt;br /&gt;
&lt;br /&gt;
'''Mandatory Access Control (MAC)''' is a classification based system of objects and subjects. To &amp;quot;write up&amp;quot;, a subject's clearance level must be&lt;br /&gt;
&lt;br /&gt;
=Attacks on Access Control=&lt;br /&gt;
&lt;br /&gt;
Vertical Access Control Attacks - A standard user accessing administration functionality&lt;br /&gt;
&lt;br /&gt;
Horizontal Access Control attacks - Same role, but accessing another user's private data&lt;br /&gt;
&lt;br /&gt;
Business Logic Access Control Attacks - Abuse of one or more linked activities that collectively realize a business objective&lt;br /&gt;
&lt;br /&gt;
=Access Control Issues=&lt;br /&gt;
*Many applications used the &amp;quot;All or Nothing&amp;quot; approach - Once authenticated, all users have equal privileges&lt;br /&gt;
&lt;br /&gt;
*Authorization Logic often relies on Security by Obscurity (STO) by assuming:&lt;br /&gt;
**Users will not find unlinked or hidden paths or functionality&lt;br /&gt;
**Users will not find and tamper with &amp;quot;obscured&amp;quot; client side parameters (i.e. &amp;quot;hidden&amp;quot; form fields, cookies, etc.)&lt;br /&gt;
	&lt;br /&gt;
*Applications with multiple permission levels/roles often increases the possibility of conflicting permission sets resulting in unanticipated privileges&lt;br /&gt;
&lt;br /&gt;
*Many administrative interfaces require only a password for authentication&lt;br /&gt;
*Shared accounts combined with a lack of auditing and logging make it extremely difficult to differentiate between malicious and honest administrators&lt;br /&gt;
*Administrative interfaces are often not designed as “secure” as user-level interfaces given the assumption that administrators are trusted users&lt;br /&gt;
*Authorization/Access Control relies on client-side information (e.g., hidden fields)&lt;br /&gt;
	&lt;br /&gt;
     &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;fname&amp;quot; value=&amp;quot;Derek&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;lname&amp;quot; value=&amp;quot;Jeter&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;usertype&amp;quot; value=&amp;quot;admin&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Access Control Anti-Patterns=&lt;br /&gt;
&lt;br /&gt;
*Hard-coded role checks in application code&lt;br /&gt;
*Lack of centralized access control logic&lt;br /&gt;
*Untrusted data driving access control decisions&lt;br /&gt;
*Access control that is &amp;quot;open by default&amp;quot;&lt;br /&gt;
*Lack of addressing horizontal access control in a standardized way (if at all)&lt;br /&gt;
*Access control logic that needs to be manually added to every endpoint in code&lt;br /&gt;
&lt;br /&gt;
==Hard Coded Roles==&lt;br /&gt;
&lt;br /&gt;
  if (user.isManager() ||&lt;br /&gt;
      user.isAdministrator() ||&lt;br /&gt;
      user.isEditor() ||&lt;br /&gt;
      user.isUser()) {&lt;br /&gt;
      //execute action&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
'''Hard Codes Roles can create several issues including:'''&lt;br /&gt;
&lt;br /&gt;
*Making the policy of an application difficult to &amp;quot;prove&amp;quot; for audit or Q/A purposes &lt;br /&gt;
*Causing new code to be pushed each time an access control policy needs to be changed. &lt;br /&gt;
*They are fragile and easy to make mistakes Order Specific Operations&lt;br /&gt;
&lt;br /&gt;
==Order Specific Operations==&lt;br /&gt;
&lt;br /&gt;
Imagine the following parameters&lt;br /&gt;
&lt;br /&gt;
  http://example.com/buy?action=chooseDataPackage&lt;br /&gt;
  http://example.com/buy?action=customizePackage&lt;br /&gt;
  http://example.com/buy?action=makePayment&lt;br /&gt;
  http://example.com/buy?action=downloadData&lt;br /&gt;
&lt;br /&gt;
'''Can an attacker control the sequence?'''&lt;br /&gt;
&lt;br /&gt;
'''Can an attacker abuse this with concurency?'''&lt;br /&gt;
&lt;br /&gt;
==Never Depend on Untrusted Data==&lt;br /&gt;
&lt;br /&gt;
*Never trust user data for access control decisions&lt;br /&gt;
*Never make access control decisions in JavaScript&lt;br /&gt;
*Never depend on the order of values sent from the client&lt;br /&gt;
*Never make authorization decisions based solely on&lt;br /&gt;
**hidden fields&lt;br /&gt;
**cookie values&lt;br /&gt;
**form parameters&lt;br /&gt;
**URL parameters&lt;br /&gt;
**anything else from the request&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
=Attacking Access Controls=&lt;br /&gt;
&lt;br /&gt;
*Elevation of privileges&lt;br /&gt;
*Disclosure of confidential data - Compromising admin-level accounts often result in access to a user's confidential data&lt;br /&gt;
*Data tampering - Privilege levels do not distinguish users who can only view data and users permitted to modify data&lt;br /&gt;
&lt;br /&gt;
=Testing for Broken Access Control=&lt;br /&gt;
&lt;br /&gt;
*Attempt to access administrative components or functions as an anonymous or regular user&lt;br /&gt;
**Scour HTML source for “interesting” hidden form fields&lt;br /&gt;
**Test web accessible directory structure for names like admin, administrator, manager, etc (i.e. attempt to directly browse to “restricted” areas)&lt;br /&gt;
*Determine how administrators are authenticated. Ensure that adequate authentication is used and enforced&lt;br /&gt;
*For each user role, ensure that only the appropriate pages or components are accessible for that role.&lt;br /&gt;
*Login as a low-level user, browse history for a higher level user’s cache, load the page to see if the original authorization is passed to a previous session.&lt;br /&gt;
*If able to compromise administrator-level account, test for all other common web application vulnerabilities (poor input validation, privileged database access, etc)&lt;br /&gt;
&lt;br /&gt;
=Defenses Against Access Control Attacks=&lt;br /&gt;
&lt;br /&gt;
*Implement role based access control to assign permissions to application users for vertical access control requirements&lt;br /&gt;
*Implement data-contextual access control to assign permissions to application users in the context of specific data items for horizontal access control requirements&lt;br /&gt;
*Avoid assigning permissions on a per-user basis&lt;br /&gt;
*Perform consistent authorization checking routines on all application pages&lt;br /&gt;
*Where applicable, apply DENY privileges last, issue ALLOW privileges on a case-by-case basis&lt;br /&gt;
*Where possible restrict administrator access to machines located on the local area network (i.e. it’s best to avoid remote administrator access from public facing access points)&lt;br /&gt;
*Log all failed access authorization requests to a secure location for review by administrators&lt;br /&gt;
*Perform reviews of failed login attempts on a periodic basis&lt;br /&gt;
*Utilize the strengths and functionality provided by the SSO solution you chose&lt;br /&gt;
&lt;br /&gt;
=Best Practices=&lt;br /&gt;
&lt;br /&gt;
==Best Practice: Code to the Activity==&lt;br /&gt;
&lt;br /&gt;
   if (AC.hasAccess(ARTICLE_EDIT)) {&lt;br /&gt;
       //execute activity&lt;br /&gt;
   }&lt;br /&gt;
*Code it once, never needs to change again&lt;br /&gt;
*Implies policy is persisted/centralized in some way&lt;br /&gt;
*Avoid assigning permissions on a per-user basis&lt;br /&gt;
*Requires more design/work up front to get right&lt;br /&gt;
&lt;br /&gt;
==Best Practice: Centralized ACL Controller==&lt;br /&gt;
&lt;br /&gt;
*Define a centralized access controller&lt;br /&gt;
	ACLService.isAuthorized(ACTION_CONSTANT)&lt;br /&gt;
	ACLService.assertAuthorized(ACTION_CONSTANT)&lt;br /&gt;
*Access control decisions go through these simple API’s&lt;br /&gt;
*Centralized logic to drive policy behavior and persistence&lt;br /&gt;
*May contain data-driven access control policy information&lt;br /&gt;
*Policy language needs to support ability to express both access rights and prohibitions&lt;br /&gt;
&lt;br /&gt;
==Best Practice: Using a Centralized Access Controller==&lt;br /&gt;
&lt;br /&gt;
*In Presentation Layer&lt;br /&gt;
&lt;br /&gt;
       if (isAuthorized(VIEW_LOG_PANEL))&lt;br /&gt;
       {&lt;br /&gt;
          Here are the logs&lt;br /&gt;
          &amp;lt;%=getLogs();%/&amp;gt;&lt;br /&gt;
       }&lt;br /&gt;
	&lt;br /&gt;
*In Controller&lt;br /&gt;
&lt;br /&gt;
       try (assertAuthorized(DELETE_USER))&lt;br /&gt;
       {&lt;br /&gt;
          deleteUser();&lt;br /&gt;
       }&lt;br /&gt;
&lt;br /&gt;
==Best Practice: Verifying policy server-side==&lt;br /&gt;
&lt;br /&gt;
*Keep user identity verification in session&lt;br /&gt;
*Load entitlements server side from trusted sources&lt;br /&gt;
*Force authorization checks on ALL requests&lt;br /&gt;
**JS file, image, AJAX and FLASH requests as well!&lt;br /&gt;
**Force this check using a filter if possible&lt;br /&gt;
&lt;br /&gt;
=SQL Integrated Access Control=&lt;br /&gt;
&lt;br /&gt;
'''Example Feature'''&lt;br /&gt;
&lt;br /&gt;
    http://mail.example.com/viewMessage?msgid=2356342&lt;br /&gt;
&lt;br /&gt;
'''This SQL would be vulnerable to tampering'''&lt;br /&gt;
&lt;br /&gt;
  select * from messages where messageid = 2356342&lt;br /&gt;
&lt;br /&gt;
'''Ensure the owner is referenced in the query!'''&lt;br /&gt;
&lt;br /&gt;
  select * from messages where messageid = 2356342 AND messages.message_owner = &lt;br /&gt;
&lt;br /&gt;
=Access Control Positive Patterns=&lt;br /&gt;
&lt;br /&gt;
*Code to the activity, not the role&lt;br /&gt;
*Centralize access control logic&lt;br /&gt;
*Design access control as a filter&lt;br /&gt;
*Deny by default, fail securely&lt;br /&gt;
*Build centralized access control mechanism&lt;br /&gt;
*Apply same core logic to presentation and server-side access control decisions&lt;br /&gt;
*Determine access control through Server-side trusted data&lt;br /&gt;
&lt;br /&gt;
=Data Contextual Access Control=&lt;br /&gt;
&lt;br /&gt;
'''Data Contextual / Horizontal Access Control API examples'''&lt;br /&gt;
&lt;br /&gt;
    ACLService.isAuthorized(EDIT_ORG, 142)&lt;br /&gt;
    ACLService.assertAuthorized(VIEW_ORG, 900)&lt;br /&gt;
&lt;br /&gt;
Long Form&lt;br /&gt;
&lt;br /&gt;
    isAuthorized(user, EDIT_ORG, Organization.class, 14)&lt;br /&gt;
	&lt;br /&gt;
*Essentially checking if the user has the right role in the context of a specific object&lt;br /&gt;
*Centralize access control logic&lt;br /&gt;
*Protecting data a the lowest level!&lt;br /&gt;
&lt;br /&gt;
=Authors and Primary Editors=&lt;br /&gt;
&lt;br /&gt;
Jim Manico = jim [manico] dot net&lt;br /&gt;
&lt;br /&gt;
Fred Donovan - fred.donovan [at] owasp dot org&lt;/div&gt;</summary>
		<author><name>Kcfredman</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Cryptographic_Storage_Cheat_Sheet&amp;diff=114852</id>
		<title>Cryptographic Storage Cheat Sheet</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Cryptographic_Storage_Cheat_Sheet&amp;diff=114852"/>
				<updated>2011-07-30T08:25:48Z</updated>
		
		<summary type="html">&lt;p&gt;Kcfredman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction  =&lt;br /&gt;
&lt;br /&gt;
This article provides a simple model to follow when implementing solutions for data at rest.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Architectural Decision  ==&lt;br /&gt;
&lt;br /&gt;
An architectural decision must be made to determine the appropriate method to protect data at rest.  There are such wide varieties of products, methods and mechanisms for cryptographic storage. This cheat sheet will only focus on low-level guidelines for developers and architects who are implementing cryptographic solutions. We will not address specific vendor solutions, nor will we address the design of cryptographic algorithms.&lt;br /&gt;
&lt;br /&gt;
= Providing Cryptographic Functionality  =&lt;br /&gt;
&lt;br /&gt;
== Benefits  ==&lt;br /&gt;
&lt;br /&gt;
== Basic Requirements ==&lt;br /&gt;
&lt;br /&gt;
== Secure Cryptographic Storage Design  ==&lt;br /&gt;
&lt;br /&gt;
=== Rule - Only store sensitive data that you need ===&lt;br /&gt;
&lt;br /&gt;
Many eCommerce businesses utilize third party payment providers to store credit card information for recurring billing. This offloads the burden of keeping credit card numbers safe.&lt;br /&gt;
&lt;br /&gt;
=== Rule - Only use strong cryptographic algorithms ===&lt;br /&gt;
&lt;br /&gt;
Only use approved public algorithms such as AES, RSA public key cryptography, and SHA-256 or better for hashing. Do not use weak algorithms, such as MD5 or SHA1. Note that the classification of a &amp;quot;strong&amp;quot; cryptographic algorithm can change over time.&lt;br /&gt;
&lt;br /&gt;
http://csrc.nist.gov/groups/STM/cavp/index.html&lt;br /&gt;
&lt;br /&gt;
The CAVP program located at the above link is a good default place to go for validation of cryptographic algorithms when one does not have AES or one of the authenticated encryption modes that provide confidentiality and authenticity (i.e., data origin authentication) such as CCM, EAX, CMAC, etc. For Java, if you are using SunJCE that will be the case. The cipher modes supported in JDK 1.5 and later are CBC, CFB, CFBx, CTR, CTS, ECB, OFB, OFBx, PCBC. None of these cipher modes are authenticated encryption modes. (That's why it is added explicitly.) If you are using an alternate JCE provider such as Bouncy Castle, RSA JSafe, IAIK, etc., then some of these authenticated encryption modes probably should be preferred.&lt;br /&gt;
&lt;br /&gt;
Use salts when appropriate. Note that integrity should use a MAC such as HMAC-SHA256 or HMAC-SHA512 which is a better choice.&lt;br /&gt;
&lt;br /&gt;
==== Rule - Ensure that random numbers are cryptographically strong ====&lt;br /&gt;
&lt;br /&gt;
Ensure that all random numbers, random file names, random GUIDs, and random strings are generated in a cryptographically strong fashion. Also ensure that random algorithms are seeded with sufficient entropy.&lt;br /&gt;
&lt;br /&gt;
==== Rule - Only use widely accepted implementations of cryptographic algorithms ====&lt;br /&gt;
&lt;br /&gt;
Do not implement an existing cryptographic algorithm on your own, no matter how easy it appears. Instead, use widely accepted algorithms and widely accepted implementations. Ensure that the implementation has (at minimum) had some cryptography experts involved in its creation. If possible, use an implementation that is FIPS 140-2 certified.&lt;br /&gt;
&lt;br /&gt;
==== Rule - Prefer authenticated encryption modes ====&lt;br /&gt;
&lt;br /&gt;
Use cryptographic cipher modes that offer both confidentiality and authenticity. Recommended modes include counter with CBC-MAC (CCM) mode and Galois/counter mode (GCM). These authenticated encryption (AE) modes resist padding oracle attacks which can be used in many cases to recover plaintext from ciphertext without knowledge of the encryption key. &lt;br /&gt;
&lt;br /&gt;
If an authenticated encryption mode is not available, then the best option is to consult with a professional cryptographer. Ask the cryptographer to review and customize the system to counter padding oracle attacks. This customization will typically involve the use of a message authentication code (MAC) that must be carefully employed in order to be effective.&lt;br /&gt;
&lt;br /&gt;
In the worst case, where neither an AE mode nor a professional cryptographer are available, then the cryptography is definitely vulnerable to a padding oracle attack. The best that can be done in this situation is to design the overall system so that the decryption function is only given ciphertext that is retrieved directly from a canonical source which itself must be protected by other integrity controls. While this technique will help reduce the risk of a padding oracle attack, it does not eliminate the risk, and it should be treated as a temporary workaround until an AE-based solution can be implemented.&lt;br /&gt;
&lt;br /&gt;
When selecting a cryptographic mode for this worse case, cipher-block chaining (CBC) mode is a strong choice as it has been carefully studied, is well understood, and is readily available in many cryptographic APIs. In all cases avoid the electronic codebook (ECB) mode. If using cipher modes that create streaming ciphers from block ciphers, such as the output feedback (OFB) or cipher feedback (CFB) modes, be careful not to repeat the IV for the same encryption key. &lt;br /&gt;
&lt;br /&gt;
See [http://www.cryptopp.com/wiki/Authenticated_Encryption Authenticated Encryption] on the Crypto++ wiki for a more complete discussion of the technique. NIST's CRSC [http://csrc.nist.gov/groups/ST/toolkit/BCM/current_modes.html Current Modes] and [http://csrc.nist.gov/groups/ST/toolkit/BCM/modes_development.html Modes Development] documents offer an abbreviated list of cipher modes. Additional block cipher modes can be found in Wikipedia's [http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation Block cipher modes of operation] article.&lt;br /&gt;
&lt;br /&gt;
=== Rule - Store the hashed and salted value of passwords ===&lt;br /&gt;
&lt;br /&gt;
Store the salted hashed value of the password. Salt each hash. Preferably use a different random salt for each password hash instead of a constant long salt. Never store the clear text password or an encrypted version of the password.&lt;br /&gt;
&lt;br /&gt;
Cryptographic framework for password hashing is described in [http://www.rsa.com/rsalabs/node.asp?id=2127 PKCS #5 v2.1: Password-Based Cryptography Standard]. Specific secure password hashing algorithms exist such as [http://www.usenix.org/events/usenix99/provos/provos_html/node1.html bcrypt], [http://www.tarsnap.com/scrypt/scrypt.pdf scrypt]. Implementations of secure password hashing exist for PHP ([http://www.openwall.com/phpass/ phpass]), ASP.NET ([http://msdn.microsoft.com/en-us/library/ms998372.aspx#pagpractices0001_sensitivedata ASP.NET 2.0 Security Practices]), Java ([http://www.owasp.org/index.php/Hashing_Java OWASP Hashing Java]).&lt;br /&gt;
&lt;br /&gt;
=== Rule - Ensure that the cryptographic protection remains secure even if access controls fail ===&lt;br /&gt;
&lt;br /&gt;
This rule supports the principle of defense in depth. Access&lt;br /&gt;
controls (usernames, passwords, privileges, etc.) are one layer of&lt;br /&gt;
protection. Storage encryption should add an additional layer of&lt;br /&gt;
protection that will continue protecting the data even if an&lt;br /&gt;
attacker subverts the database access control layer.&lt;br /&gt;
&lt;br /&gt;
=== Rule - Ensure that any secret key is protected from unauthorized access ===&lt;br /&gt;
&lt;br /&gt;
==== Rule - Define a key lifecycle ====&lt;br /&gt;
&lt;br /&gt;
The key lifecycle details the various states that a key will move through during its life. The lifecycle will specify when a key should no longer be used for encryption, when a key should no longer be used for decryption (these are not necessarily coincident), whether data must be rekeyed when a new key is introduced, and when a key should be removed from use all together.&lt;br /&gt;
&lt;br /&gt;
==== Rule - Store unencrypted keys away from the encrypted data ====&lt;br /&gt;
&lt;br /&gt;
If the keys are stored with the data then any compromise of the data will easily compromise the keys as well. Unencrypted keys should never reside on the same machine or cluster as the data.&lt;br /&gt;
&lt;br /&gt;
==== Rule - Use independent keys when multiple keys are required ====&lt;br /&gt;
&lt;br /&gt;
Ensure that key material is independent. That is, do not choose a second key which is easily related to the first (or any preceeding) keys.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Rule - Protect keys in a key vault ====&lt;br /&gt;
&lt;br /&gt;
Keys should remain in a protected key vault at all times. In particular, ensure that there is a gap between the threat vectors that have direct access to the data and the threat vectors that have direct access to the keys. This implies that keys should not be stored on the application or web server (assuming that application attackers are part of the relevant threat model).&lt;br /&gt;
&lt;br /&gt;
==== Rule - Document concrete procedures for managing keys through the lifecycle ====&lt;br /&gt;
&lt;br /&gt;
These procedures must be written down and the key custodians must be adequately trained.&lt;br /&gt;
&lt;br /&gt;
==== Rule - Build support for changing keys periodically ====&lt;br /&gt;
&lt;br /&gt;
Key rotation is a must as all good keys do come to an end either through expiration or revocation.  So a developer will have to deal with rotating keys at some point -- better to have a system in place now rather than scrambling later. (From Bil Cory as a starting point). &lt;br /&gt;
&lt;br /&gt;
==== Rule - Document concrete procedures to handle a key compromise ====&lt;br /&gt;
&lt;br /&gt;
==== Rule - Rekey data at least every one to three years ====&lt;br /&gt;
&lt;br /&gt;
Rekeying refers to the process of decrypting data and then re-encrypting it with a new key. Periodically rekeying data helps protect it from undetected compromises of older keys. The appropriate rekeying period depends on the security of the keys. Data protected by keys secured in dedicated hardware security modules might only need rekeying every three years. Data protected by keys that are split and stored on two application servers might need rekeying every year.&lt;br /&gt;
&lt;br /&gt;
=== Rule - Follow applicable regulations on use of cryptography ===&lt;br /&gt;
&lt;br /&gt;
==== Rule - Under PCI DSS requirement 3, you must protect cardholder data  ====&lt;br /&gt;
&lt;br /&gt;
The Payment Card Industry (PCI) Data Security Standard (DSS) was developed to encourage and enhance cardholder data security and facilitate the broad adoption of consistent data security measures globally. The standard was introduced in 2005 and replaced individual compliance standards from Visa, Mastercard, Amex, JCB and Diners. The current version of the standard is 2.0 and was initialized on January 1, 2011. &lt;br /&gt;
&lt;br /&gt;
PCI DSS requirement 3 covers secure storage of credit card data. This requirement covers several aspects of secure storage including the data you must never store but we are covering Cryptographic Storage which is covered in requirements 3.4, 3.5 and 3.6 as you can see below: &lt;br /&gt;
&lt;br /&gt;
'''3.4 Render PAN (Primary Account Number), at minimum, unreadable anywhere it is stored''' &lt;br /&gt;
&lt;br /&gt;
Compliance with requirement 3.4 can be met by implementing any of the four types of secure storage described in the standard which includes encrypting and hashing data. These two approaches will often be the most popular choices from the list of options. The standard doesn't refer to any specific algorithms but it mandates the use of '''Strong Cryptography'''. The glossary document from the PCI council defines '''Strong Cryptography''' as: &lt;br /&gt;
&lt;br /&gt;
''Cryptography based on industry-tested and accepted algorithms, along with strong key lengths and proper key-management practices. Cryptography is a method to protect data and includes both encryption (which is reversible) and hashing (which is not reversible, or “one way”). SHA-1 is an example of an industry-tested and accepted hashing algorithm. Examples of industry-tested and accepted standards and algorithms for encryption include AES (128 bits and higher), TDES (minimum double-length keys), RSA (1024 bits and higher), ECC (160 bits and higher), and ElGamal (1024 bits and higher).'' &lt;br /&gt;
&lt;br /&gt;
If you have implemented the second rule in this cheat sheet you will have implemented a strong cryptographic algorithm which is compliant with or stronger than the requirements of PCI DSS requirement 3.4. You need to ensure that you identify all locations that card data could be stored including logs and apply the appropriate level of protection. This could range from encrypting the data to replacing the card number in logs. &lt;br /&gt;
&lt;br /&gt;
This requirement can also be met by implementing disk encryption rather than file or column level encryption. The requirements for '''Strong Cryptography''' are the same for disk encryption and backup media. The card data should never be stored in the clear and by following the guidance in this cheat sheet you will be able to securely store your data in a manner which is compliant with PCI DSS requirement 3.4 &lt;br /&gt;
&lt;br /&gt;
'''3.5  Protect any keys used to secure cardholder data against disclosure and misuse''' &lt;br /&gt;
&lt;br /&gt;
As the requirement name above indicates, we are required to securely store the encryption keys themselves. This will mean implementing strong access control, auditing and logging for your keys. The keys must be stored in a location which is both secure and &amp;quot;away&amp;quot; from the encrypted data. This means key data shouldn't be stored on web servers, database servers etc &lt;br /&gt;
&lt;br /&gt;
Access to the keys must be restricted to the smallest amount of users possible. This group of users will ideally be users who are highly trusted and trained to perform Key Custodian duties. There will obviously be a requirement for system/service accounts to access the key data to perform encryption/decryption of data. &lt;br /&gt;
&lt;br /&gt;
The keys themselves shouldn't be stored in the clear but encrypted with a KEK (Key Encrypting Key). The KEK must not be stored in the same location as the encryption keys it is encrypting. &lt;br /&gt;
&lt;br /&gt;
'''3.6 Fully document and implement all key-management processes and procedures for cryptographic keys used for encryption of cardholder data''' &lt;br /&gt;
&lt;br /&gt;
Requirement 3.6 mandates that key management processes within a PCI compliant company cover 8 specific key lifecycle steps: &lt;br /&gt;
&lt;br /&gt;
'''3.6.1 Generation of strong cryptographic keys''' &lt;br /&gt;
&lt;br /&gt;
As we have previously described in this cheat sheet we need to use algorithms which offer high levels of data security. We must also generate strong keys so that the security of the data isn't undermined by weak cryptographic keys. A strong key is generated by using a key length which is sufficient for your data security requirements and compliant with the PCI DSS. The key size alone isn't a measure of the strength of a key. The data used to generate the key must be sufficiently random (&amp;quot;sufficient&amp;quot; often being determined by your data security requirements) and the entropy of the key data itself must be high.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
'''3.6.2 Secure cryptographic key distribution''' &lt;br /&gt;
&lt;br /&gt;
The method used to distribute keys must be secure to prevent the theft of keys in transit. The use of a protocol such as Diffie Hellman can help secure the distribution of keys, the use of secure transport such as SSLv3, TLS and SSHv2 can also secure the keys in transit.&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
'''3.6.3 Secure cryptographic key storage'''&lt;br /&gt;
&lt;br /&gt;
The secure storage of encryption keys including KEK's has been touched on in our description of requirement 3.5 (see above).&lt;br /&gt;
&lt;br /&gt;
'''3.6.4 Periodic cryptographic key changes'''&lt;br /&gt;
&lt;br /&gt;
The PCI DSS standard mandates that keys used for encryption must be rotated at least annually. The key rotation process must remove an old key from the encryption/decryption process and replace it with a new key. All new data entering the system must encrypted with the new key. While it is recommended that existing data be rekeyed with the new key, as per the Rekey data at least every one to three years rule above, it is not clear that the PCI DSS requires this.&lt;br /&gt;
&lt;br /&gt;
'''3.6.5 Retirement or replacement of keys as deemed necessary when the integrity of the key has been weakened or keys are suspected of being compromised'''&lt;br /&gt;
&lt;br /&gt;
The key management processes must cater for archived, retired or compromised keys. The process of securely storing and replacing these keys will more than likely be covered by your processes for requirements 3.6.2, 3.6.3 and 3.6.4&lt;br /&gt;
&lt;br /&gt;
'''3.6.6 Split knowledge and establishment of dual control of cryptographic keys'''&lt;br /&gt;
&lt;br /&gt;
The requirement for split knowledge and/or dual control for key management prevents an individual user performing key management tasks such as key rotation or deletion. The system should require two individual users to perform an action (i.e. entering a value from their own OTP) which creates to separate values which are concatenated to create the final key data.&lt;br /&gt;
&lt;br /&gt;
'''3.6.7 Prevention of unauthorized substitution of cryptographic keys'''&lt;br /&gt;
&lt;br /&gt;
The system put in place to comply with requirement 3.6.6 can go a long way to preventing unauthorised substitution of key data. In addition to the dual control process you should implement strong access control, auditing and logging for key data so that unauthorised access attempts are prevented and logged.&lt;br /&gt;
&lt;br /&gt;
'''3.6.8 Requirement for cryptographic key custodians to sign a form stating that they understand and accept their key-custodian responsibilities '''&lt;br /&gt;
&lt;br /&gt;
To perform the strong key management functions we have seen in requirement 3.6 we must have highly trusted and trained key custodians who understand how to perform key management duties. The key custodians must also sign a form stating they understand the responsibilities that come with this role.&lt;br /&gt;
&lt;br /&gt;
= Related Articles  =&lt;br /&gt;
&lt;br /&gt;
OWASP - [[Testing for SSL-TLS (OWASP-CM-001)|Testing for SSL-TLS]], and OWASP [[Guide to Cryptography]] &lt;br /&gt;
&lt;br /&gt;
OWASP – [http://www.owasp.org/index.php/ASVS Application Security Verification Standard (ASVS) – Communication Security Verification Requirements (V10)]&lt;br /&gt;
&lt;br /&gt;
{{Cheatsheet_Navigation}}&lt;br /&gt;
&lt;br /&gt;
= Authors and Primary Editors  =&lt;br /&gt;
&lt;br /&gt;
Kevin Kenan - kevin[at]k2dd.com&lt;br /&gt;
&lt;br /&gt;
David Rook - david.a.rook[at]gmail.com&lt;br /&gt;
&lt;br /&gt;
Kevin Wall - kevin.w.wall[at]gmail.com&lt;br /&gt;
&lt;br /&gt;
Jim Manico - jim[at]manico.net&lt;br /&gt;
&lt;br /&gt;
Fred Donovan - fred.donovan(at)owasp.org&lt;br /&gt;
&lt;br /&gt;
[[Category:How_To]] [[Category:Cheatsheets]] [[Category:OWASP_Document]] [[Category:OWASP_Top_Ten_Project]]&lt;/div&gt;</summary>
		<author><name>Kcfredman</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Session_Management_Cheat_Sheet&amp;diff=114800</id>
		<title>Session Management Cheat Sheet</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Session_Management_Cheat_Sheet&amp;diff=114800"/>
				<updated>2011-07-29T07:36:12Z</updated>
		
		<summary type="html">&lt;p&gt;Kcfredman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction  =&lt;br /&gt;
&lt;br /&gt;
'''Web Authentication, Session Management, and Access Control''' &lt;br /&gt;
&lt;br /&gt;
A web session is a sequence of network HTTP request and response transactions associated to the same user. Modern and complex web applications require the retaining of information or status about each user for the duration of multiple requests. Therefore, sessions provide the ability to establish variables – such as access rights and localization settings – which will apply to each and every interaction a user has with the web application for the duration of the session. &lt;br /&gt;
&lt;br /&gt;
Web applications can create sessions to keep track of anonymous users after the very first user request. An example would be maintaining the user language preference. Additionally, web applications will make use of sessions once the user has authenticated. This ensures the ability to identify the user on any subsequent requests as well as being able to apply security access controls, authorized access to the user private data, and to increase the usability of the application. Therefore, current web applications can provide session capabilities both pre and post authentication. &lt;br /&gt;
&lt;br /&gt;
Once an authenticated session has been established, the session ID (or token) is temporarily equivalent to the strongest authentication method used by the application, such as username and password, passphrases, one-time passwords (OTP), client-based digital certificates, smartcards, or biometrics (such as fingerprint or eye retina). See the OWASP Authentication Cheat Sheet: [https://www.owasp.org/index.php/Authentication_Cheat_Sheet https://www.owasp.org/index.php/Authentication_Cheat_Sheet]. &lt;br /&gt;
&lt;br /&gt;
HTTP is a stateless protocol (RFC2616 [5]), where each request and response pair is independent of other web interactions. Therefore, in order to introduce the concept of a session, it is required to implement session management capabilities that link both the authentication and access control (or authorization) modules commonly available in web applications: &lt;br /&gt;
&lt;br /&gt;
[[Image:Session-Management-Diagram Cheat-Sheet.png|center|Session-Management-Diagram Cheat-Sheet.png]] &amp;lt;br&amp;gt; The session ID or token binds the user authentication credentials (in the form of a user session) to the user HTTP traffic and the appropriate access controls enforced by the web application. The complexity of these three components (authentication, session management, and access control) in modern web applications, plus the fact that its implementation and binding resides on the web developer’s hands (as web development framework do not provide strict relationships between these modules), makes the implementation of a secure session management module very challenging. &lt;br /&gt;
&lt;br /&gt;
The disclosure, capture, prediction, brute force, or fixation of the session ID will lead to session hijacking (or sidejacking) attacks, where an attacker is able to fully impersonate a victim user in the web application. Attackers can perform two types of session hijacking attacks, targeted or generic. In a targeted attack, the attacker’s goal is to impersonate a specific (or privileged) web application victim user. For  generic attacks, the attacker’s goal is to impersonate (or get access as) any valid or legitimate user in the web application. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
= Session ID Properties  =&lt;br /&gt;
&lt;br /&gt;
In order to keep the authenticated state and track the users progress within the web application, applications provide users with a session identifier (session ID or token) that is assigned at session creation time, and is shared and exchanged by the user and the web application for the duration of the session (it is sent on every HTTP request). The session ID is a “name=value” pair. &lt;br /&gt;
&lt;br /&gt;
With the goal of implementing secure session IDs, the generation of identifiers (IDs or tokens) must meet the following properties: &lt;br /&gt;
&lt;br /&gt;
== Session ID Name Fingerprinting  ==&lt;br /&gt;
&lt;br /&gt;
The name used by the session ID should not be extremely descriptive nor offer unnecessary details about the purpose and meaning of the ID. &lt;br /&gt;
&lt;br /&gt;
The session ID names used by the most common web application development frameworks can be easily fingerprinted [0], such as PHPSESSID (PHP), JSESSIONID (J2EE), CFID &amp;amp;amp; CFTOKEN (ColdFusion), ASP.NET_SessionId (ASP .NET), etc. Therefore, the session ID name can disclose the technologies and programming languages used by the web application. &lt;br /&gt;
&lt;br /&gt;
It is recommended to change the default session ID name of the web development framework to a generic name, such as “id”. &lt;br /&gt;
&lt;br /&gt;
== Session ID Length  ==&lt;br /&gt;
&lt;br /&gt;
The session ID must be long enough to prevent brute force attacks, where an attacker can go through the whole range of ID values and verify the existence of valid sessions. &lt;br /&gt;
&lt;br /&gt;
The session ID length must be at least 128 bits (16 bytes). &lt;br /&gt;
&lt;br /&gt;
== Session ID Entropy  ==&lt;br /&gt;
&lt;br /&gt;
The session ID must be unpredictable (random enough) to prevent guessing attacks, where an attacker is able to guess or predict the ID of a valid session through statistical analysis techniques. For this purpose, a good PRNG (Pseudo Random Number Generator) must be used. &lt;br /&gt;
&lt;br /&gt;
The session ID value must provide at least 64 bits of entropy (if a good PRNG is used, this value is estimated to be half the length of the session ID).&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
'''''NOTE''''': The session ID entropy is really affected by other external and difficult to measure factors, such as the number of concurrent active sessions the web application commonly has, the absolute session expiration timeout, the amount of session ID guesses per second the attacker can make and the target web application can support, etc [2]. If a session ID with an entropy of 64 bits is used, it will take an attacker at least 292 years to successfully guess a valid session ID, assuming the attacker can try 10,000 guesses per second with 100,000 valid simultaneous sessions available in the web application [2]. &lt;br /&gt;
&lt;br /&gt;
== Session ID Content (or Value)  ==&lt;br /&gt;
&lt;br /&gt;
The session ID content (or value) must be meaningless to prevent information disclosure attacks, where an attacker is able to decode the contents of the ID and extract details of the user, the session, or the inner workings of the web application. &lt;br /&gt;
&lt;br /&gt;
The session ID must simply be an identifier on the client side, and its value must never include sensitive information (or PII). The meaning and business or application logic associated to the session ID must be stored on the server side, and specifically, in session objects or in a session management database or repository. The stored information can include the client IP address, User-Agent, e-mail, username, user ID, role, privilege level, access rights, language preferences, account ID, current state, last login, session timeouts, and other internal session details. If the session objects and properties contain sensitive information, such as credit card numbers, it is required to duly encrypt and protect the session management repository. &lt;br /&gt;
&lt;br /&gt;
It is recommended to create cryptographically strong session IDs through the usage of cryptographic hash functions such as SHA1 (160 bits). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
= Session Management Implementation  =&lt;br /&gt;
&lt;br /&gt;
The session management implementation defines the exchange mechanism that will be used between the user and the web application to share and continuously exchange the session ID. There are multiple mechanisms available in HTTP to maintain session state within web applications, such as cookies (standard HTTP header), URL parameters (URL rewriting – RFC 2396), URL arguments on GET requests, body arguments on POST requests, such as hidden form fields (HTML forms), or proprietary HTTP headers. &lt;br /&gt;
&lt;br /&gt;
The preferred session ID exchange mechanism should allow defining advanced token properties, such as the token expiration date and time, or granular usage constraints. This is one of the reasons why cookies (RFCs 2109 &amp;amp;amp; 2965 &amp;amp;amp; 6265 [1]) are one of the most extensively used session ID exchange mechanisms, offering advanced capabilities not available in other methods. &lt;br /&gt;
&lt;br /&gt;
The usage of specific session ID exchange mechanisms, such as those where the ID is included in the URL, might disclose the session ID (in web links and logs, web browser history and bookmarks, the Referer header or search engines), as well as facilitate other attacks, such as the manipulation of the ID or session fixation attacks [3]. &lt;br /&gt;
&lt;br /&gt;
== Built-in Session Management Implementations  ==&lt;br /&gt;
&lt;br /&gt;
Web development frameworks, such as J2EE, ASP .NET, PHP, and others, provide their own session management features and associated implementation. It is recommended to use these built-in frameworks versus building a home made one from scratch, as they are used worldwide on multiple web environments and have been tested by the web application security and development communities over time. &lt;br /&gt;
&lt;br /&gt;
However, be advised that these frameworks have also presented vulnerabilities and weaknesses in the past, so it is always recommended to use the latest version available, that potentially fixes all the well-known vulnerabilities, as well as review and change the default configuration to enhance its security by following the recommendations described along this document. &lt;br /&gt;
&lt;br /&gt;
The storage capabilities or repository used by the session management mechanism to temporarily save the session IDs must be secure, protecting the session IDs against local or remote accidental disclosure or unauthorized access. &lt;br /&gt;
&lt;br /&gt;
== Used vs. Accepted Session ID Exchange Mechanisms  ==&lt;br /&gt;
&lt;br /&gt;
A specific web application can make use of a particular session ID exchange mechanism by default, such as cookies. However, if a user submits a session ID through a different exchange mechanism, such as a URL parameter, the web application might accept it. Effectively, the web application can use both mechanisms, cookies or URL parameters, or even switch from one to the other (automatic URL rewriting) if certain conditions are met (for example, the existence of web clients without cookies support or when cookies are not accepted due to user privacy concerns). &lt;br /&gt;
&lt;br /&gt;
For this reason, it is crucial to differentiate between the mechanisms used by the web application (by default) to exchange session IDs and the mechanisms accepted by the web application to process and manage session IDs. Web applications must limit the accepted session tracking mechanisms to only those selected and used by design. &lt;br /&gt;
&lt;br /&gt;
== Transport Layer Security  ==&lt;br /&gt;
&lt;br /&gt;
In order to protect the session ID exchange from active eavesdropping and passive disclosure in the network traffic, it is mandatory to use an encrypted HTTPS (SSL/TLS) connection for the entire web session, not only for the authentication process where the user credentials are exchanged. &lt;br /&gt;
&lt;br /&gt;
Additionally, the “Secure” cookie attribute (see below) must be used to ensure the session ID is only exchanged through an encrypted channel. The usage of an encrypted communication channel also protects the session against some session fixation attacks where the attacker is able to intercept and manipulate the web traffic to inject (or fix) the session ID on the victims web browser [4]. &lt;br /&gt;
&lt;br /&gt;
The following set of HTTPS (SSL/TLS) best practices are focused on protecting the session ID (specifically when cookies are used) and helping with the integration of HTTPS within the web application: &lt;br /&gt;
&lt;br /&gt;
*Web applications should never switch a given session from HTTP to HTTPS, or viceversa, as this will disclose the session ID in the clear through the network. &lt;br /&gt;
*Web applications should not mix encrypted and unencrypted contents (HTML pages, images, CSS, Javascript files, etc) on the same host (or even domain - see the “domain” cookie attribute), as the request of any web object over an unencrypted channel might disclose the session ID. &lt;br /&gt;
*Web applications, in general, should not offer public unencrypted contents and private encrypted contents from the same host. It is recommended to instead use two different hosts, such as www.example.com over HTTP (unencrypted) for the public contents, and secure.example.com over HTTPS (encrypted) for the private and sensitive contents (where sessions exist). The former host only has port TCP/80 open, while the later only has port TCP/443 open. &lt;br /&gt;
*Web applications should avoid the extremely common HTTP to HTTPS redirection on the home page (using a 30x HTTP response), as this single unprotected HTTP request/response exchange can be used by an attacker to gather (or fix) a valid session ID.&lt;br /&gt;
&lt;br /&gt;
See the OWASP Transport Layer Protection Cheat Sheet: [https://www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Sheet https://www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Sheet]. &lt;br /&gt;
&lt;br /&gt;
It is important to emphasize that SSL/TLS (HTTPS) does not protect against session ID prediction, brute force, client-side tampering or fixation. Yet, session ID disclosure and capture from the network traffic is one of the most prevalent attack vectors even today. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
= Cookies  =&lt;br /&gt;
&lt;br /&gt;
The session ID exchange mechanism based on cookies provides multiple security features in the form of cookie attributes that can be used to protect the exchange of the session ID: &lt;br /&gt;
&lt;br /&gt;
== Secure Attribute  ==&lt;br /&gt;
&lt;br /&gt;
The “Secure” cookie attribute instructs web browsers to only send the cookie through an encrypted HTTPS (SSL/TLS) connection. This session protection mechanism is mandatory to prevent the disclosure of the session ID through MitM (Man-in-the-Middle) attacks. It ensures that an attacker cannot simply capture the session ID from web browser traffic. &lt;br /&gt;
&lt;br /&gt;
Forcing the web application to only use HTTPS for its communication (even when port TCP/80, HTTP, is closed in the web application host) does not protect against session ID disclosure if the “Secure” cookie has not been set - the web browser can be deceived to disclose the session ID over an unencrypted HTTP connection. The attacker can intercept and manipulate the victim user traffic and inject an HTTP unencrypted reference to the web application that will force the web browser to submit the session ID in the clear. &lt;br /&gt;
&lt;br /&gt;
== HttpOnly Attribute  ==&lt;br /&gt;
&lt;br /&gt;
The “HttpOnly” cookie attribute instructs web browsers not to allow scripts (e.g. JavaScript or VBscript) an ability to access the cookies via the DOM document.cookie object. This session ID protection is mandatory to prevent session ID stealing through XSS attacks. &lt;br /&gt;
&lt;br /&gt;
See the OWASP XSS Prevention Cheat Sheet: [https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet]. &lt;br /&gt;
&lt;br /&gt;
== Domain and Path Attributes  ==&lt;br /&gt;
&lt;br /&gt;
The “Domain” cookie attribute instructs web browsers to only send the cookie to the specified domain and all subdomains. If the attribute is not set, by default the cookie will only be sent to the origin server. The “Path” cookie attribute instructs web browsers to only send the cookie to the specified directory or subdirectories (or paths or resources) within the web application. If the attribute is not set, by default the cookie will only be sent for the directory (or path) of the resource requested and setting the cookie. &lt;br /&gt;
&lt;br /&gt;
It is recommended to use a narrow or restricted scope for these two attributes. In this way, the “Domain” attribute should not be set (restricting the cookie just to the origin server) and the “Path” attribute should be set as restrictive as possible to the web application path that makes use of the session ID. &lt;br /&gt;
&lt;br /&gt;
Setting the “Domain” attribute to a too permissive value, such as “example.com” allows an attacker to launch attacks on the session IDs between different hosts and web applications belonging to the same domain, known as cross-subdomain cookies. For example, vulnerabilities in www.example.com might allow an attacker to get access to the session IDs from secure.example.com. &lt;br /&gt;
&lt;br /&gt;
Additionally, it is recommended not to mix web applications of different security levels on the same domain. Vulnerabilities in one of the web applications would allow an attacker to set the session ID for a different web application on the same domain by using a permissive “Domain” attribute (such as “example.com”) which is a technique that can be used in session fixation attacks [4]. &lt;br /&gt;
&lt;br /&gt;
Although the “Path” attribute allows the isolation of session IDs between different web applications using different paths on the same host, it is highly recommended not to run different web applications (especially from different security levels or scopes) on the same host. Other methods can be used by these applications to access the session IDs, such as the “document.cookie” object. Also, any web application can set cookies for any path on that host. &lt;br /&gt;
&lt;br /&gt;
Cookies are vulnerable to DNS spoofing/hijacking/poisoning attacks, where an attacker can manipulate the DNS resolution to force the web browser to disclose the session ID for a given host or domain. &lt;br /&gt;
&lt;br /&gt;
== Expire and Max-Age Attributes  ==&lt;br /&gt;
&lt;br /&gt;
Session management mechanisms based on cookies can make use of two types of cookies, non-persistent (or session) cookies, and persistent cookies. If a cookie presents the “Max-Age” (that has preference over “Expires”) or “Expires” attributes, it will be considered a persistent cookie and will be stored on disk by the web browser based until the expiration time. Typically, session management capabilities to track users after authentication make use of non-persistent cookies. This forces the session to disappear from the client if the current web browser instance is closed. Therefore, it is highly recommended to use non-persistent cookies for session management purposes, so that the session ID does not remain on the web client cache for long periods of time, from where an attacker can obtain it. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
= Session ID Life Cycle  =&lt;br /&gt;
&lt;br /&gt;
== Session ID Generation and Verification: Permissive and Strict Session Management  ==&lt;br /&gt;
&lt;br /&gt;
There are two types of session management mechanisms for web applications, permissive and strict, related to session fixation vulnerabilities. The permissive mechanism allow the web application to initially accept any session ID value set by the user as valid, creating a new session for it, while the strict mechanism enforces that the web application will only accept session ID values that have been previously generated by the web application. &lt;br /&gt;
&lt;br /&gt;
Although the most common mechanism in use today is the strict one (more secure). Developers must ensure that the web application does not use a permissive mechanism under certain circumstances. Web applications should never accept a session ID they have never generated, and in case of receiving one, they should generate and offer the user a new valid session ID. Additionally, this scenario should be detected as a suspicious activity and an alert should be generated. &lt;br /&gt;
&lt;br /&gt;
== Manage Session ID as Any Other User Input  ==&lt;br /&gt;
&lt;br /&gt;
Session IDs must be considered untrusted, as any other user input processed by the web application, and they must be thoroughly validated and verified. Depending on the session management mechanism used, the session ID will be received in a GET or POST parameter, in the URL or in an HTTP header (e.g. cookies). If web applications do not validate and filter out invalid session ID values before processing them, they can potentially be used to exploit other web vulnerabiilties, such as SQL injection if the session IDs are stored on a relational database, or persistent XSS if the session IDs are stored and reflected back afterwards by the web application. &lt;br /&gt;
&lt;br /&gt;
== Renew the Session ID After Any Privilege Level Change  ==&lt;br /&gt;
&lt;br /&gt;
The session ID must be renewed or regenerated by the web application after any privilege level change within the associated user session. The most common scenario where the session ID regeneration is mandatory is during the authentication process, as the privilege level of the user changes from the unauthenticated (or anonymous) state to the authenticated state. Other common scenarios must also be considered, such as password changes, permission changes or switching from a regular user role to an administrator role within the web application. For all these web application critical pages, previous session IDs have to be ignored, a new session ID must be assigned to every new request received for the critical resource, and the old or previous session ID must be destroyed. &lt;br /&gt;
&lt;br /&gt;
The most common web development frameworks provide session functions and methods to renew the session ID, such as “request.getSession(true) &amp;amp;amp; HttpSession.invalidate()” (J2EE), “Session.Abandon() &amp;amp;amp; Response.Cookies.Add(new…)“ (ASP .NET), or “session_start() &amp;amp;amp; session_regenerate_id(true)” (PHP). &lt;br /&gt;
&lt;br /&gt;
The session ID regeneration is mandatory to prevent session fixation attacks [3], where an attacker sets the session ID on the victims user web browser instead of gathering the victims session ID, as in most of the other session-based attacks, and independently of using HTTP or HTTPS. This protection mitigates the impact of other web-based vulnerabilities that can also be used to launch session fixation attacks, such as HTTP response splitting or XSS [4]. &lt;br /&gt;
&lt;br /&gt;
A complementary recommendation is to use a different session ID or token name (or set of session IDs) pre and post authentication, so that the web application can keep track of anonymous users and authenticated users without the risk of exposing or binding the user session between both states. &lt;br /&gt;
&lt;br /&gt;
== Considerations When Using Multiple Cookies  ==&lt;br /&gt;
&lt;br /&gt;
If the web application uses cookies as the session ID exchange mechanism, and multiple cookies are set for a given session, the web application must verify all cookies (and enforce relationships between them) before allowing access to the user session. &lt;br /&gt;
&lt;br /&gt;
It is very common for web applications to set a user cookie pre-authentication over HTTP to keep track of unauthenticated (or anonymous) users. Once the user authenticates in the web application, a new post-authentication secure cookie is set over HTTPS, and a binding between both cookies and the user session is established. If the web application does not verify both cookies for authenticated sessions, an attacker can make use of the pre-authentication unprotected cookie to get access to the authenticated user session [4]. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
= Session Expiration  =&lt;br /&gt;
&lt;br /&gt;
In order to minimize the time period an attacker can launch attacks over active sessions and hijack them, it is mandatory to set expiration timeouts for every session, establishing the amount of time a session will remain active. Insufficient session expiration by the web application increases the exposure of other session-based attacks, as for the attacker to be able to reuse a valid session ID and hijack the associated session, it must still be active. &lt;br /&gt;
&lt;br /&gt;
The shorter the session interval is, the lesser the time an attacker has to use the valid session ID. The session expiration timeout values must be set accordingly with the purpose and nature of the web application, and balance security and usability, so that the user can comfortably complete the operations within the web application without his session frequently expiring. Both the idle and absolute timeout values are highly dependent on the criticality of the web application and its data. Common idle timeouts ranges are 2-5 minutes for high-value applications and 15- 30 minutes for low risk applications. &lt;br /&gt;
&lt;br /&gt;
When a session expires, the web application must take active actions to invalidate the session on both sides, client and server. The later is the most relevant and mandatory from a security perspective. &lt;br /&gt;
&lt;br /&gt;
For most session exchange mechanisms, client side actions to invalidate the session ID are based on clearing out the token value. For example, to invalidate a cookie it is recommended to provide an empty (or invalid) value for the session ID, and set the “Expires” (or “Max-Age”) attribute to a date from the past (in case a persistent cookie is being used): &lt;br /&gt;
&amp;lt;pre&amp;gt;Set-Cookie: id=; Expires=Friday, 17-May-03 18:45:00 GMT &amp;lt;/pre&amp;gt; &lt;br /&gt;
In order to close and invalidate the session on the server side, it is mandatory for the web application to take active actions when the session expires, or the user actively logs out, by using the functions and methods offered by the session management mechanisms, such as “HttpSession.invalidate()” (J2EE), “Session.Abandon()“ (ASP .NET) or “session_destroy()/unset()“ (PHP). &lt;br /&gt;
&lt;br /&gt;
== Automatic Session Expiration  ==&lt;br /&gt;
&lt;br /&gt;
=== Idle Timeout  ===&lt;br /&gt;
&lt;br /&gt;
All sessions should implement an idle or inactivity timeout. This timeout defines the amount of time a session will remain active in case there is no activity in the session, closing and invalidating the session upon the defined idle period since the last HTTP request received by the web application for a given session ID. &lt;br /&gt;
&lt;br /&gt;
The idle timeout limits the chances an attacker has to guess and use a valid session ID from another user. However, if the attacker is able to hijack a given session, the idle timeout does not limit the attacker’s actions, as he can generate activity on the session periodically to keep the session active for longer periods of time. &lt;br /&gt;
&lt;br /&gt;
Session timeout management and expiration must be enforced server-side. If the client is used to enforce the session timeout, an attacker could use the session token or other client parameters to track time references (e.g. login time) and extend the session duration. &lt;br /&gt;
&lt;br /&gt;
=== Absolute Timeout  ===&lt;br /&gt;
&lt;br /&gt;
All sessions should implement an absolute timeout, regardless of session activity. This timeout defines the maximum amount of time a session can be active, closing and invalidating the session upon the defined absolute period since the given session was initially created by the web application. After invalidating the session, the user is forced to (re)authenticate again in the web application and establish a new session. &lt;br /&gt;
&lt;br /&gt;
The absolute session limits the amount of time an attacker can use a hijacked session and impersonate the victim user. &lt;br /&gt;
&lt;br /&gt;
== Manual Session Expiration  ==&lt;br /&gt;
&lt;br /&gt;
Web applications should provide mechanisms that allow security aware users to actively close their session once they have finished using the web application. &lt;br /&gt;
&lt;br /&gt;
=== Logout Button  ===&lt;br /&gt;
&lt;br /&gt;
Web applications must provide a visible an easily accessible logout (logoff, exit, or close session) button that is available on the web application header or menu and reachable from every web application resource and page, so that the user can manually close the session at any time. &lt;br /&gt;
&lt;br /&gt;
== Web Content Caching  ==&lt;br /&gt;
&lt;br /&gt;
Even after the session has been closed, it might be possible to access the private or sensitive data exchanged within the session through the web browser cache. Therefore, web applications must use restrictive cache directives for all the web traffic exchanged through HTTP and HTTPS, such as the “Cache-Control: no-cache,no-store” and “Pragma: no-cache” HTTP headers [5], and/or equivalent META tags on all or (at least) sensitive web pages. &lt;br /&gt;
&lt;br /&gt;
Independently of the cache policy defined by the web application, if caching web application contents is allowed, the session IDs must never be cached, so it is highly recommended to use the “Cache-Control: no-cache=&amp;quot;Set-Cookie&amp;quot;” directive, to allow web clients to cache everything except the session ID. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
= Additional Client-Side Defenses for Session Management  =&lt;br /&gt;
&lt;br /&gt;
Web applications can complement the previously described session management defenses with additional countermeasures on the client side. Client-side protections, typically in the form of JavaScript checks and verifications, are not bullet proof and can easily be defeated by a skilled attacker, but can introduce another layer of defense that has to be bypassed by the attacker. &lt;br /&gt;
&lt;br /&gt;
== Initial Login Timeout  ==&lt;br /&gt;
&lt;br /&gt;
Web applications can use JavaScript code in the login page to evaluate and measure the amount of time since the page was loaded and a session ID was granted. If a login attempt is tried after a specific amount of time, the client code can notify the user that the maximum amount of time to log in has passed and reload the login page, hence retrieving a new session ID. &lt;br /&gt;
&lt;br /&gt;
This extra protection mechanism tries to force the renewal of the session ID pre-authentication, avoiding scenarios where a previously used (or manually set) session ID is reused by the next victim using the same computer, for example, in session fixation attacks. &lt;br /&gt;
&lt;br /&gt;
== Force Session Logout On Web Browser Window Close Events  ==&lt;br /&gt;
&lt;br /&gt;
Web applications can use JavaScript code to capture all the web browser tab or window close (or even back) events and take the appropriate actions to close the current session before closing the web browser, emulating that the user has manually closed the session via the logout button. &lt;br /&gt;
&lt;br /&gt;
== Disable Web Browser Cross-Tab Sessions  ==&lt;br /&gt;
&lt;br /&gt;
Web applications can use JavaScript code once the user has logged in and a session has been established to force the user to reauthenticate if a new web browser tab or window is opened against the same web application. The web application does not want to allow multiple web browser tabs or windows to share the same session. Therefore, the application tries to force the web browser to not share the same session ID simultaneously between them. &lt;br /&gt;
&lt;br /&gt;
'''''NOTE''''': This mechanism cannot be implemented if the session ID is exchanged throughout cookies, as cookies are shared by all web browser tab/windows.&amp;amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
= Session Attacks Detection  =&lt;br /&gt;
&lt;br /&gt;
== Session ID Guessing and Brute Force Detection  ==&lt;br /&gt;
&lt;br /&gt;
If an attacker tries to guess or brute force a valid session ID, he needs to launch multiple sequential requests against the target web application using different session IDs from a single (or set of) IP address(es). Additionally, if an attacker tries to analyze the predictability of the session ID (e.g. using statistical analysis), he needs to launch multiple sequential requests from a single (or set of) IP address(es) against the target web application to gather new valid session IDs. &lt;br /&gt;
&lt;br /&gt;
Web applications must be able to detect both scenarios based on the number of attempts to gather (or use) different session IDs and alert and/or block the offending IP address(es). &lt;br /&gt;
&lt;br /&gt;
== Detecting Session ID Anomalies  ==&lt;br /&gt;
&lt;br /&gt;
Web applications should focus on detecting anomalies associated to the session ID, such as its manipulation. The OWASP AppSensor Project [7] provides a framework and methodology to implement built-in intrusion detection capabilities within web applications focused on the detection of anomalies and unexpected behaviors, in the form of detection points and response actions. Instead of using external protection layers, sometimes the business logic details and advanced intelligence are only available from inside the web application, where it is possible to establish multiple session related detection points, such as when an existing cookie is modified or deleted, a new cookie is added, the session ID from another user is reused, or when the user location or User-Agent changes in the middle of a session. &lt;br /&gt;
&lt;br /&gt;
== Binding the Session ID to Other User Properties  ==&lt;br /&gt;
&lt;br /&gt;
With the goal of detecting user misbehaviors and session hijacking, it is highly recommended to bind the session ID to other user or client properties, such as the client IP address, User-Agent, or client-based digital certificate. If the web application detects any change or anomaly between these different properties in the middle of an established session, it is a very good indicator of session manipulation and hijacking attempts, and this simple fact can be used to alert and/or terminate the suspicious session. &lt;br /&gt;
&lt;br /&gt;
Although these properties cannot be used by web applications to trustily defend against session attacks, they significantly increase the web application detection capabilities. A skilled attacker can bypass these controls by reusing the same IP address assigned to the victim user by sharing the same network (very common in NAT environments, like Wi-Fi hotspots), by using the same outbound web proxy (very common in corporate environments), or by modifying his User-Agent to look exactly as the victim users does. &lt;br /&gt;
&lt;br /&gt;
== Logging Sessions Life Cycle: Monitoring Creation, Usage, and Destruction of Session IDs  ==&lt;br /&gt;
&lt;br /&gt;
Web applications should increase their logging capabilities by including information regarding the full life cycle of sessions. In particular, it is recommended to record session related events, such as the creation, renewal, and destruction of session IDs, as well as details about its usage within login and logout operations, privilege level changes within the session, timeout expiration, invalid session activities (when detected), and critical business operations during the session. &lt;br /&gt;
&lt;br /&gt;
The log details might include a timestamp, source IP address, web target resource requested (and involved in a session operation), HTTP headers (including the User-Agent and Referer), GET and POST parameters, error codes and messages, username (or user ID), plus the session ID (cookies, URL, GET, POST…). Sensitive data like the session ID should not be included in the logs in order to protect the session logs against session ID local or remote disclosure or unauthorized access. However, some kind of session-specific information must be logged into order to correlate log entries to specific sessions. It is recommended to log a salted-hash of the session ID instead of the session ID itself in order to allow for session-specific log correlation without exposing the session ID.&lt;br /&gt;
&lt;br /&gt;
The session logs become one of the main web application intrusion detection data sources, and can also be used by intrusion protection systems to automatically terminate sessions and/or disable user accounts when (one or many) attacks are detected. If active protections are implemented, these defensive actions must be logged too.&lt;br /&gt;
&lt;br /&gt;
== Simultaneous Session Logons  ==&lt;br /&gt;
&lt;br /&gt;
It is the web application design decision to determine if multiple simultaneous logons from the same user are allowed from the same or from different client IP addresses. If the web application does not want to allow simultaneous session logons, it must take effective actions after each new authentication event, implicitly terminating the previously available session, or asking the user (through the old, new or both sessions) about the session that must remain active. &lt;br /&gt;
&lt;br /&gt;
It is recommended for web applications to add user capabilities that check the details of active sessions at any time, monitor and alert the user about concurrent logons, provide user features to remotely terminate sessions manually, and track account activity history (logbook) by recording multiple client details such as IP address, User-Agent, login date and time, idle time, etc. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
= Session Management WAF Protections  =&lt;br /&gt;
&lt;br /&gt;
There are situations where the web application source code is not available or cannot be modified, or when the changes required to implement the multiple security recommendations and best practices detailed above imply a full redesign of the web application architecture, and therefore, cannot be easily implemented in the short term. In these scenarios, or to complement the web application defenses, and with the goal of keeping the web application as secure as possible, it is recommended to use external protections such as Web Application Firewalls (WAFs) that can mitigate the session management threats already described. &lt;br /&gt;
&lt;br /&gt;
Web Application Firewalls offer detection and protection capabilities against session based attacks. On the one hand, it is trivial for WAFs to enforce the usage of security attributes on cookies, such as the “Secure” and “HttpOnly” flags, applying basic rewriting rules on the “Set-Cookie” header for all the web application responses that set a new cookie. On the other hand, more advanced capabilities can be implemented to allow the WAF to keep track of sessions, and the corresponding session IDs, and apply all kind of protections against session fixation (by renewing the session ID on the client-side when privilege changes are detected), enforcing sticky sessions (by verifying the relationship between the session ID and other client properties, like the IP address or User-Agent), or managing session expiration (by forcing both the client and the web application to finalize the session). &lt;br /&gt;
&lt;br /&gt;
The open-source ModSecurity WAF, plus the OWASP Core Rule Set [6], provide capabilities to detect and apply security cookie attributes, countermeasures against session fixation attacks, and session tracking features to enforce sticky sessions. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
= Related Articles  =&lt;br /&gt;
&lt;br /&gt;
[0] '''OWASP Cookies Database. OWASP.''' https://www.owasp.org/index.php/Category:OWASP_Cookies_Database &lt;br /&gt;
&lt;br /&gt;
[1] '''&amp;quot;HTTP State Management Mechanism&amp;quot;. RFC 6265. IETF.''' http://tools.ietf.org/html/rfc6265 &lt;br /&gt;
&lt;br /&gt;
[2] '''Insufficient Session-ID Length. OWASP.''' https://www.owasp.org/index.php/Insufficient_Session-ID_Length &lt;br /&gt;
&lt;br /&gt;
[3] '''Session Fixation. Mitja Kolšek. 2002.''' http://www.acrossecurity.com/papers/session_fixation.pdf &lt;br /&gt;
&lt;br /&gt;
[4] '''&amp;quot;SAP: Session (Fixation) Attacks and Protections (in Web Applications)&amp;quot;. Raul Siles. BlackHat EU 2011.''' &lt;br /&gt;
&lt;br /&gt;
https://media.blackhat.com/bh-eu-11/Raul_Siles/BlackHat_EU_2011_Siles_SAP_Session-Slides.pdf &lt;br /&gt;
&lt;br /&gt;
https://media.blackhat.com/bh-eu-11/Raul_Siles/BlackHat_EU_2011_Siles_SAP_Session-WP.pdf &lt;br /&gt;
&lt;br /&gt;
[5] '''&amp;quot;Hypertext Transfer Protocol -- HTTP/1.1&amp;quot;. RFC2616. IETF.''' http://tools.ietf.org/html/rfc2616 &lt;br /&gt;
&lt;br /&gt;
[6] '''OWASP ModSecurity Core Rule Set (CSR) Project. OWASP.''' https://www.owasp.org/index.php/Category:OWASP_ModSecurity_Core_Rule_Set_Project &lt;br /&gt;
&lt;br /&gt;
[7] '''OWASP AppSensor Project. OWASP.''' https://www.owasp.org/index.php/Category:OWASP_AppSensor_Project &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; {{Cheatsheet_Navigation}} &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
= Authors and Primary Editors  =&lt;br /&gt;
&lt;br /&gt;
Raul Siles - raul[at]taddong.com &lt;br /&gt;
&lt;br /&gt;
[[Category:How_To]] [[Category:Cheatsheets]] [[Category:OWASP_Document]] [[Category:OWASP_Top_Ten_Project]]&lt;/div&gt;</summary>
		<author><name>Kcfredman</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Authentication_Cheat_Sheet&amp;diff=114775</id>
		<title>Authentication Cheat Sheet</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Authentication_Cheat_Sheet&amp;diff=114775"/>
				<updated>2011-07-28T20:08:31Z</updated>
		
		<summary type="html">&lt;p&gt;Kcfredman: /* Incorrect responses examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction  =&lt;br /&gt;
&lt;br /&gt;
'''Authentication''' is the process of verification that an individual or an entity is who it claims to be. Authentication is commonly performed by submitting a user name or ID and one or more items of private information that only a given user should know. &lt;br /&gt;
&lt;br /&gt;
'''Session Management''' is a process by which a server maintains the state of an entity interacting with it. This is required for a server to remember how to react to subsequent requests throughout a transaction. Sessions are maintained on the server by a session identifier which can be passed back and forward between the client and server when transmitting and receiving requests. Sessions should be unique per user and computationally very difficult to predict. &lt;br /&gt;
&lt;br /&gt;
For more information on Authentication, please see the OWASP [[Guide to Authentication]] page.&lt;br /&gt;
&lt;br /&gt;
= Authentication General Guidelines  =&lt;br /&gt;
&lt;br /&gt;
== Implement Proper Password Strength Controls  ==&lt;br /&gt;
&lt;br /&gt;
A key concern when using passwords for authentication is password strength. A &amp;quot;strong&amp;quot; password policy makes it difficult or even improbable for one to guess the password either by using manual or automated means. The following characteristics define strong a strong password: &lt;br /&gt;
&lt;br /&gt;
=== Password Length  ===&lt;br /&gt;
&lt;br /&gt;
Longer passwords provide a greater combination of characters and consequently make it more difficult for an attacker to guess. &lt;br /&gt;
&lt;br /&gt;
'''Important applications''': Minimum of 6 characters in length. &lt;br /&gt;
&lt;br /&gt;
'''Critical applications''': Minimum of 8 characters in length. (consider multi-factor authentication) &lt;br /&gt;
&lt;br /&gt;
'''Highly critical applications''': Consider multi-factor authentication &lt;br /&gt;
&lt;br /&gt;
=== Password complexity  ===&lt;br /&gt;
&lt;br /&gt;
'''Example'''&amp;lt;br&amp;gt;Passwords should be checked for the following composition or a variance of such: &lt;br /&gt;
&lt;br /&gt;
*at least: 1 uppercase character (A-Z) &lt;br /&gt;
*at least: 1 lowercase character (a-z) &lt;br /&gt;
*at least: 1 digit (0-9) &lt;br /&gt;
*at least: 1 special character (!&amp;quot;£$%&amp;amp;amp;...) &lt;br /&gt;
*a defined minimum length (e.g. 8 chars) &lt;br /&gt;
*a defined maximum length (as with all external input) &lt;br /&gt;
*no contiguous characters (e.g. 123abcd) &lt;br /&gt;
*not more than 2 identical characters in a row (1111)&lt;br /&gt;
&lt;br /&gt;
== Implement Secure Password Recovery Mechanism  ==&lt;br /&gt;
&lt;br /&gt;
It is common for an application to have a mechanism that provides a means for a user to gain access to their account in the event they forget their password. Please see [https://www.owasp.org/index.php/Forgot_Password_Cheat_Sheet https://www.owasp.org/index.php/Forgot_Password_Cheat_Sheet] for details on this feature.&lt;br /&gt;
&lt;br /&gt;
== Utilize Multi-Factor Authentication  ==&lt;br /&gt;
&lt;br /&gt;
Multifactor factor authentication is using more than one of: &lt;br /&gt;
&lt;br /&gt;
*Something you know (account details or passwords) &lt;br /&gt;
*Something you have (tokens or mobile phones) &lt;br /&gt;
*Something you are (biometrics)&lt;br /&gt;
&lt;br /&gt;
to logon or process a transaction. &lt;br /&gt;
&lt;br /&gt;
Authentication schemes such as One Time Passwords (OTP) implemented using a hardware token can also be&amp;amp;nbsp;key&amp;amp;nbsp;in fighting attacks such as CSRF and client-side malware. &lt;br /&gt;
&lt;br /&gt;
== Authentication and Error Messages  ==&lt;br /&gt;
&lt;br /&gt;
Incorrectly implemented error messages in the case of authentication functionality can be used for the purposes of user ID and password enumeration. &lt;br /&gt;
&lt;br /&gt;
'''An application should respond (both HTTP and HTML)&amp;amp;nbsp;in a generic manner which is not unique to the error condition or authentication failure.''' &lt;br /&gt;
&lt;br /&gt;
==== Authentication responses  ====&lt;br /&gt;
&lt;br /&gt;
An application should respond with a generic error message regardless if the user ID or password was incorrect. It should also give no indication to the status of an existing account.&lt;br /&gt;
&lt;br /&gt;
==== Incorrect responses examples  ====&lt;br /&gt;
&lt;br /&gt;
*&amp;quot;Login for User foo: invalid password&amp;quot; &lt;br /&gt;
*&amp;quot;Login failed, invalid user ID&amp;quot; &lt;br /&gt;
*&amp;quot;Login failed; account disabled&amp;quot; &lt;br /&gt;
*&amp;quot;Login failed; this user is not active&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Correct response example  ====&lt;br /&gt;
&lt;br /&gt;
*&amp;quot;Login failed; Invalid user&amp;amp;nbsp;ID or password&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The correct response does not indicate if the user ID or password is the incorrect parameter and hence inferring a valid user ID. &lt;br /&gt;
&lt;br /&gt;
==== Error Codes and URL's  ====&lt;br /&gt;
&lt;br /&gt;
The application may return a different HTTP Error code depending on the authentication attempt response. It&amp;amp;nbsp;may respond with a 200 for a positive result and a 403 for a negative result. Even though a generic error page is shown to a user, the HTTP response code may differ which can indicate a signature.&lt;br /&gt;
&lt;br /&gt;
== Transmit Passwords Only Over TLS  ==&lt;br /&gt;
&lt;br /&gt;
See: &amp;quot;Transport Layer Protection Cheat Sheet&amp;quot; &lt;br /&gt;
&lt;br /&gt;
[http://www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Sheet http://www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Sheet] &lt;br /&gt;
&lt;br /&gt;
&amp;quot;The login page and all subsequent authenticated pages must be exclusively accessed over TLS. The initial login page, referred to as the &amp;quot;login landing page&amp;quot;, must be served over TLS. Failure to utilize TLS for the login landing page allows an attacker to modify the login form action, causing the user's credentials to be posted to an arbitrary location. Failure to utilize TLS for authenticated pages after the login enables an attacker to view the unencrypted session ID and compromise the user's authenticated session.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
== Implement Account Lockout  ==&lt;br /&gt;
&lt;br /&gt;
If an attacker is able to guess passwords without the account becoming disabled due to failed authentication attempts, the attacker has an opportunity to continue with a brute force attack until the account is compromised. &lt;br /&gt;
&lt;br /&gt;
Automating brute-force/password guessing attacks on web applications is a trivial challenge. Password lockout mechanisms should be employed that lock out an account if more than a preset number of unsuccessful login attempts are made. &lt;br /&gt;
&lt;br /&gt;
Password lockout mechanisms have a logical weakness. An attacker that undertakes a large numbers of authentication attempts on known account names can produce a result that locks out entire blocks of application users accounts. &lt;br /&gt;
&lt;br /&gt;
Given that the intent of a password lockout system is to protect from brute-force attacks, a sensible strategy is to lockout accounts for a number of hours. This significantly slows down attackers, while allowing the accounts to be open for legitimate users. &lt;br /&gt;
&lt;br /&gt;
See also &amp;quot;Reverse Brute-force&amp;quot; [[Reverse Brute Force|Reverse_Brute_Force]]&lt;br /&gt;
&lt;br /&gt;
= Session Management General Guidelines  =&lt;br /&gt;
&lt;br /&gt;
Session management is directly related to authentication. The '''Session Management General Guidelines''' previously available on this OWASP Authentication Cheat Sheet have been integrated into the new [https://www.owasp.org/index.php/Session_Management_Cheat_Sheet OWASP Session Management Cheat Sheet]. &lt;br /&gt;
&lt;br /&gt;
= Related Articles  =&lt;br /&gt;
&lt;br /&gt;
{{Cheatsheet_Navigation}} &lt;br /&gt;
&lt;br /&gt;
= Authors and Primary Editors  =&lt;br /&gt;
&lt;br /&gt;
Eoin Keary eoinkeary[at]owasp.org &lt;br /&gt;
&lt;br /&gt;
[[Category:How_To]] [[Category:Cheatsheets]] [[Category:OWASP_Document]] [[Category:OWASP_Top_Ten_Project]]&lt;/div&gt;</summary>
		<author><name>Kcfredman</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Authentication_Cheat_Sheet&amp;diff=114774</id>
		<title>Authentication Cheat Sheet</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Authentication_Cheat_Sheet&amp;diff=114774"/>
				<updated>2011-07-28T20:04:23Z</updated>
		
		<summary type="html">&lt;p&gt;Kcfredman: /* Implement Account Lockout */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction  =&lt;br /&gt;
&lt;br /&gt;
'''Authentication''' is the process of verification that an individual or an entity is who it claims to be. Authentication is commonly performed by submitting a user name or ID and one or more items of private information that only a given user should know. &lt;br /&gt;
&lt;br /&gt;
'''Session Management''' is a process by which a server maintains the state of an entity interacting with it. This is required for a server to remember how to react to subsequent requests throughout a transaction. Sessions are maintained on the server by a session identifier which can be passed back and forward between the client and server when transmitting and receiving requests. Sessions should be unique per user and computationally very difficult to predict. &lt;br /&gt;
&lt;br /&gt;
For more information on Authentication, please see the OWASP [[Guide to Authentication]] page.&lt;br /&gt;
&lt;br /&gt;
= Authentication General Guidelines  =&lt;br /&gt;
&lt;br /&gt;
== Implement Proper Password Strength Controls  ==&lt;br /&gt;
&lt;br /&gt;
A key concern when using passwords for authentication is password strength. A &amp;quot;strong&amp;quot; password policy makes it difficult or even improbable for one to guess the password either by using manual or automated means. The following characteristics define strong a strong password: &lt;br /&gt;
&lt;br /&gt;
=== Password Length  ===&lt;br /&gt;
&lt;br /&gt;
Longer passwords provide a greater combination of characters and consequently make it more difficult for an attacker to guess. &lt;br /&gt;
&lt;br /&gt;
'''Important applications''': Minimum of 6 characters in length. &lt;br /&gt;
&lt;br /&gt;
'''Critical applications''': Minimum of 8 characters in length. (consider multi-factor authentication) &lt;br /&gt;
&lt;br /&gt;
'''Highly critical applications''': Consider multi-factor authentication &lt;br /&gt;
&lt;br /&gt;
=== Password complexity  ===&lt;br /&gt;
&lt;br /&gt;
'''Example'''&amp;lt;br&amp;gt;Passwords should be checked for the following composition or a variance of such: &lt;br /&gt;
&lt;br /&gt;
*at least: 1 uppercase character (A-Z) &lt;br /&gt;
*at least: 1 lowercase character (a-z) &lt;br /&gt;
*at least: 1 digit (0-9) &lt;br /&gt;
*at least: 1 special character (!&amp;quot;£$%&amp;amp;amp;...) &lt;br /&gt;
*a defined minimum length (e.g. 8 chars) &lt;br /&gt;
*a defined maximum length (as with all external input) &lt;br /&gt;
*no contiguous characters (e.g. 123abcd) &lt;br /&gt;
*not more than 2 identical characters in a row (1111)&lt;br /&gt;
&lt;br /&gt;
== Implement Secure Password Recovery Mechanism  ==&lt;br /&gt;
&lt;br /&gt;
It is common for an application to have a mechanism that provides a means for a user to gain access to their account in the event they forget their password. Please see [https://www.owasp.org/index.php/Forgot_Password_Cheat_Sheet https://www.owasp.org/index.php/Forgot_Password_Cheat_Sheet] for details on this feature.&lt;br /&gt;
&lt;br /&gt;
== Utilize Multi-Factor Authentication  ==&lt;br /&gt;
&lt;br /&gt;
Multifactor factor authentication is using more than one of: &lt;br /&gt;
&lt;br /&gt;
*Something you know (account details or passwords) &lt;br /&gt;
*Something you have (tokens or mobile phones) &lt;br /&gt;
*Something you are (biometrics)&lt;br /&gt;
&lt;br /&gt;
to logon or process a transaction. &lt;br /&gt;
&lt;br /&gt;
Authentication schemes such as One Time Passwords (OTP) implemented using a hardware token can also be&amp;amp;nbsp;key&amp;amp;nbsp;in fighting attacks such as CSRF and client-side malware. &lt;br /&gt;
&lt;br /&gt;
== Authentication and Error Messages  ==&lt;br /&gt;
&lt;br /&gt;
Incorrectly implemented error messages in the case of authentication functionality can be used for the purposes of user ID and password enumeration. &lt;br /&gt;
&lt;br /&gt;
'''An application should respond (both HTTP and HTML)&amp;amp;nbsp;in a generic manner which is not unique to the error condition or authentication failure.''' &lt;br /&gt;
&lt;br /&gt;
==== Authentication responses  ====&lt;br /&gt;
&lt;br /&gt;
An application should respond with a generic error message regardless if the user ID or password was incorrect. It should also give no indication to the status of an existing account.&lt;br /&gt;
&lt;br /&gt;
==== Incorrect responses examples  ====&lt;br /&gt;
&lt;br /&gt;
*&amp;quot;Login for User foo: invalid password&amp;quot; &lt;br /&gt;
*&amp;quot;Login failed, invalid user ID&amp;quot; &lt;br /&gt;
*&amp;quot;Login failed; account disabled&amp;quot; &lt;br /&gt;
*&amp;quot;login failed; this user is not active&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Correct response example  ====&lt;br /&gt;
&lt;br /&gt;
*&amp;quot;Login failed; Invalid user&amp;amp;nbsp;ID or password&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The correct response does not indicate if the user ID or password is the incorrect parameter and hence inferring a valid user ID. &lt;br /&gt;
&lt;br /&gt;
==== Error Codes and URL's  ====&lt;br /&gt;
&lt;br /&gt;
The application may return a different HTTP Error code depending on the authentication attempt response. It&amp;amp;nbsp;may respond with a 200 for a positive result and a 403 for a negative result. Even though a generic error page is shown to a user, the HTTP response code may differ which can indicate a signature.&lt;br /&gt;
&lt;br /&gt;
== Transmit Passwords Only Over TLS  ==&lt;br /&gt;
&lt;br /&gt;
See: &amp;quot;Transport Layer Protection Cheat Sheet&amp;quot; &lt;br /&gt;
&lt;br /&gt;
[http://www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Sheet http://www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Sheet] &lt;br /&gt;
&lt;br /&gt;
&amp;quot;The login page and all subsequent authenticated pages must be exclusively accessed over TLS. The initial login page, referred to as the &amp;quot;login landing page&amp;quot;, must be served over TLS. Failure to utilize TLS for the login landing page allows an attacker to modify the login form action, causing the user's credentials to be posted to an arbitrary location. Failure to utilize TLS for authenticated pages after the login enables an attacker to view the unencrypted session ID and compromise the user's authenticated session.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
== Implement Account Lockout  ==&lt;br /&gt;
&lt;br /&gt;
If an attacker is able to guess passwords without the account becoming disabled due to failed authentication attempts, the attacker has an opportunity to continue with a brute force attack until the account is compromised. &lt;br /&gt;
&lt;br /&gt;
Automating brute-force/password guessing attacks on web applications is a trivial challenge. Password lockout mechanisms should be employed that lock out an account if more than a preset number of unsuccessful login attempts are made. &lt;br /&gt;
&lt;br /&gt;
Password lockout mechanisms have a logical weakness. An attacker that undertakes a large numbers of authentication attempts on known account names can produce a result that locks out entire blocks of application users accounts. &lt;br /&gt;
&lt;br /&gt;
Given that the intent of a password lockout system is to protect from brute-force attacks, a sensible strategy is to lockout accounts for a number of hours. This significantly slows down attackers, while allowing the accounts to be open for legitimate users. &lt;br /&gt;
&lt;br /&gt;
See also &amp;quot;Reverse Brute-force&amp;quot; [[Reverse Brute Force|Reverse_Brute_Force]]&lt;br /&gt;
&lt;br /&gt;
= Session Management General Guidelines  =&lt;br /&gt;
&lt;br /&gt;
Session management is directly related to authentication. The '''Session Management General Guidelines''' previously available on this OWASP Authentication Cheat Sheet have been integrated into the new [https://www.owasp.org/index.php/Session_Management_Cheat_Sheet OWASP Session Management Cheat Sheet]. &lt;br /&gt;
&lt;br /&gt;
= Related Articles  =&lt;br /&gt;
&lt;br /&gt;
{{Cheatsheet_Navigation}} &lt;br /&gt;
&lt;br /&gt;
= Authors and Primary Editors  =&lt;br /&gt;
&lt;br /&gt;
Eoin Keary eoinkeary[at]owasp.org &lt;br /&gt;
&lt;br /&gt;
[[Category:How_To]] [[Category:Cheatsheets]] [[Category:OWASP_Document]] [[Category:OWASP_Top_Ten_Project]]&lt;/div&gt;</summary>
		<author><name>Kcfredman</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Authentication_Cheat_Sheet&amp;diff=114772</id>
		<title>Authentication Cheat Sheet</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Authentication_Cheat_Sheet&amp;diff=114772"/>
				<updated>2011-07-28T19:55:10Z</updated>
		
		<summary type="html">&lt;p&gt;Kcfredman: /* Error Codes and URL's */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction  =&lt;br /&gt;
&lt;br /&gt;
'''Authentication''' is the process of verification that an individual or an entity is who it claims to be. Authentication is commonly performed by submitting a user name or ID and one or more items of private information that only a given user should know. &lt;br /&gt;
&lt;br /&gt;
'''Session Management''' is a process by which a server maintains the state of an entity interacting with it. This is required for a server to remember how to react to subsequent requests throughout a transaction. Sessions are maintained on the server by a session identifier which can be passed back and forward between the client and server when transmitting and receiving requests. Sessions should be unique per user and computationally very difficult to predict. &lt;br /&gt;
&lt;br /&gt;
For more information on Authentication, please see the OWASP [[Guide to Authentication]] page.&lt;br /&gt;
&lt;br /&gt;
= Authentication General Guidelines  =&lt;br /&gt;
&lt;br /&gt;
== Implement Proper Password Strength Controls  ==&lt;br /&gt;
&lt;br /&gt;
A key concern when using passwords for authentication is password strength. A &amp;quot;strong&amp;quot; password policy makes it difficult or even improbable for one to guess the password either by using manual or automated means. The following characteristics define strong a strong password: &lt;br /&gt;
&lt;br /&gt;
=== Password Length  ===&lt;br /&gt;
&lt;br /&gt;
Longer passwords provide a greater combination of characters and consequently make it more difficult for an attacker to guess. &lt;br /&gt;
&lt;br /&gt;
'''Important applications''': Minimum of 6 characters in length. &lt;br /&gt;
&lt;br /&gt;
'''Critical applications''': Minimum of 8 characters in length. (consider multi-factor authentication) &lt;br /&gt;
&lt;br /&gt;
'''Highly critical applications''': Consider multi-factor authentication &lt;br /&gt;
&lt;br /&gt;
=== Password complexity  ===&lt;br /&gt;
&lt;br /&gt;
'''Example'''&amp;lt;br&amp;gt;Passwords should be checked for the following composition or a variance of such: &lt;br /&gt;
&lt;br /&gt;
*at least: 1 uppercase character (A-Z) &lt;br /&gt;
*at least: 1 lowercase character (a-z) &lt;br /&gt;
*at least: 1 digit (0-9) &lt;br /&gt;
*at least: 1 special character (!&amp;quot;£$%&amp;amp;amp;...) &lt;br /&gt;
*a defined minimum length (e.g. 8 chars) &lt;br /&gt;
*a defined maximum length (as with all external input) &lt;br /&gt;
*no contiguous characters (e.g. 123abcd) &lt;br /&gt;
*not more than 2 identical characters in a row (1111)&lt;br /&gt;
&lt;br /&gt;
== Implement Secure Password Recovery Mechanism  ==&lt;br /&gt;
&lt;br /&gt;
It is common for an application to have a mechanism that provides a means for a user to gain access to their account in the event they forget their password. Please see [https://www.owasp.org/index.php/Forgot_Password_Cheat_Sheet https://www.owasp.org/index.php/Forgot_Password_Cheat_Sheet] for details on this feature.&lt;br /&gt;
&lt;br /&gt;
== Utilize Multi-Factor Authentication  ==&lt;br /&gt;
&lt;br /&gt;
Multifactor factor authentication is using more than one of: &lt;br /&gt;
&lt;br /&gt;
*Something you know (account details or passwords) &lt;br /&gt;
*Something you have (tokens or mobile phones) &lt;br /&gt;
*Something you are (biometrics)&lt;br /&gt;
&lt;br /&gt;
to logon or process a transaction. &lt;br /&gt;
&lt;br /&gt;
Authentication schemes such as One Time Passwords (OTP) implemented using a hardware token can also be&amp;amp;nbsp;key&amp;amp;nbsp;in fighting attacks such as CSRF and client-side malware. &lt;br /&gt;
&lt;br /&gt;
== Authentication and Error Messages  ==&lt;br /&gt;
&lt;br /&gt;
Incorrectly implemented error messages in the case of authentication functionality can be used for the purposes of user ID and password enumeration. &lt;br /&gt;
&lt;br /&gt;
'''An application should respond (both HTTP and HTML)&amp;amp;nbsp;in a generic manner which is not unique to the error condition or authentication failure.''' &lt;br /&gt;
&lt;br /&gt;
==== Authentication responses  ====&lt;br /&gt;
&lt;br /&gt;
An application should respond with a generic error message regardless if the user ID or password was incorrect. It should also give no indication to the status of an existing account.&lt;br /&gt;
&lt;br /&gt;
==== Incorrect responses examples  ====&lt;br /&gt;
&lt;br /&gt;
*&amp;quot;Login for User foo: invalid password&amp;quot; &lt;br /&gt;
*&amp;quot;Login failed, invalid user ID&amp;quot; &lt;br /&gt;
*&amp;quot;Login failed; account disabled&amp;quot; &lt;br /&gt;
*&amp;quot;login failed; this user is not active&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Correct response example  ====&lt;br /&gt;
&lt;br /&gt;
*&amp;quot;Login failed; Invalid user&amp;amp;nbsp;ID or password&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The correct response does not indicate if the user ID or password is the incorrect parameter and hence inferring a valid user ID. &lt;br /&gt;
&lt;br /&gt;
==== Error Codes and URL's  ====&lt;br /&gt;
&lt;br /&gt;
The application may return a different HTTP Error code depending on the authentication attempt response. It&amp;amp;nbsp;may respond with a 200 for a positive result and a 403 for a negative result. Even though a generic error page is shown to a user, the HTTP response code may differ which can indicate a signature.&lt;br /&gt;
&lt;br /&gt;
== Transmit Passwords Only Over TLS  ==&lt;br /&gt;
&lt;br /&gt;
See: &amp;quot;Transport Layer Protection Cheat Sheet&amp;quot; &lt;br /&gt;
&lt;br /&gt;
[http://www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Sheet http://www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Sheet] &lt;br /&gt;
&lt;br /&gt;
&amp;quot;The login page and all subsequent authenticated pages must be exclusively accessed over TLS. The initial login page, referred to as the &amp;quot;login landing page&amp;quot;, must be served over TLS. Failure to utilize TLS for the login landing page allows an attacker to modify the login form action, causing the user's credentials to be posted to an arbitrary location. Failure to utilize TLS for authenticated pages after the login enables an attacker to view the unencrypted session ID and compromise the user's authenticated session.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
== Implement Account Lockout  ==&lt;br /&gt;
&lt;br /&gt;
If an attacker is able to guess passwords without the account becoming disabled due to failed authentication attempts, this&amp;amp;nbsp;provides the opportunity of the attacked to continue with a brute force attack until the account is compromised. &lt;br /&gt;
&lt;br /&gt;
Automating brute-force/password guessing attacks on web applications is a trivial challenge. Password lockout mechanisms should be employed that lock out an account if more than a preset number of unsuccessful login attempts are made. &lt;br /&gt;
&lt;br /&gt;
Password lockout mechanisms do have a logical&amp;amp;nbsp;weakness, however. It is possible for an&amp;amp;nbsp;attacker to attempt a large number of authentication attempts&amp;amp;nbsp;on known account names resulting in locking out entire blocks of application&amp;amp;nbsp;users accounts. &lt;br /&gt;
&lt;br /&gt;
Given that the intent of a password lockout system is to protect from brute-force attacks, a sensible strategy is to lockout accounts for a number of hours. This significantly slows down attackers, while allowing the accounts to be open for legitimate users. &lt;br /&gt;
&lt;br /&gt;
See also &amp;quot;Reverse Brute-force&amp;quot; [[Reverse Brute Force|Reverse_Brute_Force]]&lt;br /&gt;
&lt;br /&gt;
= Session Management General Guidelines  =&lt;br /&gt;
&lt;br /&gt;
Session management is directly related to authentication. The '''Session Management General Guidelines''' previously available on this OWASP Authentication Cheat Sheet have been integrated into the new [https://www.owasp.org/index.php/Session_Management_Cheat_Sheet OWASP Session Management Cheat Sheet]. &lt;br /&gt;
&lt;br /&gt;
= Related Articles  =&lt;br /&gt;
&lt;br /&gt;
{{Cheatsheet_Navigation}} &lt;br /&gt;
&lt;br /&gt;
= Authors and Primary Editors  =&lt;br /&gt;
&lt;br /&gt;
Eoin Keary eoinkeary[at]owasp.org &lt;br /&gt;
&lt;br /&gt;
[[Category:How_To]] [[Category:Cheatsheets]] [[Category:OWASP_Document]] [[Category:OWASP_Top_Ten_Project]]&lt;/div&gt;</summary>
		<author><name>Kcfredman</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Authentication_Cheat_Sheet&amp;diff=114771</id>
		<title>Authentication Cheat Sheet</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Authentication_Cheat_Sheet&amp;diff=114771"/>
				<updated>2011-07-28T19:53:41Z</updated>
		
		<summary type="html">&lt;p&gt;Kcfredman: /* Authentication responses */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction  =&lt;br /&gt;
&lt;br /&gt;
'''Authentication''' is the process of verification that an individual or an entity is who it claims to be. Authentication is commonly performed by submitting a user name or ID and one or more items of private information that only a given user should know. &lt;br /&gt;
&lt;br /&gt;
'''Session Management''' is a process by which a server maintains the state of an entity interacting with it. This is required for a server to remember how to react to subsequent requests throughout a transaction. Sessions are maintained on the server by a session identifier which can be passed back and forward between the client and server when transmitting and receiving requests. Sessions should be unique per user and computationally very difficult to predict. &lt;br /&gt;
&lt;br /&gt;
For more information on Authentication, please see the OWASP [[Guide to Authentication]] page.&lt;br /&gt;
&lt;br /&gt;
= Authentication General Guidelines  =&lt;br /&gt;
&lt;br /&gt;
== Implement Proper Password Strength Controls  ==&lt;br /&gt;
&lt;br /&gt;
A key concern when using passwords for authentication is password strength. A &amp;quot;strong&amp;quot; password policy makes it difficult or even improbable for one to guess the password either by using manual or automated means. The following characteristics define strong a strong password: &lt;br /&gt;
&lt;br /&gt;
=== Password Length  ===&lt;br /&gt;
&lt;br /&gt;
Longer passwords provide a greater combination of characters and consequently make it more difficult for an attacker to guess. &lt;br /&gt;
&lt;br /&gt;
'''Important applications''': Minimum of 6 characters in length. &lt;br /&gt;
&lt;br /&gt;
'''Critical applications''': Minimum of 8 characters in length. (consider multi-factor authentication) &lt;br /&gt;
&lt;br /&gt;
'''Highly critical applications''': Consider multi-factor authentication &lt;br /&gt;
&lt;br /&gt;
=== Password complexity  ===&lt;br /&gt;
&lt;br /&gt;
'''Example'''&amp;lt;br&amp;gt;Passwords should be checked for the following composition or a variance of such: &lt;br /&gt;
&lt;br /&gt;
*at least: 1 uppercase character (A-Z) &lt;br /&gt;
*at least: 1 lowercase character (a-z) &lt;br /&gt;
*at least: 1 digit (0-9) &lt;br /&gt;
*at least: 1 special character (!&amp;quot;£$%&amp;amp;amp;...) &lt;br /&gt;
*a defined minimum length (e.g. 8 chars) &lt;br /&gt;
*a defined maximum length (as with all external input) &lt;br /&gt;
*no contiguous characters (e.g. 123abcd) &lt;br /&gt;
*not more than 2 identical characters in a row (1111)&lt;br /&gt;
&lt;br /&gt;
== Implement Secure Password Recovery Mechanism  ==&lt;br /&gt;
&lt;br /&gt;
It is common for an application to have a mechanism that provides a means for a user to gain access to their account in the event they forget their password. Please see [https://www.owasp.org/index.php/Forgot_Password_Cheat_Sheet https://www.owasp.org/index.php/Forgot_Password_Cheat_Sheet] for details on this feature.&lt;br /&gt;
&lt;br /&gt;
== Utilize Multi-Factor Authentication  ==&lt;br /&gt;
&lt;br /&gt;
Multifactor factor authentication is using more than one of: &lt;br /&gt;
&lt;br /&gt;
*Something you know (account details or passwords) &lt;br /&gt;
*Something you have (tokens or mobile phones) &lt;br /&gt;
*Something you are (biometrics)&lt;br /&gt;
&lt;br /&gt;
to logon or process a transaction. &lt;br /&gt;
&lt;br /&gt;
Authentication schemes such as One Time Passwords (OTP) implemented using a hardware token can also be&amp;amp;nbsp;key&amp;amp;nbsp;in fighting attacks such as CSRF and client-side malware. &lt;br /&gt;
&lt;br /&gt;
== Authentication and Error Messages  ==&lt;br /&gt;
&lt;br /&gt;
Incorrectly implemented error messages in the case of authentication functionality can be used for the purposes of user ID and password enumeration. &lt;br /&gt;
&lt;br /&gt;
'''An application should respond (both HTTP and HTML)&amp;amp;nbsp;in a generic manner which is not unique to the error condition or authentication failure.''' &lt;br /&gt;
&lt;br /&gt;
==== Authentication responses  ====&lt;br /&gt;
&lt;br /&gt;
An application should respond with a generic error message regardless if the user ID or password was incorrect. It should also give no indication to the status of an existing account.&lt;br /&gt;
&lt;br /&gt;
==== Incorrect responses examples  ====&lt;br /&gt;
&lt;br /&gt;
*&amp;quot;Login for User foo: invalid password&amp;quot; &lt;br /&gt;
*&amp;quot;Login failed, invalid user ID&amp;quot; &lt;br /&gt;
*&amp;quot;Login failed; account disabled&amp;quot; &lt;br /&gt;
*&amp;quot;login failed; this user is not active&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Correct response example  ====&lt;br /&gt;
&lt;br /&gt;
*&amp;quot;Login failed; Invalid user&amp;amp;nbsp;ID or password&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The correct response does not indicate if the user ID or password is the incorrect parameter and hence inferring a valid user ID. &lt;br /&gt;
&lt;br /&gt;
==== Error Codes and URL's  ====&lt;br /&gt;
&lt;br /&gt;
The application may return a different HTTP Error code depending on the authentication attempt response. It&amp;amp;nbsp;may respond with a 200 for a positive result and a 403 for a negative result. Even though a generc error page is shown to a user the HTTP response code may differ which can indicate a signature. &lt;br /&gt;
&lt;br /&gt;
== Transmit Passwords Only Over TLS  ==&lt;br /&gt;
&lt;br /&gt;
See: &amp;quot;Transport Layer Protection Cheat Sheet&amp;quot; &lt;br /&gt;
&lt;br /&gt;
[http://www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Sheet http://www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Sheet] &lt;br /&gt;
&lt;br /&gt;
&amp;quot;The login page and all subsequent authenticated pages must be exclusively accessed over TLS. The initial login page, referred to as the &amp;quot;login landing page&amp;quot;, must be served over TLS. Failure to utilize TLS for the login landing page allows an attacker to modify the login form action, causing the user's credentials to be posted to an arbitrary location. Failure to utilize TLS for authenticated pages after the login enables an attacker to view the unencrypted session ID and compromise the user's authenticated session.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
== Implement Account Lockout  ==&lt;br /&gt;
&lt;br /&gt;
If an attacker is able to guess passwords without the account becoming disabled due to failed authentication attempts, this&amp;amp;nbsp;provides the opportunity of the attacked to continue with a brute force attack until the account is compromised. &lt;br /&gt;
&lt;br /&gt;
Automating brute-force/password guessing attacks on web applications is a trivial challenge. Password lockout mechanisms should be employed that lock out an account if more than a preset number of unsuccessful login attempts are made. &lt;br /&gt;
&lt;br /&gt;
Password lockout mechanisms do have a logical&amp;amp;nbsp;weakness, however. It is possible for an&amp;amp;nbsp;attacker to attempt a large number of authentication attempts&amp;amp;nbsp;on known account names resulting in locking out entire blocks of application&amp;amp;nbsp;users accounts. &lt;br /&gt;
&lt;br /&gt;
Given that the intent of a password lockout system is to protect from brute-force attacks, a sensible strategy is to lockout accounts for a number of hours. This significantly slows down attackers, while allowing the accounts to be open for legitimate users. &lt;br /&gt;
&lt;br /&gt;
See also &amp;quot;Reverse Brute-force&amp;quot; [[Reverse Brute Force|Reverse_Brute_Force]]&lt;br /&gt;
&lt;br /&gt;
= Session Management General Guidelines  =&lt;br /&gt;
&lt;br /&gt;
Session management is directly related to authentication. The '''Session Management General Guidelines''' previously available on this OWASP Authentication Cheat Sheet have been integrated into the new [https://www.owasp.org/index.php/Session_Management_Cheat_Sheet OWASP Session Management Cheat Sheet]. &lt;br /&gt;
&lt;br /&gt;
= Related Articles  =&lt;br /&gt;
&lt;br /&gt;
{{Cheatsheet_Navigation}} &lt;br /&gt;
&lt;br /&gt;
= Authors and Primary Editors  =&lt;br /&gt;
&lt;br /&gt;
Eoin Keary eoinkeary[at]owasp.org &lt;br /&gt;
&lt;br /&gt;
[[Category:How_To]] [[Category:Cheatsheets]] [[Category:OWASP_Document]] [[Category:OWASP_Top_Ten_Project]]&lt;/div&gt;</summary>
		<author><name>Kcfredman</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Authentication_Cheat_Sheet&amp;diff=114767</id>
		<title>Authentication Cheat Sheet</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Authentication_Cheat_Sheet&amp;diff=114767"/>
				<updated>2011-07-28T19:47:28Z</updated>
		
		<summary type="html">&lt;p&gt;Kcfredman: /* Implement Proper Password Strength Controls */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction  =&lt;br /&gt;
&lt;br /&gt;
'''Authentication''' is the process of verification that an individual or an entity is who it claims to be. Authentication is commonly performed by submitting a user name or ID and one or more items of private information that only a given user should know. &lt;br /&gt;
&lt;br /&gt;
'''Session Management''' is a process by which a server maintains the state of an entity interacting with it. This is required for a server to remember how to react to subsequent requests throughout a transaction. Sessions are maintained on the server by a session identifier which can be passed back and forward between the client and server when transmitting and receiving requests. Sessions should be unique per user and computationally very difficult to predict. &lt;br /&gt;
&lt;br /&gt;
For more information on Authentication, please see the OWASP [[Guide to Authentication]] page.&lt;br /&gt;
&lt;br /&gt;
= Authentication General Guidelines  =&lt;br /&gt;
&lt;br /&gt;
== Implement Proper Password Strength Controls  ==&lt;br /&gt;
&lt;br /&gt;
A key concern when using passwords for authentication is password strength. A &amp;quot;strong&amp;quot; password policy makes it difficult or even improbable for one to guess the password either by using manual or automated means. The following characteristics define strong a strong password: &lt;br /&gt;
&lt;br /&gt;
=== Password Length  ===&lt;br /&gt;
&lt;br /&gt;
Longer passwords provide a greater combination of characters and consequently make it more difficult for an attacker to guess. &lt;br /&gt;
&lt;br /&gt;
'''Important applications''': Minimum of 6 characters in length. &lt;br /&gt;
&lt;br /&gt;
'''Critical applications''': Minimum of 8 characters in length. (consider multi-factor authentication) &lt;br /&gt;
&lt;br /&gt;
'''Highly critical applications''': Consider multi-factor authentication &lt;br /&gt;
&lt;br /&gt;
=== Password complexity  ===&lt;br /&gt;
&lt;br /&gt;
'''Example'''&amp;lt;br&amp;gt;Passwords should be checked for the following composition or a variance of such: &lt;br /&gt;
&lt;br /&gt;
*at least: 1 uppercase character (A-Z) &lt;br /&gt;
*at least: 1 lowercase character (a-z) &lt;br /&gt;
*at least: 1 digit (0-9) &lt;br /&gt;
*at least: 1 special character (!&amp;quot;£$%&amp;amp;amp;...) &lt;br /&gt;
*a defined minimum length (e.g. 8 chars) &lt;br /&gt;
*a defined maximum length (as with all external input) &lt;br /&gt;
*no contiguous characters (e.g. 123abcd) &lt;br /&gt;
*not more than 2 identical characters in a row (1111)&lt;br /&gt;
&lt;br /&gt;
== Implement Secure Password Recovery Mechanism  ==&lt;br /&gt;
&lt;br /&gt;
It is common for an application to have a mechanism that provides a means for a user to gain access to their account in the event they forget their password. Please see [https://www.owasp.org/index.php/Forgot_Password_Cheat_Sheet https://www.owasp.org/index.php/Forgot_Password_Cheat_Sheet] for details on this feature.&lt;br /&gt;
&lt;br /&gt;
== Utilize Multi-Factor Authentication  ==&lt;br /&gt;
&lt;br /&gt;
Multifactor factor authentication is using more than one of: &lt;br /&gt;
&lt;br /&gt;
*Something you know (account details or passwords) &lt;br /&gt;
*Something you have (tokens or mobile phones) &lt;br /&gt;
*Something you are (biometrics)&lt;br /&gt;
&lt;br /&gt;
to logon or process a transaction. &lt;br /&gt;
&lt;br /&gt;
Authentication schemes such as One Time Passwords (OTP) implemented using a hardware token can also be&amp;amp;nbsp;key&amp;amp;nbsp;in fighting attacks such as CSRF and client-side malware. &lt;br /&gt;
&lt;br /&gt;
== Authentication and Error Messages  ==&lt;br /&gt;
&lt;br /&gt;
Incorrectly implemented error messages in the case of authentication functionality can be used for the purposes of user ID and password enumeration. &lt;br /&gt;
&lt;br /&gt;
'''An application should respond (both HTTP and HTML)&amp;amp;nbsp;in a generic manner which is not unique to the error condition or authentication failure.''' &lt;br /&gt;
&lt;br /&gt;
==== Authentication responses  ====&lt;br /&gt;
&lt;br /&gt;
An application should respond with a generic error message regardless if the user ID or password was incorrect. It should also no give any indication to the status of an account if it exists. &lt;br /&gt;
&lt;br /&gt;
==== Incorrect responses examples  ====&lt;br /&gt;
&lt;br /&gt;
*&amp;quot;Login for User foo: invalid password&amp;quot; &lt;br /&gt;
*&amp;quot;Login failed, invalid user ID&amp;quot; &lt;br /&gt;
*&amp;quot;Login failed; account disabled&amp;quot; &lt;br /&gt;
*&amp;quot;login failed; this user is not active&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Correct response example  ====&lt;br /&gt;
&lt;br /&gt;
*&amp;quot;Login failed; Invalid user&amp;amp;nbsp;ID or password&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The correct response does not indicate if the user ID or password is the incorrect parameter and hence inferring a valid user ID. &lt;br /&gt;
&lt;br /&gt;
==== Error Codes and URL's  ====&lt;br /&gt;
&lt;br /&gt;
The application may return a different HTTP Error code depending on the authentication attempt response. It&amp;amp;nbsp;may respond with a 200 for a positive result and a 403 for a negative result. Even though a generc error page is shown to a user the HTTP response code may differ which can indicate a signature. &lt;br /&gt;
&lt;br /&gt;
== Transmit Passwords Only Over TLS  ==&lt;br /&gt;
&lt;br /&gt;
See: &amp;quot;Transport Layer Protection Cheat Sheet&amp;quot; &lt;br /&gt;
&lt;br /&gt;
[http://www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Sheet http://www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Sheet] &lt;br /&gt;
&lt;br /&gt;
&amp;quot;The login page and all subsequent authenticated pages must be exclusively accessed over TLS. The initial login page, referred to as the &amp;quot;login landing page&amp;quot;, must be served over TLS. Failure to utilize TLS for the login landing page allows an attacker to modify the login form action, causing the user's credentials to be posted to an arbitrary location. Failure to utilize TLS for authenticated pages after the login enables an attacker to view the unencrypted session ID and compromise the user's authenticated session.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
== Implement Account Lockout  ==&lt;br /&gt;
&lt;br /&gt;
If an attacker is able to guess passwords without the account becoming disabled due to failed authentication attempts, this&amp;amp;nbsp;provides the opportunity of the attacked to continue with a brute force attack until the account is compromised. &lt;br /&gt;
&lt;br /&gt;
Automating brute-force/password guessing attacks on web applications is a trivial challenge. Password lockout mechanisms should be employed that lock out an account if more than a preset number of unsuccessful login attempts are made. &lt;br /&gt;
&lt;br /&gt;
Password lockout mechanisms do have a logical&amp;amp;nbsp;weakness, however. It is possible for an&amp;amp;nbsp;attacker to attempt a large number of authentication attempts&amp;amp;nbsp;on known account names resulting in locking out entire blocks of application&amp;amp;nbsp;users accounts. &lt;br /&gt;
&lt;br /&gt;
Given that the intent of a password lockout system is to protect from brute-force attacks, a sensible strategy is to lockout accounts for a number of hours. This significantly slows down attackers, while allowing the accounts to be open for legitimate users. &lt;br /&gt;
&lt;br /&gt;
See also &amp;quot;Reverse Brute-force&amp;quot; [[Reverse Brute Force|Reverse_Brute_Force]]&lt;br /&gt;
&lt;br /&gt;
= Session Management General Guidelines  =&lt;br /&gt;
&lt;br /&gt;
Session management is directly related to authentication. The '''Session Management General Guidelines''' previously available on this OWASP Authentication Cheat Sheet have been integrated into the new [https://www.owasp.org/index.php/Session_Management_Cheat_Sheet OWASP Session Management Cheat Sheet]. &lt;br /&gt;
&lt;br /&gt;
= Related Articles  =&lt;br /&gt;
&lt;br /&gt;
{{Cheatsheet_Navigation}} &lt;br /&gt;
&lt;br /&gt;
= Authors and Primary Editors  =&lt;br /&gt;
&lt;br /&gt;
Eoin Keary eoinkeary[at]owasp.org &lt;br /&gt;
&lt;br /&gt;
[[Category:How_To]] [[Category:Cheatsheets]] [[Category:OWASP_Document]] [[Category:OWASP_Top_Ten_Project]]&lt;/div&gt;</summary>
		<author><name>Kcfredman</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Authentication_Cheat_Sheet&amp;diff=114763</id>
		<title>Authentication Cheat Sheet</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Authentication_Cheat_Sheet&amp;diff=114763"/>
				<updated>2011-07-28T19:44:22Z</updated>
		
		<summary type="html">&lt;p&gt;Kcfredman: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction  =&lt;br /&gt;
&lt;br /&gt;
'''Authentication''' is the process of verification that an individual or an entity is who it claims to be. Authentication is commonly performed by submitting a user name or ID and one or more items of private information that only a given user should know. &lt;br /&gt;
&lt;br /&gt;
'''Session Management''' is a process by which a server maintains the state of an entity interacting with it. This is required for a server to remember how to react to subsequent requests throughout a transaction. Sessions are maintained on the server by a session identifier which can be passed back and forward between the client and server when transmitting and receiving requests. Sessions should be unique per user and computationally very difficult to predict. &lt;br /&gt;
&lt;br /&gt;
For more information on Authentication, please see the OWASP [[Guide to Authentication]] page.&lt;br /&gt;
&lt;br /&gt;
= Authentication General Guidelines  =&lt;br /&gt;
&lt;br /&gt;
== Implement Proper Password Strength Controls  ==&lt;br /&gt;
&lt;br /&gt;
A key concern when using passwords for authentication is password strength. A &amp;quot;strong&amp;quot; password policy makes it difficult or even improbable for one to guess the password either by using manual or automated means. The following characteristics define strong a strong password: &lt;br /&gt;
&lt;br /&gt;
=== Password Length  ===&lt;br /&gt;
&lt;br /&gt;
The longer the password the more combinations possible combinations of characters exist and is hence more difficult to guess. &lt;br /&gt;
&lt;br /&gt;
'''Important applications''': Minimum of 6 characters in length. &lt;br /&gt;
&lt;br /&gt;
'''Critical applications''': Minimum of 8 characters in length. (consider multi-factor authentication) &lt;br /&gt;
&lt;br /&gt;
'''Highly critical applications''': Consider multi-factor authentication &lt;br /&gt;
&lt;br /&gt;
=== Password complexity  ===&lt;br /&gt;
&lt;br /&gt;
'''Example'''&amp;lt;br&amp;gt;Passwords should be checked for the following composition or a variance of such: &lt;br /&gt;
&lt;br /&gt;
*at least: 1 uppercase character (A-Z) &lt;br /&gt;
*at least: 1 lowercase character (a-z) &lt;br /&gt;
*at least: 1 digit (0-9) &lt;br /&gt;
*at least one special character (!&amp;quot;£$%&amp;amp;amp;...) &lt;br /&gt;
*a defined minimum length (e.g. 8 chars) &lt;br /&gt;
*a defined maximum length (as with all external input) &lt;br /&gt;
*no contiguous characters (e.g. 123abcd) &lt;br /&gt;
*not more than 2 identical characters in a row (1111)&lt;br /&gt;
&lt;br /&gt;
== Implement Secure Password Recovery Mechanism  ==&lt;br /&gt;
&lt;br /&gt;
It is common for an application to have a mechanism that provides a means for a user to gain access to their account in the event they forget their password. Please see [https://www.owasp.org/index.php/Forgot_Password_Cheat_Sheet https://www.owasp.org/index.php/Forgot_Password_Cheat_Sheet] for details on this feature.&lt;br /&gt;
&lt;br /&gt;
== Utilize Multi-Factor Authentication  ==&lt;br /&gt;
&lt;br /&gt;
Multifactor factor authentication is using more than one of: &lt;br /&gt;
&lt;br /&gt;
*Something you know (account details or passwords) &lt;br /&gt;
*Something you have (tokens or mobile phones) &lt;br /&gt;
*Something you are (biometrics)&lt;br /&gt;
&lt;br /&gt;
to logon or process a transaction. &lt;br /&gt;
&lt;br /&gt;
Authentication schemes such as One Time Passwords (OTP) implemented using a hardware token can also be&amp;amp;nbsp;key&amp;amp;nbsp;in fighting attacks such as CSRF and client-side malware. &lt;br /&gt;
&lt;br /&gt;
== Authentication and Error Messages  ==&lt;br /&gt;
&lt;br /&gt;
Incorrectly implemented error messages in the case of authentication functionality can be used for the purposes of user ID and password enumeration. &lt;br /&gt;
&lt;br /&gt;
'''An application should respond (both HTTP and HTML)&amp;amp;nbsp;in a generic manner which is not unique to the error condition or authentication failure.''' &lt;br /&gt;
&lt;br /&gt;
==== Authentication responses  ====&lt;br /&gt;
&lt;br /&gt;
An application should respond with a generic error message regardless if the user ID or password was incorrect. It should also no give any indication to the status of an account if it exists. &lt;br /&gt;
&lt;br /&gt;
==== Incorrect responses examples  ====&lt;br /&gt;
&lt;br /&gt;
*&amp;quot;Login for User foo: invalid password&amp;quot; &lt;br /&gt;
*&amp;quot;Login failed, invalid user ID&amp;quot; &lt;br /&gt;
*&amp;quot;Login failed; account disabled&amp;quot; &lt;br /&gt;
*&amp;quot;login failed; this user is not active&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Correct response example  ====&lt;br /&gt;
&lt;br /&gt;
*&amp;quot;Login failed; Invalid user&amp;amp;nbsp;ID or password&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The correct response does not indicate if the user ID or password is the incorrect parameter and hence inferring a valid user ID. &lt;br /&gt;
&lt;br /&gt;
==== Error Codes and URL's  ====&lt;br /&gt;
&lt;br /&gt;
The application may return a different HTTP Error code depending on the authentication attempt response. It&amp;amp;nbsp;may respond with a 200 for a positive result and a 403 for a negative result. Even though a generc error page is shown to a user the HTTP response code may differ which can indicate a signature. &lt;br /&gt;
&lt;br /&gt;
== Transmit Passwords Only Over TLS  ==&lt;br /&gt;
&lt;br /&gt;
See: &amp;quot;Transport Layer Protection Cheat Sheet&amp;quot; &lt;br /&gt;
&lt;br /&gt;
[http://www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Sheet http://www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Sheet] &lt;br /&gt;
&lt;br /&gt;
&amp;quot;The login page and all subsequent authenticated pages must be exclusively accessed over TLS. The initial login page, referred to as the &amp;quot;login landing page&amp;quot;, must be served over TLS. Failure to utilize TLS for the login landing page allows an attacker to modify the login form action, causing the user's credentials to be posted to an arbitrary location. Failure to utilize TLS for authenticated pages after the login enables an attacker to view the unencrypted session ID and compromise the user's authenticated session.&amp;quot; &lt;br /&gt;
&lt;br /&gt;
== Implement Account Lockout  ==&lt;br /&gt;
&lt;br /&gt;
If an attacker is able to guess passwords without the account becoming disabled due to failed authentication attempts, this&amp;amp;nbsp;provides the opportunity of the attacked to continue with a brute force attack until the account is compromised. &lt;br /&gt;
&lt;br /&gt;
Automating brute-force/password guessing attacks on web applications is a trivial challenge. Password lockout mechanisms should be employed that lock out an account if more than a preset number of unsuccessful login attempts are made. &lt;br /&gt;
&lt;br /&gt;
Password lockout mechanisms do have a logical&amp;amp;nbsp;weakness, however. It is possible for an&amp;amp;nbsp;attacker to attempt a large number of authentication attempts&amp;amp;nbsp;on known account names resulting in locking out entire blocks of application&amp;amp;nbsp;users accounts. &lt;br /&gt;
&lt;br /&gt;
Given that the intent of a password lockout system is to protect from brute-force attacks, a sensible strategy is to lockout accounts for a number of hours. This significantly slows down attackers, while allowing the accounts to be open for legitimate users. &lt;br /&gt;
&lt;br /&gt;
See also &amp;quot;Reverse Brute-force&amp;quot; [[Reverse Brute Force|Reverse_Brute_Force]]&lt;br /&gt;
&lt;br /&gt;
= Session Management General Guidelines  =&lt;br /&gt;
&lt;br /&gt;
Session management is directly related to authentication. The '''Session Management General Guidelines''' previously available on this OWASP Authentication Cheat Sheet have been integrated into the new [https://www.owasp.org/index.php/Session_Management_Cheat_Sheet OWASP Session Management Cheat Sheet]. &lt;br /&gt;
&lt;br /&gt;
= Related Articles  =&lt;br /&gt;
&lt;br /&gt;
{{Cheatsheet_Navigation}} &lt;br /&gt;
&lt;br /&gt;
= Authors and Primary Editors  =&lt;br /&gt;
&lt;br /&gt;
Eoin Keary eoinkeary[at]owasp.org &lt;br /&gt;
&lt;br /&gt;
[[Category:How_To]] [[Category:Cheatsheets]] [[Category:OWASP_Document]] [[Category:OWASP_Top_Ten_Project]]&lt;/div&gt;</summary>
		<author><name>Kcfredman</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Summit_2011_Attendee/Attendee114&amp;diff=103752</id>
		<title>Summit 2011 Attendee/Attendee114</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Summit_2011_Attendee/Attendee114&amp;diff=103752"/>
				<updated>2011-02-06T22:56:35Z</updated>
		
		<summary type="html">&lt;p&gt;Kcfredman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:&amp;lt;includeonly&amp;gt;{{{1}}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;OWASP 2011 Global Summit Attendee Tab&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| summit_attendee_name1 = Fred Donovan&lt;br /&gt;
| summit_attendee_email1 = fred.donovan@owasp.org&lt;br /&gt;
| summit_attendee_wiki_username1 = Fred.Donovan&lt;br /&gt;
|-&lt;br /&gt;
| summit_attendee_company = Attack Logic&lt;br /&gt;
|-&lt;br /&gt;
| Project Leadership (less than 6 months old) = &lt;br /&gt;
| Project Leadership (more than 6 months old) = &lt;br /&gt;
| Release Leadership (less than 6 months old) = &lt;br /&gt;
| Release Leadership (more than 6 months old) = &lt;br /&gt;
| Project Contribution  (less than 6 months old) = &lt;br /&gt;
| Project Contribution  (more than 6 months old) = &lt;br /&gt;
| Release Contribution (less than 6 months old) =  &lt;br /&gt;
| Release Contribution (more than 6 months old) = &lt;br /&gt;
| Committee Membership = &lt;br /&gt;
| Chapter Co-Leadership = Indonesia&lt;br /&gt;
| Conference Co-Leadership =  &lt;br /&gt;
| Projected Funding Cost = &lt;br /&gt;
|-&lt;br /&gt;
| summit_attendee_current_owasp_involvement_name1 =  &lt;br /&gt;
| summit_attendee_current_owasp_involvement_url_1 = &lt;br /&gt;
| summit_attendee_current_owasp_involvement_name2 = &lt;br /&gt;
| summit_attendee_current_owasp_involvement_url_2 = &lt;br /&gt;
| summit_attendee_current_owasp_involvement_name3 = &lt;br /&gt;
| summit_attendee_current_owasp_involvement_url_3 = &lt;br /&gt;
| summit_attendee_current_owasp_involvement_name4 = &lt;br /&gt;
| summit_attendee_current_owasp_involvement_url_4 = &lt;br /&gt;
| summit_attendee_current_owasp_involvement_name5 = &lt;br /&gt;
| summit_attendee_current_owasp_involvement_url_5 = &lt;br /&gt;
|-&lt;br /&gt;
| summit_attendee_reason_for_summit_participation_name1 = XSS and the Frameworks &lt;br /&gt;
| summit_attendee_reason_for_summit_participation_url_1 = http://www.owasp.org/index.php/Summit_2011_Working_Sessions/Session009&lt;br /&gt;
| notes_reason_for_participating_issues_to_be_discussed_1 = &lt;br /&gt;
| summit_attendee_reason_for_summit_participation_name2 = Protecting information Stored Client-Side&lt;br /&gt;
| summit_attendee_reason_for_summit_participation_url_2 = http://www.owasp.org/index.php/Summit_2011_Working_Sessions/Session028&lt;br /&gt;
| notes_reason_for_participating_issues_to_be_discussed_2 = &lt;br /&gt;
| summit_attendee_reason_for_summit_participation_name3 = Development Guide&lt;br /&gt;
| summit_attendee_reason_for_summit_participation_url_3 = http://www.owasp.org/index.php/Summit_2011_Working_Sessions/Session066&lt;br /&gt;
| notes_reason_for_participating_issues_to_be_discussed_3 = &lt;br /&gt;
| summit_attendee_reason_for_summit_participation_name4 =OWASP common vulnerability list&lt;br /&gt;
| summit_attendee_reason_for_summit_participation_url_4 = http://www.owasp.org/index.php/Summit_2011_Working_Sessions/Session201&lt;br /&gt;
| notes_reason_for_participating_issues_to_be_discussed_4 = &lt;br /&gt;
| summit_attendee_reason_for_summit_participation_name5 = &lt;br /&gt;
| summit_attendee_reason_for_summit_participation_url_5 = &lt;br /&gt;
| notes_reason_for_participating_issues_to_be_discussed_5 = &lt;br /&gt;
|-&lt;br /&gt;
| summit_attendee_owasp_sponsor = &lt;br /&gt;
|-&lt;br /&gt;
| summit_attendee_summit_time_paid_by_name1 = self/employer&lt;br /&gt;
| summit_attendee_summit_time_paid_by_url_1 =&lt;br /&gt;
| summit_attendee_summit_time_paid_by_name2 =&lt;br /&gt;
| summit_attendee_summit_time_paid_by_url_2 =&lt;br /&gt;
|-&lt;br /&gt;
| summit_attendee_summit_expenses_paid_by_name1 = self/employer&lt;br /&gt;
| summit_attendee_summit_expenses_paid_by_url_1 = &lt;br /&gt;
| summit_attendee_summit_expenses_paid_by_name2 = &lt;br /&gt;
| summit_attendee_summit_expenses_paid_by_url_2 =  &lt;br /&gt;
|-&lt;br /&gt;
| reason_for_sponsorship = &lt;br /&gt;
|-&lt;br /&gt;
| status = Confirmed, Funded&lt;br /&gt;
|-&lt;br /&gt;
| letter sent to sponsor = &lt;br /&gt;
|-&lt;br /&gt;
| notes for Kate =   &lt;br /&gt;
|-&lt;br /&gt;
| attendee_name_mask = &amp;lt;!--Please replace DO NOT EDIT this string --&amp;gt; Attendee114&lt;br /&gt;
| attendee_home_page = &amp;lt;!--Please replace DO NOT EDIT this string --&amp;gt; Summit_2011_Attendee/Attendee114&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Kcfredman</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Summit_2011_Working_Sessions/Session201&amp;diff=103374</id>
		<title>Summit 2011 Working Sessions/Session201</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Summit_2011_Working_Sessions/Session201&amp;diff=103374"/>
				<updated>2011-02-04T16:56:39Z</updated>
		
		<summary type="html">&lt;p&gt;Kcfredman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:&amp;lt;includeonly&amp;gt;{{{1}}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;Summit 2011 Working Sessions test tab&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name1 = Vishal Garg&lt;br /&gt;
| summit_session_attendee_email1 = vishalgrg@gmail.com&lt;br /&gt;
| summit_session_attendee_username1 = Vishal_Garg&lt;br /&gt;
| summit_session_attendee_company1= AppSecure Labs&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed1= &lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name2 = Keith Turpin&lt;br /&gt;
| summit_session_attendee_email2 = keith.turpin@owasp.org&lt;br /&gt;
| summit_session_attendee_username2 = Keith_Turpin&lt;br /&gt;
| summit_session_attendee_company2=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed2= &lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name3 = Fred Donovan&lt;br /&gt;
| summit_session_attendee_email3 = fred.donovan@owasp.org&lt;br /&gt;
| summit_session_attendee_username3 = Fred.Donovan&lt;br /&gt;
| summit_session_attendee_company3=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed3= &lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name4 = &lt;br /&gt;
| summit_session_attendee_email4 = &lt;br /&gt;
| summit_session_attendee_username4 = &lt;br /&gt;
| summit_session_attendee_company4=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed4= &lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name5 = &lt;br /&gt;
| summit_session_attendee_email5 = &lt;br /&gt;
| summit_session_attendee_username5= &lt;br /&gt;
| summit_session_attendee_company5=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed5=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name6 = &lt;br /&gt;
| summit_session_attendee_email6 = &lt;br /&gt;
| summit_session_attendee_username6= &lt;br /&gt;
| summit_session_attendee_company6=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed6=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name7 = &lt;br /&gt;
| summit_session_attendee_email7 = &lt;br /&gt;
| summit_session_attendee_username7= &lt;br /&gt;
| summit_session_attendee_company7=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed7=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name8 = &lt;br /&gt;
| summit_session_attendee_email8 = &lt;br /&gt;
| summit_session_attendee_username8= &lt;br /&gt;
| summit_session_attendee_company8=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed8=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name9 = &lt;br /&gt;
| summit_session_attendee_email9 = &lt;br /&gt;
| summit_session_attendee_username9= &lt;br /&gt;
| summit_session_attendee_company9=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed9=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name10 = &lt;br /&gt;
| summit_session_attendee_email10 = &lt;br /&gt;
| summit_session_attendee_username10= &lt;br /&gt;
| summit_session_attendee_company10=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed10=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name11 = &lt;br /&gt;
| summit_session_attendee_email11 = &lt;br /&gt;
| summit_session_attendee_username11= &lt;br /&gt;
| summit_session_attendee_company11=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed11=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name12 = &lt;br /&gt;
| summit_session_attendee_email12 = &lt;br /&gt;
| summit_session_attendee_username12= &lt;br /&gt;
| summit_session_attendee_company12 =&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed12=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name13 = &lt;br /&gt;
| summit_session_attendee_email13 = &lt;br /&gt;
| summit_session_attendee_username13 = &lt;br /&gt;
| summit_session_attendee_company13=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed13=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name14 = &lt;br /&gt;
| summit_session_attendee_email14 = &lt;br /&gt;
| summit_session_attendee_username14= &lt;br /&gt;
| summit_session_attendee_company14=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed14= &lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name15 = &lt;br /&gt;
| summit_session_attendee_email15 = &lt;br /&gt;
| summit_session_attendee_username15= &lt;br /&gt;
| summit_session_attendee_company15=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed15=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name16 = &lt;br /&gt;
| summit_session_attendee_email16 = &lt;br /&gt;
| summit_session_attendee_username16= &lt;br /&gt;
| summit_session_attendee_company16=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed16=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name17 = &lt;br /&gt;
| summit_session_attendee_email17 = &lt;br /&gt;
| summit_session_attendee_username17= &lt;br /&gt;
| summit_session_attendee_company17=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed17=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name18 = &lt;br /&gt;
| summit_session_attendee_email18 = &lt;br /&gt;
| summit_session_attendee_username18= &lt;br /&gt;
| summit_session_attendee_company18=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed18=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name19 = &lt;br /&gt;
| summit_session_attendee_email19 = &lt;br /&gt;
| summit_session_attendee_username19= &lt;br /&gt;
| summit_session_attendee_company19=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed19=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name20 = &lt;br /&gt;
| summit_session_attendee_email20 = &lt;br /&gt;
| summit_session_attendee_username20= &lt;br /&gt;
| summit_session_attendee_company20=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed20=&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| summit_track_logo = [[Image:T._individual_projects.jpg]]&lt;br /&gt;
| summit_ws_logo = [[Image:WS._individual_projects.jpg]]&lt;br /&gt;
| summit_session_name = OWASP Common vulnerability list&lt;br /&gt;
| summit_session_url = http://www.owasp.org/index.php/Summit_2011_Working_Sessions/Session201&lt;br /&gt;
| mailing_list =&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| short_working_session_description = &lt;br /&gt;
&lt;br /&gt;
There are many OWASP projects like OWASP Testing Guide, OWASP Code Review Guide, OWASP Developers Guide, etc which discuss on how to look for and remediate various vulnerabilities in a web application. For e.g., people using OWASP Testing Guide to test for vulnerabilities in their application can go through a list of vulnerabilities and test for it but there is no easy way for them to cross reference to dev guide to jump to a specific section and be able to access the relevant information quickly. These vulnerabilities are discussed as individual list in all the guides and there is no easy way to cross-reference all of them. &lt;br /&gt;
&lt;br /&gt;
OWASP Common Vulnerability List will be a lightweight list, which will contain only the vulnerability ID, category, vulnerability name and a brief description. The main objective of this list is to provide a common platform for other guides and tools to provide a link to each other. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| related_project_name1 = OWASP Common Vulnerability List&lt;br /&gt;
| related_project_url_1 = http://www.owasp.org/index.php/OWASP_Common_Vulnerability_List&lt;br /&gt;
&lt;br /&gt;
| related_project_name2 = OWASP Testing Project&lt;br /&gt;
| related_project_url_2 = http://www.owasp.org/index.php/Category:OWASP_Testing_Project&lt;br /&gt;
&lt;br /&gt;
| related_project_name3 = OWASP Code Review Guide&lt;br /&gt;
| related_project_url_3 = http://www.owasp.org/index.php/Category:OWASP_Code_Review_Project&lt;br /&gt;
&lt;br /&gt;
| related_project_name4 = OWASP Building Guide&lt;br /&gt;
| related_project_url_4 = http://www.owasp.org/index.php/OWASP_Guide_Project&lt;br /&gt;
&lt;br /&gt;
| related_project_name5 = &lt;br /&gt;
| related_project_url_5 = &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| summit_session_objective_name1= Build the first version of the OWASP Common vulnerability list&lt;br /&gt;
&lt;br /&gt;
| summit_session_objective_name2 = &lt;br /&gt;
&lt;br /&gt;
| summit_session_objective_name3 = &lt;br /&gt;
&lt;br /&gt;
| summit_session_objective_name4 = &lt;br /&gt;
&lt;br /&gt;
| summit_session_objective_name5 =  &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| working_session_date_and_time = &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| discussion_model = participants and attendees&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| operational_resources = &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| working_session_additional_details = The goals of OWASP common vulnerability list are:&amp;lt;br&amp;gt;&lt;br /&gt;
1. Serve as a common list to all other OWASP initiatives (Dev Guide, Testing Guide, CR Guide, etc) which has any reference to web application vulnerabilities (just like OWASP common numbering scheme).&amp;lt;br&amp;gt;&lt;br /&gt;
2. Can be referenced by various open source and commercial tools as the list of vulnerabilities being identified or for any other purpose.&amp;lt;br&amp;gt;&lt;br /&gt;
3. Provides a clear requirement for PCI and other compliance laws&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name1 = Debating the vulnerability list and deliver the first version of the project.&lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name2 = &lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name3 = &lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name4 = &lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name5 = &lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name6 = &lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name7 = &lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name8 = &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| summit_session_leader_name1 = Matteo Meucci&lt;br /&gt;
| summit_session_leader_email1 = matteo.meucci@owasp.org&lt;br /&gt;
| summit_session_leader_username1 = Mmeucci&lt;br /&gt;
&lt;br /&gt;
| summit_session_leader_name2 = Eoin Keary&lt;br /&gt;
| summit_session_leader_email2 = eoin.keary@owasp.org&lt;br /&gt;
| summit_session_leader_username2 = EoinKeary&lt;br /&gt;
&lt;br /&gt;
| summit_session_leader_name3 = Anurag Agarwal&lt;br /&gt;
| summit_session_leader_email3 = Anurag.Agarwal@owasp.org&lt;br /&gt;
| summit_session_leader_username3 = &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| operational_leader_name1 = &lt;br /&gt;
| operational_leader_email1 = &lt;br /&gt;
| operational_leader_username1 = &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| meeting_notes = &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| session_name_mask = &amp;lt;!--Please replace DO NOT EDIT this string --&amp;gt; Session201&lt;br /&gt;
| session_home_page = &amp;lt;!--Please replace DO NOT EDIT this string --&amp;gt; Summit_2011_Working_Sessions/Session201&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Kcfredman</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Summit_2011_Working_Sessions/Session009&amp;diff=103373</id>
		<title>Summit 2011 Working Sessions/Session009</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Summit_2011_Working_Sessions/Session009&amp;diff=103373"/>
				<updated>2011-02-04T16:53:48Z</updated>
		
		<summary type="html">&lt;p&gt;Kcfredman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:&amp;lt;includeonly&amp;gt;{{{1}}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;Summit 2011 Working Sessions test tab&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name1 = Chris Eng&lt;br /&gt;
| summit_session_attendee_email1 = ceng@veracode.com&lt;br /&gt;
| summit_session_attendee_username1 = &lt;br /&gt;
| summit_session_attendee_company1=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed1=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name2 = Abraham Kang&lt;br /&gt;
| summit_session_attendee_email2 = &lt;br /&gt;
| summit_session_attendee_username2 = &lt;br /&gt;
| summit_session_attendee_company2=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed2=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name3 = Tony UcedaVelez&lt;br /&gt;
| summit_session_attendee_email3 = tonyuv@owasp.org&lt;br /&gt;
| summit_session_attendee_username3 = Tony UcedaVelez&lt;br /&gt;
| summit_session_attendee_company3= VerSprite&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed3=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name4 = Fred Donovan&lt;br /&gt;
| summit_session_attendee_email4 = fred.donovan@owasp.org&lt;br /&gt;
| summit_session_attendee_username4 = Fred.Donovan&lt;br /&gt;
| summit_session_attendee_company4=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed4=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name5 = &lt;br /&gt;
| summit_session_attendee_email5 = &lt;br /&gt;
| summit_session_attendee_username5 = &lt;br /&gt;
| summit_session_attendee_company5=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed5=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name6 = &lt;br /&gt;
| summit_session_attendee_email6 = &lt;br /&gt;
| summit_session_attendee_username6 = &lt;br /&gt;
| summit_session_attendee_company6=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed6=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name7 = &lt;br /&gt;
| summit_session_attendee_email7 = &lt;br /&gt;
| summit_session_attendee_username7 = &lt;br /&gt;
| summit_session_attendee_company7=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed7=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name8 = &lt;br /&gt;
| summit_session_attendee_email8 = &lt;br /&gt;
| summit_session_attendee_username8 = &lt;br /&gt;
| summit_session_attendee_company8=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed8=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name9 = &lt;br /&gt;
| summit_session_attendee_email9 = &lt;br /&gt;
| summit_session_attendee_username9 = &lt;br /&gt;
| summit_session_attendee_company9=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed9=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name10 = &lt;br /&gt;
| summit_session_attendee_email10 = &lt;br /&gt;
| summit_session_attendee_username10 = &lt;br /&gt;
| summit_session_attendee_company10=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed10=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name11 = &lt;br /&gt;
| summit_session_attendee_email11 = &lt;br /&gt;
| summit_session_attendee_username11 = &lt;br /&gt;
| summit_session_attendee_company11=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed11=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name12 = &lt;br /&gt;
| summit_session_attendee_email12 = &lt;br /&gt;
| summit_session_attendee_username12 = &lt;br /&gt;
| summit_session_attendee_company12=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed12=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name13 = &lt;br /&gt;
| summit_session_attendee_email13 = &lt;br /&gt;
| summit_session_attendee_username13 = &lt;br /&gt;
| summit_session_attendee_company13=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed13=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name14 = &lt;br /&gt;
| summit_session_attendee_email14 = &lt;br /&gt;
| summit_session_attendee_username14 = &lt;br /&gt;
| summit_session_attendee_company14=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed14= &lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name15 = &lt;br /&gt;
| summit_session_attendee_email15 = &lt;br /&gt;
| summit_session_attendee_username15 = &lt;br /&gt;
| summit_session_attendee_company15=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed15=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name16 = &lt;br /&gt;
| summit_session_attendee_email16 = &lt;br /&gt;
| summit_session_attendee_username16 = &lt;br /&gt;
| summit_session_attendee_company16=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed16=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name17 = &lt;br /&gt;
| summit_session_attendee_email17 = &lt;br /&gt;
| summit_session_attendee_username17 = &lt;br /&gt;
| summit_session_attendee_company17=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed17=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name18 = &lt;br /&gt;
| summit_session_attendee_email18 = &lt;br /&gt;
| summit_session_attendee_username18 = &lt;br /&gt;
| summit_session_attendee_company18=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed18=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name19 = &lt;br /&gt;
| summit_session_attendee_email19 = &lt;br /&gt;
| summit_session_attendee_username19 = &lt;br /&gt;
| summit_session_attendee_company19=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed19=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name20 = &lt;br /&gt;
| summit_session_attendee_email20 = &lt;br /&gt;
| summit_session_attendee_username20 = &lt;br /&gt;
| summit_session_attendee_company20=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed20=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| summit_track_logo = [[Image:T._cross_site.jpg]]&lt;br /&gt;
| summit_ws_logo = [[Image:WS._cross_site.jpg]]&lt;br /&gt;
| summit_session_name = XSS and the Frameworks&lt;br /&gt;
| summit_session_url = http://www.owasp.org/index.php/Summit_2011_Working_Sessions/Session009&lt;br /&gt;
| mailing_list =&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| short_working_session_description= Can we work with the common web frameworks to prevent XSS at the framework level?  If the framework a developer uses handles the most common cases of XSS occurring, the overall prevalence of XSS will be reduced significantly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| related_project_name1 = ESAPI&lt;br /&gt;
| related_project_url_1 = http://www.owasp.org/index.php/Category:OWASP_Enterprise_Security_API&lt;br /&gt;
&lt;br /&gt;
| related_project_name2 = &lt;br /&gt;
| related_project_url_2 = &lt;br /&gt;
&lt;br /&gt;
| related_project_name3 = &lt;br /&gt;
| related_project_url_3 = &lt;br /&gt;
&lt;br /&gt;
| related_project_name4 = &lt;br /&gt;
| related_project_url_4 = &lt;br /&gt;
&lt;br /&gt;
| related_project_name5 = &lt;br /&gt;
| related_project_url_5 = &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| summit_session_objective_name1= Work on how OWASP can engage with the major web frameworks to move towards a &amp;quot;secure by default&amp;quot; stance&lt;br /&gt;
&lt;br /&gt;
| summit_session_objective_name2 = Work on OWASP resources to provide patches/design approaches in conjunction with the frameworks&lt;br /&gt;
&lt;br /&gt;
| summit_session_objective_name3 = &lt;br /&gt;
&lt;br /&gt;
| summit_session_objective_name4 = &lt;br /&gt;
&lt;br /&gt;
| summit_session_objective_name5 =  &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| working_session_date_and_time = &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| discussion_model = participants and attendees&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| operational_resources = Projector, whiteboards, markers, Internet connectivity, power&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| working_session_additional_details = *'''Related resources:'''  [[OWASP Working Session - Browser Security Letters]] &amp;lt;br&amp;gt; *'''Frameworks to invite:''' .NET, Struts, Spring, Ruby on Rails&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name1 = OWASP statement/Press release to publicly ask the frameworks to build security in&lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name2 = Engagement plan on how we'd work with (if at all) a framework to get ESAPI or similar functionality integrated&lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name3 = White paper or standard for what we want the web frameworks to provide in terms of XSS defenses.  Turning the XSS Prevention Cheat Sheet into a standard/metric for frameworks would be great.&lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name4 = OWASP Standard defining an appraisal methodology for a framework’s XSS prevention capability based on the other deliverable.&lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name5 = &lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name6 = &lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name7 = &lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name8 = &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| summit_session_leader_name1 = Justin Clarke&lt;br /&gt;
| summit_session_leader_email1 = justin.clarke@owasp.org&lt;br /&gt;
| summit_session_leader_username1 = Justin42&lt;br /&gt;
&lt;br /&gt;
| summit_session_leader_name2 = &lt;br /&gt;
| summit_session_leader_email2 = &lt;br /&gt;
| summit_session_leader_username2 =&lt;br /&gt;
&lt;br /&gt;
| summit_session_leader_name3 = &lt;br /&gt;
| summit_session_leader_email3 = &lt;br /&gt;
| summit_session_leader_username3 =&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| operational_leader_name1 =&lt;br /&gt;
| operational_leader_email1 =&lt;br /&gt;
| operational_leader_username1 = &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| meeting_notes = &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| session_name_mask = &amp;lt;!--Please replace DO NOT EDIT this string --&amp;gt; Session009&lt;br /&gt;
| session_home_page = &amp;lt;!--Please replace DO NOT EDIT this string --&amp;gt; Summit_2011_Working_Sessions/Session009&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Kcfredman</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=User:Fred.Donovan&amp;diff=103371</id>
		<title>User:Fred.Donovan</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=User:Fred.Donovan&amp;diff=103371"/>
				<updated>2011-02-04T16:33:48Z</updated>
		
		<summary type="html">&lt;p&gt;Kcfredman: Created page with '&amp;lt;h1&amp;gt;Fred Donovan, New York, USA&amp;lt;/h1&amp;gt;  &amp;lt;p class=MsoNormal&amp;gt;Fred is an application security researcher and the founder of Attack Logic, a U.S. based &amp;lt;span class=SpellE&amp;gt;AppSec&amp;lt;/span&amp;gt;…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;h1&amp;gt;Fred Donovan, New York, USA&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=MsoNormal&amp;gt;Fred is an application security researcher and the founder&lt;br /&gt;
of Attack Logic, a U.S. based &amp;lt;span class=SpellE&amp;gt;AppSec&amp;lt;/span&amp;gt; consultancy. He&lt;br /&gt;
spent 3 years as a private researcher on campus at UNL’s Technology Park in the&lt;br /&gt;
field of InfoSec and for the past 11 years has provided executive level IT&lt;br /&gt;
services to public and private organizations. Application Security has been his&lt;br /&gt;
exclusive focus for the past seven with a general focus on information warfare&lt;br /&gt;
and the uses of counter intelligence for purposes of corporate defense. He is a&lt;br /&gt;
regular guest lecturer and speaker at Universities, Conferences, and&lt;br /&gt;
professional organizations. Mr. Donovan is alumni of the University of Missouri&lt;br /&gt;
-- Columbia (&amp;lt;span class=SpellE&amp;gt;Mizzou&amp;lt;/span&amp;gt;) and the American Military&lt;br /&gt;
University (AMU).&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=MsoNormal&amp;gt;OWASP Activities and Participation&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=MsoNormal&amp;gt;ASDR: http://www.owasp.org/index.php/OWASP_ASDR_Project&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=MsoNormal&amp;gt;Code Review Project: http://www.owasp.org/index.php/Category:OWASP_Code_Review_Project&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=MsoNormal&amp;gt;Conferences Collaborator/Presenter: &amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
OWASP EU Summit 2008&amp;lt;br&amp;gt;&lt;br /&gt;
OWASP_Ireland_AppSec_2009&amp;lt;br&amp;gt; &lt;br /&gt;
OWASP_IRELAND_2010&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=MsoNormal&amp;gt;Email: &amp;lt;span class=SpellE&amp;gt;fred.donovan&amp;lt;/span&amp;gt; ‘at’ &amp;lt;span&lt;br /&gt;
class=SpellE&amp;gt;owasp&amp;lt;/span&amp;gt; ‘dot' org&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p class=MsoNormal&amp;gt;&amp;lt;span class=SpellE&amp;gt;LinkedIN&amp;lt;/span&amp;gt;: http://www.linkedin.com/in/freddonovan&lt;/div&gt;</summary>
		<author><name>Kcfredman</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Summit_2011_Working_Sessions/Session028&amp;diff=103318</id>
		<title>Summit 2011 Working Sessions/Session028</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Summit_2011_Working_Sessions/Session028&amp;diff=103318"/>
				<updated>2011-02-04T03:54:18Z</updated>
		
		<summary type="html">&lt;p&gt;Kcfredman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:&amp;lt;includeonly&amp;gt;{{{1}}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;Summit 2011 Working Sessions test tab&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name1 = Elke Roth-Mandutz&lt;br /&gt;
| summit_session_attendee_email1 = elke.roth-mandutz@ohm-hochschule.de&lt;br /&gt;
| summit_session_attendee_username1 = &lt;br /&gt;
| summit_session_attendee_company1= GSO-University of Applied Sciences&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed1=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name2 = Jim Manico&lt;br /&gt;
| summit_session_attendee_email2 = jim@manico.net&lt;br /&gt;
| summit_session_attendee_username2 = &lt;br /&gt;
| summit_session_attendee_company2=Infrared Security&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed2=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name3 = Chris Schmidt&lt;br /&gt;
| summit_session_attendee_email3 = chris.schmidt@owasp.org&lt;br /&gt;
| summit_session_attendee_username3 = &lt;br /&gt;
| summit_session_attendee_company3=Aspect Security&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed3=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name4 = Justin Clarke&lt;br /&gt;
| summit_session_attendee_email4 = justin.clarke@owasp.org&lt;br /&gt;
| summit_session_attendee_username4 = &lt;br /&gt;
| summit_session_attendee_company4=Gotham Digital Science&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed4=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name5 = Neil Matatall&lt;br /&gt;
| summit_session_attendee_email5 = NEIL@OWASP.ORG&lt;br /&gt;
| summit_session_attendee_username5 = nmatatal&lt;br /&gt;
| summit_session_attendee_company5=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed5=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name6 = Tony UcedaVelez&lt;br /&gt;
| summit_session_attendee_email6 = tonyuv@owasp.org&lt;br /&gt;
| summit_session_attendee_username6 = Tony UcedaVelez&lt;br /&gt;
| summit_session_attendee_company6= VerSprite&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed6=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name7 = Fred Donovan&lt;br /&gt;
| summit_session_attendee_email7 = fred.donovan@owasp.org&lt;br /&gt;
| summit_session_attendee_username7 = &lt;br /&gt;
| summit_session_attendee_company7= Attack Logic&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed7=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name8 = &lt;br /&gt;
| summit_session_attendee_email8 = &lt;br /&gt;
| summit_session_attendee_username8 = &lt;br /&gt;
| summit_session_attendee_company8=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed8=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name9 = &lt;br /&gt;
| summit_session_attendee_email9 = &lt;br /&gt;
| summit_session_attendee_username9 = &lt;br /&gt;
| summit_session_attendee_company9=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed9=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name10 = &lt;br /&gt;
| summit_session_attendee_email10 = &lt;br /&gt;
| summit_session_attendee_username10 = &lt;br /&gt;
| summit_session_attendee_company10=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed10=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name11 = &lt;br /&gt;
| summit_session_attendee_email11 = &lt;br /&gt;
| summit_session_attendee_username11 = &lt;br /&gt;
| summit_session_attendee_company11=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed11=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name12 = &lt;br /&gt;
| summit_session_attendee_email12 = &lt;br /&gt;
| summit_session_attendee_username12 = &lt;br /&gt;
| summit_session_attendee_company12=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed12=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name13 = &lt;br /&gt;
| summit_session_attendee_email13 = &lt;br /&gt;
| summit_session_attendee_username13 = &lt;br /&gt;
| summit_session_attendee_company13=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed13=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name14 = &lt;br /&gt;
| summit_session_attendee_email14 = &lt;br /&gt;
| summit_session_attendee_username14 = &lt;br /&gt;
| summit_session_attendee_company14=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed14= &lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name15 = &lt;br /&gt;
| summit_session_attendee_email15 = &lt;br /&gt;
| summit_session_attendee_username15 = &lt;br /&gt;
| summit_session_attendee_company15=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed15=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name16 = &lt;br /&gt;
| summit_session_attendee_email16 = &lt;br /&gt;
| summit_session_attendee_username16 = &lt;br /&gt;
| summit_session_attendee_company16=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed16=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name17 = &lt;br /&gt;
| summit_session_attendee_email17 = &lt;br /&gt;
| summit_session_attendee_username17 = &lt;br /&gt;
| summit_session_attendee_company17=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed17=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name18 = &lt;br /&gt;
| summit_session_attendee_email18 = &lt;br /&gt;
| summit_session_attendee_username18 = &lt;br /&gt;
| summit_session_attendee_company18=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed18=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name19 = &lt;br /&gt;
| summit_session_attendee_email19 = &lt;br /&gt;
| summit_session_attendee_username19 = &lt;br /&gt;
| summit_session_attendee_company19=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed19=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name20 = &lt;br /&gt;
| summit_session_attendee_email20 = &lt;br /&gt;
| summit_session_attendee_username20 = &lt;br /&gt;
| summit_session_attendee_company20=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed20=&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| summit_track_logo = [[Image:T._secure_coding.jpg]]&lt;br /&gt;
| summit_ws_logo = [[Image:WS._secure_coding.jpg]]&lt;br /&gt;
| summit_session_name = Protecting Information Stored Client-Side&lt;br /&gt;
| summit_session_url = http://www.owasp.org/index.php/Summit_2011_Working_Sessions/Session028&lt;br /&gt;
| mailing_list =&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| short_working_session_description=This section will focus on providing mechanisms for protecting important or sensitive data applications and services need to store client-side. Contexts this section aims to cover include:&lt;br /&gt;
&lt;br /&gt;
* Personal or user-specific information&lt;br /&gt;
* Application-specific information (tokens, secrets)&lt;br /&gt;
* Key configuration data, other EIS/service information&lt;br /&gt;
&lt;br /&gt;
For the purpose of the Portugal Summit, the session will focus on development within a &amp;quot;classic&amp;quot; N-tier Java application environment. &lt;br /&gt;
 &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| related_project_name1 = &lt;br /&gt;
| related_project_url_1 = &lt;br /&gt;
&lt;br /&gt;
| related_project_name2 = &lt;br /&gt;
| related_project_url_2 = &lt;br /&gt;
&lt;br /&gt;
| related_project_name3 = &lt;br /&gt;
| related_project_url_3 = &lt;br /&gt;
&lt;br /&gt;
| related_project_name4 = &lt;br /&gt;
| related_project_url_4 = &lt;br /&gt;
&lt;br /&gt;
| related_project_name5 = &lt;br /&gt;
| related_project_url_5 = &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| summit_session_objective_name1= Produce an informal threat model for each development scenario &lt;br /&gt;
&lt;br /&gt;
| summit_session_objective_name2 = Impart clear and simple shared understanding of threats associated with each development scenario (and dispel common misunderstandings/idioms)  &lt;br /&gt;
&lt;br /&gt;
| summit_session_objective_name3 = Define solution that resists defined attacks&lt;br /&gt;
&lt;br /&gt;
| summit_session_objective_name4 = Deliver solution implementation (snippets) to https://code.google.com/p/secure-coding-workshop/&lt;br /&gt;
&lt;br /&gt;
| summit_session_objective_name5 =  &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| working_session_date_and_time = &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| discussion_model = participants and attendees&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| operational_resources = Projector, whiteboards, markers, Internet connectivity, power&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| working_session_additional_details = Within the N-tier Java environment, the session will tackle the following development scenarios:&lt;br /&gt;
&lt;br /&gt;
1) - Coat Check&lt;br /&gt;
* Removing information from a client&lt;br /&gt;
* Server-side storage, memento pattern&lt;br /&gt;
* Solving scale issues&lt;br /&gt;
2) - Purse&lt;br /&gt;
* Storing app-important information (like a purse)&lt;br /&gt;
* Resisting attack with augmented plain-text storage!&lt;br /&gt;
* Supporting back, reload, etc.&lt;br /&gt;
* Patterns &amp;amp; design for anti-tampering protocols&lt;br /&gt;
3) - Nuclear Briefcase&lt;br /&gt;
* Sensitive, opaque information&lt;br /&gt;
* Shuttling information between 3rd parties&lt;br /&gt;
&lt;br /&gt;
Future summits will address the following two contexts as well: &lt;br /&gt;
&lt;br /&gt;
* Phones (ios, Android)&lt;br /&gt;
* RIA &lt;br /&gt;
&lt;br /&gt;
However, for the purpose of this coming session, we will only conduct planning and 'homework assignments' for these contexts in the next session (likely Minnesota). &lt;br /&gt;
&lt;br /&gt;
The session will work each of the three above development scenarios within the n-tier environment using the following work stream: &lt;br /&gt;
&lt;br /&gt;
* Define problem&lt;br /&gt;
* Conduct Cigital-style Threat Model (TM) exercise&lt;br /&gt;
* Co-design solution based on particular threats and attack vectors&lt;br /&gt;
* Implement solution within provided sample application-ette&lt;br /&gt;
* Discuss testing and verification strategies for solution.&lt;br /&gt;
&lt;br /&gt;
Participants will be taken through the above work stream, an abbreviated 'build security in' process designed to focus on implementation (rather than documentation or assurance), to restructure applications to demonstrate security patterns, integrate existing security functionality, or build security controls as necessary. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name1 = (see objectives) Threat Models&lt;br /&gt;
|summit_session_deliverable_name2 = (see objectives) Code Snippets&lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name3 = Plan and Extra-summit work-items for exercises in Phone and RIA  contexts during next summit &lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name4 = &lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name5 = &lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name6 = &lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name7 = &lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name8 = &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| summit_session_leader_name1 = John Steven&lt;br /&gt;
| summit_session_leader_email1 = John.Steven@owasp.org&lt;br /&gt;
&lt;br /&gt;
| summit_session_leader_name2 = &lt;br /&gt;
| summit_session_leader_email2 = &lt;br /&gt;
| summit_session_leader_username2 = &lt;br /&gt;
&lt;br /&gt;
| summit_session_leader_name3 = &lt;br /&gt;
| summit_session_leader_email3 = &lt;br /&gt;
| summit_session_leader_username3 = &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| operational_leader_name1 =&lt;br /&gt;
| operational_leader_email1 =&lt;br /&gt;
| operational_leader_username1 = &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| meeting_notes = &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| session_name_mask = &amp;lt;!--Please replace DO NOT EDIT this string --&amp;gt; Session028&lt;br /&gt;
| session_home_page = &amp;lt;!--Please replace DO NOT EDIT this string --&amp;gt; Summit_2011_Working_Sessions/Session028&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Kcfredman</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Summit_2011_Working_Sessions/Session009&amp;diff=103317</id>
		<title>Summit 2011 Working Sessions/Session009</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Summit_2011_Working_Sessions/Session009&amp;diff=103317"/>
				<updated>2011-02-04T03:48:18Z</updated>
		
		<summary type="html">&lt;p&gt;Kcfredman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:&amp;lt;includeonly&amp;gt;{{{1}}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;Summit 2011 Working Sessions test tab&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name1 = Chris Eng&lt;br /&gt;
| summit_session_attendee_email1 = ceng@veracode.com&lt;br /&gt;
| summit_session_attendee_username1 = &lt;br /&gt;
| summit_session_attendee_company1=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed1=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name2 = Abraham Kang&lt;br /&gt;
| summit_session_attendee_email2 = &lt;br /&gt;
| summit_session_attendee_username2 = &lt;br /&gt;
| summit_session_attendee_company2=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed2=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name3 = Tony UcedaVelez&lt;br /&gt;
| summit_session_attendee_email3 = tonyuv@owasp.org&lt;br /&gt;
| summit_session_attendee_username3 = Tony UcedaVelez&lt;br /&gt;
| summit_session_attendee_company3= VerSprite&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed3=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name4 = Fred Donovan&lt;br /&gt;
| summit_session_attendee_email4 = fred.donovan@owasp.org&lt;br /&gt;
| summit_session_attendee_username4 = &lt;br /&gt;
| summit_session_attendee_company4=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed4=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name5 = &lt;br /&gt;
| summit_session_attendee_email5 = &lt;br /&gt;
| summit_session_attendee_username5 = &lt;br /&gt;
| summit_session_attendee_company5=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed5=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name6 = &lt;br /&gt;
| summit_session_attendee_email6 = &lt;br /&gt;
| summit_session_attendee_username6 = &lt;br /&gt;
| summit_session_attendee_company6=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed6=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name7 = &lt;br /&gt;
| summit_session_attendee_email7 = &lt;br /&gt;
| summit_session_attendee_username7 = &lt;br /&gt;
| summit_session_attendee_company7=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed7=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name8 = &lt;br /&gt;
| summit_session_attendee_email8 = &lt;br /&gt;
| summit_session_attendee_username8 = &lt;br /&gt;
| summit_session_attendee_company8=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed8=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name9 = &lt;br /&gt;
| summit_session_attendee_email9 = &lt;br /&gt;
| summit_session_attendee_username9 = &lt;br /&gt;
| summit_session_attendee_company9=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed9=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name10 = &lt;br /&gt;
| summit_session_attendee_email10 = &lt;br /&gt;
| summit_session_attendee_username10 = &lt;br /&gt;
| summit_session_attendee_company10=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed10=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name11 = &lt;br /&gt;
| summit_session_attendee_email11 = &lt;br /&gt;
| summit_session_attendee_username11 = &lt;br /&gt;
| summit_session_attendee_company11=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed11=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name12 = &lt;br /&gt;
| summit_session_attendee_email12 = &lt;br /&gt;
| summit_session_attendee_username12 = &lt;br /&gt;
| summit_session_attendee_company12=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed12=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name13 = &lt;br /&gt;
| summit_session_attendee_email13 = &lt;br /&gt;
| summit_session_attendee_username13 = &lt;br /&gt;
| summit_session_attendee_company13=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed13=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name14 = &lt;br /&gt;
| summit_session_attendee_email14 = &lt;br /&gt;
| summit_session_attendee_username14 = &lt;br /&gt;
| summit_session_attendee_company14=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed14= &lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name15 = &lt;br /&gt;
| summit_session_attendee_email15 = &lt;br /&gt;
| summit_session_attendee_username15 = &lt;br /&gt;
| summit_session_attendee_company15=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed15=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name16 = &lt;br /&gt;
| summit_session_attendee_email16 = &lt;br /&gt;
| summit_session_attendee_username16 = &lt;br /&gt;
| summit_session_attendee_company16=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed16=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name17 = &lt;br /&gt;
| summit_session_attendee_email17 = &lt;br /&gt;
| summit_session_attendee_username17 = &lt;br /&gt;
| summit_session_attendee_company17=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed17=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name18 = &lt;br /&gt;
| summit_session_attendee_email18 = &lt;br /&gt;
| summit_session_attendee_username18 = &lt;br /&gt;
| summit_session_attendee_company18=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed18=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name19 = &lt;br /&gt;
| summit_session_attendee_email19 = &lt;br /&gt;
| summit_session_attendee_username19 = &lt;br /&gt;
| summit_session_attendee_company19=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed19=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name20 = &lt;br /&gt;
| summit_session_attendee_email20 = &lt;br /&gt;
| summit_session_attendee_username20 = &lt;br /&gt;
| summit_session_attendee_company20=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed20=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| summit_track_logo = [[Image:T._cross_site.jpg]]&lt;br /&gt;
| summit_ws_logo = [[Image:WS._cross_site.jpg]]&lt;br /&gt;
| summit_session_name = XSS and the Frameworks&lt;br /&gt;
| summit_session_url = http://www.owasp.org/index.php/Summit_2011_Working_Sessions/Session009&lt;br /&gt;
| mailing_list =&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| short_working_session_description= Can we work with the common web frameworks to prevent XSS at the framework level?  If the framework a developer uses handles the most common cases of XSS occurring, the overall prevalence of XSS will be reduced significantly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| related_project_name1 = ESAPI&lt;br /&gt;
| related_project_url_1 = http://www.owasp.org/index.php/Category:OWASP_Enterprise_Security_API&lt;br /&gt;
&lt;br /&gt;
| related_project_name2 = &lt;br /&gt;
| related_project_url_2 = &lt;br /&gt;
&lt;br /&gt;
| related_project_name3 = &lt;br /&gt;
| related_project_url_3 = &lt;br /&gt;
&lt;br /&gt;
| related_project_name4 = &lt;br /&gt;
| related_project_url_4 = &lt;br /&gt;
&lt;br /&gt;
| related_project_name5 = &lt;br /&gt;
| related_project_url_5 = &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| summit_session_objective_name1= Work on how OWASP can engage with the major web frameworks to move towards a &amp;quot;secure by default&amp;quot; stance&lt;br /&gt;
&lt;br /&gt;
| summit_session_objective_name2 = Work on OWASP resources to provide patches/design approaches in conjunction with the frameworks&lt;br /&gt;
&lt;br /&gt;
| summit_session_objective_name3 = &lt;br /&gt;
&lt;br /&gt;
| summit_session_objective_name4 = &lt;br /&gt;
&lt;br /&gt;
| summit_session_objective_name5 =  &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| working_session_date_and_time = &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| discussion_model = participants and attendees&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| operational_resources = Projector, whiteboards, markers, Internet connectivity, power&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| working_session_additional_details = *'''Related resources:'''  [[OWASP Working Session - Browser Security Letters]] &amp;lt;br&amp;gt; *'''Frameworks to invite:''' .NET, Struts, Spring, Ruby on Rails&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name1 = OWASP statement/Press release to publicly ask the frameworks to build security in&lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name2 = Engagement plan on how we'd work with (if at all) a framework to get ESAPI or similar functionality integrated&lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name3 = White paper or standard for what we want the web frameworks to provide in terms of XSS defenses.  Turning the XSS Prevention Cheat Sheet into a standard/metric for frameworks would be great.&lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name4 = OWASP Standard defining an appraisal methodology for a framework’s XSS prevention capability based on the other deliverable.&lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name5 = &lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name6 = &lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name7 = &lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name8 = &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| summit_session_leader_name1 = Justin Clarke&lt;br /&gt;
| summit_session_leader_email1 = justin.clarke@owasp.org&lt;br /&gt;
| summit_session_leader_username1 = Justin42&lt;br /&gt;
&lt;br /&gt;
| summit_session_leader_name2 = &lt;br /&gt;
| summit_session_leader_email2 = &lt;br /&gt;
| summit_session_leader_username2 =&lt;br /&gt;
&lt;br /&gt;
| summit_session_leader_name3 = &lt;br /&gt;
| summit_session_leader_email3 = &lt;br /&gt;
| summit_session_leader_username3 =&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| operational_leader_name1 =&lt;br /&gt;
| operational_leader_email1 =&lt;br /&gt;
| operational_leader_username1 = &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| meeting_notes = &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| session_name_mask = &amp;lt;!--Please replace DO NOT EDIT this string --&amp;gt; Session009&lt;br /&gt;
| session_home_page = &amp;lt;!--Please replace DO NOT EDIT this string --&amp;gt; Summit_2011_Working_Sessions/Session009&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Kcfredman</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Summit_2011_Working_Sessions/Session009&amp;diff=103316</id>
		<title>Summit 2011 Working Sessions/Session009</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Summit_2011_Working_Sessions/Session009&amp;diff=103316"/>
				<updated>2011-02-04T03:47:02Z</updated>
		
		<summary type="html">&lt;p&gt;Kcfredman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:&amp;lt;includeonly&amp;gt;{{{1}}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;Summit 2011 Working Sessions test tab&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name1 = Chris Eng&lt;br /&gt;
| summit_session_attendee_email1 = ceng@veracode.com&lt;br /&gt;
| summit_session_attendee_username1 = &lt;br /&gt;
| summit_session_attendee_company1=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed1=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name2 = Abraham Kang&lt;br /&gt;
| summit_session_attendee_email2 = &lt;br /&gt;
| summit_session_attendee_username2 = &lt;br /&gt;
| summit_session_attendee_company2=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed2=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name3 = Tony UcedaVelez&lt;br /&gt;
| summit_session_attendee_email3 = tonyuv@owasp.org&lt;br /&gt;
| summit_session_attendee_username3 = Tony UcedaVelez&lt;br /&gt;
| summit_session_attendee_company3= VerSprite&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed3=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name4 = &lt;br /&gt;
| summit_session_attendee_email4 = &lt;br /&gt;
| summit_session_attendee_username4 = &lt;br /&gt;
| summit_session_attendee_company4=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed4=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name5 = Fred Donovan&lt;br /&gt;
| summit_session_attendee_email5 = fred.donovan@owasp.org&lt;br /&gt;
| summit_session_attendee_username5 = &lt;br /&gt;
| summit_session_attendee_company5=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed5=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name6 = &lt;br /&gt;
| summit_session_attendee_email6 = &lt;br /&gt;
| summit_session_attendee_username6 = &lt;br /&gt;
| summit_session_attendee_company6=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed6=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name7 = &lt;br /&gt;
| summit_session_attendee_email7 = &lt;br /&gt;
| summit_session_attendee_username7 = &lt;br /&gt;
| summit_session_attendee_company7=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed7=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name8 = &lt;br /&gt;
| summit_session_attendee_email8 = &lt;br /&gt;
| summit_session_attendee_username8 = &lt;br /&gt;
| summit_session_attendee_company8=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed8=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name9 = &lt;br /&gt;
| summit_session_attendee_email9 = &lt;br /&gt;
| summit_session_attendee_username9 = &lt;br /&gt;
| summit_session_attendee_company9=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed9=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name10 = &lt;br /&gt;
| summit_session_attendee_email10 = &lt;br /&gt;
| summit_session_attendee_username10 = &lt;br /&gt;
| summit_session_attendee_company10=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed10=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name11 = &lt;br /&gt;
| summit_session_attendee_email11 = &lt;br /&gt;
| summit_session_attendee_username11 = &lt;br /&gt;
| summit_session_attendee_company11=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed11=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name12 = &lt;br /&gt;
| summit_session_attendee_email12 = &lt;br /&gt;
| summit_session_attendee_username12 = &lt;br /&gt;
| summit_session_attendee_company12=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed12=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name13 = &lt;br /&gt;
| summit_session_attendee_email13 = &lt;br /&gt;
| summit_session_attendee_username13 = &lt;br /&gt;
| summit_session_attendee_company13=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed13=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name14 = &lt;br /&gt;
| summit_session_attendee_email14 = &lt;br /&gt;
| summit_session_attendee_username14 = &lt;br /&gt;
| summit_session_attendee_company14=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed14= &lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name15 = &lt;br /&gt;
| summit_session_attendee_email15 = &lt;br /&gt;
| summit_session_attendee_username15 = &lt;br /&gt;
| summit_session_attendee_company15=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed15=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name16 = &lt;br /&gt;
| summit_session_attendee_email16 = &lt;br /&gt;
| summit_session_attendee_username16 = &lt;br /&gt;
| summit_session_attendee_company16=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed16=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name17 = &lt;br /&gt;
| summit_session_attendee_email17 = &lt;br /&gt;
| summit_session_attendee_username17 = &lt;br /&gt;
| summit_session_attendee_company17=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed17=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name18 = &lt;br /&gt;
| summit_session_attendee_email18 = &lt;br /&gt;
| summit_session_attendee_username18 = &lt;br /&gt;
| summit_session_attendee_company18=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed18=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name19 = &lt;br /&gt;
| summit_session_attendee_email19 = &lt;br /&gt;
| summit_session_attendee_username19 = &lt;br /&gt;
| summit_session_attendee_company19=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed19=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name20 = &lt;br /&gt;
| summit_session_attendee_email20 = &lt;br /&gt;
| summit_session_attendee_username20 = &lt;br /&gt;
| summit_session_attendee_company20=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed20=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| summit_track_logo = [[Image:T._cross_site.jpg]]&lt;br /&gt;
| summit_ws_logo = [[Image:WS._cross_site.jpg]]&lt;br /&gt;
| summit_session_name = XSS and the Frameworks&lt;br /&gt;
| summit_session_url = http://www.owasp.org/index.php/Summit_2011_Working_Sessions/Session009&lt;br /&gt;
| mailing_list =&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| short_working_session_description= Can we work with the common web frameworks to prevent XSS at the framework level?  If the framework a developer uses handles the most common cases of XSS occurring, the overall prevalence of XSS will be reduced significantly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| related_project_name1 = ESAPI&lt;br /&gt;
| related_project_url_1 = http://www.owasp.org/index.php/Category:OWASP_Enterprise_Security_API&lt;br /&gt;
&lt;br /&gt;
| related_project_name2 = &lt;br /&gt;
| related_project_url_2 = &lt;br /&gt;
&lt;br /&gt;
| related_project_name3 = &lt;br /&gt;
| related_project_url_3 = &lt;br /&gt;
&lt;br /&gt;
| related_project_name4 = &lt;br /&gt;
| related_project_url_4 = &lt;br /&gt;
&lt;br /&gt;
| related_project_name5 = &lt;br /&gt;
| related_project_url_5 = &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| summit_session_objective_name1= Work on how OWASP can engage with the major web frameworks to move towards a &amp;quot;secure by default&amp;quot; stance&lt;br /&gt;
&lt;br /&gt;
| summit_session_objective_name2 = Work on OWASP resources to provide patches/design approaches in conjunction with the frameworks&lt;br /&gt;
&lt;br /&gt;
| summit_session_objective_name3 = &lt;br /&gt;
&lt;br /&gt;
| summit_session_objective_name4 = &lt;br /&gt;
&lt;br /&gt;
| summit_session_objective_name5 =  &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| working_session_date_and_time = &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| discussion_model = participants and attendees&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| operational_resources = Projector, whiteboards, markers, Internet connectivity, power&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| working_session_additional_details = *'''Related resources:'''  [[OWASP Working Session - Browser Security Letters]] &amp;lt;br&amp;gt; *'''Frameworks to invite:''' .NET, Struts, Spring, Ruby on Rails&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name1 = OWASP statement/Press release to publicly ask the frameworks to build security in&lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name2 = Engagement plan on how we'd work with (if at all) a framework to get ESAPI or similar functionality integrated&lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name3 = White paper or standard for what we want the web frameworks to provide in terms of XSS defenses.  Turning the XSS Prevention Cheat Sheet into a standard/metric for frameworks would be great.&lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name4 = OWASP Standard defining an appraisal methodology for a framework’s XSS prevention capability based on the other deliverable.&lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name5 = &lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name6 = &lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name7 = &lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name8 = &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| summit_session_leader_name1 = Justin Clarke&lt;br /&gt;
| summit_session_leader_email1 = justin.clarke@owasp.org&lt;br /&gt;
| summit_session_leader_username1 = Justin42&lt;br /&gt;
&lt;br /&gt;
| summit_session_leader_name2 = &lt;br /&gt;
| summit_session_leader_email2 = &lt;br /&gt;
| summit_session_leader_username2 =&lt;br /&gt;
&lt;br /&gt;
| summit_session_leader_name3 = &lt;br /&gt;
| summit_session_leader_email3 = &lt;br /&gt;
| summit_session_leader_username3 =&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| operational_leader_name1 =&lt;br /&gt;
| operational_leader_email1 =&lt;br /&gt;
| operational_leader_username1 = &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| meeting_notes = &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| session_name_mask = &amp;lt;!--Please replace DO NOT EDIT this string --&amp;gt; Session009&lt;br /&gt;
| session_home_page = &amp;lt;!--Please replace DO NOT EDIT this string --&amp;gt; Summit_2011_Working_Sessions/Session009&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Kcfredman</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Summit_2011_Working_Sessions/Session201&amp;diff=103315</id>
		<title>Summit 2011 Working Sessions/Session201</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Summit_2011_Working_Sessions/Session201&amp;diff=103315"/>
				<updated>2011-02-04T03:43:58Z</updated>
		
		<summary type="html">&lt;p&gt;Kcfredman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:&amp;lt;includeonly&amp;gt;{{{1}}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;Summit 2011 Working Sessions test tab&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name1 = Vishal Garg&lt;br /&gt;
| summit_session_attendee_email1 = vishalgrg@gmail.com&lt;br /&gt;
| summit_session_attendee_username1 = Vishal_Garg&lt;br /&gt;
| summit_session_attendee_company1= AppSecure Labs&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed1= &lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name2 = Keith Turpin&lt;br /&gt;
| summit_session_attendee_email2 = keith.turpin@owasp.org&lt;br /&gt;
| summit_session_attendee_username2 = Keith_Turpin&lt;br /&gt;
| summit_session_attendee_company2=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed2= &lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name3 = Fred Donovan&lt;br /&gt;
| summit_session_attendee_email3 = fred.donovan@owasp.org&lt;br /&gt;
| summit_session_attendee_username3 = &lt;br /&gt;
| summit_session_attendee_company3=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed3= &lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name4 = &lt;br /&gt;
| summit_session_attendee_email4 = &lt;br /&gt;
| summit_session_attendee_username4 = &lt;br /&gt;
| summit_session_attendee_company4=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed4= &lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name5 = &lt;br /&gt;
| summit_session_attendee_email5 = &lt;br /&gt;
| summit_session_attendee_username5= &lt;br /&gt;
| summit_session_attendee_company5=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed5=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name6 = &lt;br /&gt;
| summit_session_attendee_email6 = &lt;br /&gt;
| summit_session_attendee_username6= &lt;br /&gt;
| summit_session_attendee_company6=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed6=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name7 = &lt;br /&gt;
| summit_session_attendee_email7 = &lt;br /&gt;
| summit_session_attendee_username7= &lt;br /&gt;
| summit_session_attendee_company7=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed7=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name8 = &lt;br /&gt;
| summit_session_attendee_email8 = &lt;br /&gt;
| summit_session_attendee_username8= &lt;br /&gt;
| summit_session_attendee_company8=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed8=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name9 = &lt;br /&gt;
| summit_session_attendee_email9 = &lt;br /&gt;
| summit_session_attendee_username9= &lt;br /&gt;
| summit_session_attendee_company9=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed9=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name10 = &lt;br /&gt;
| summit_session_attendee_email10 = &lt;br /&gt;
| summit_session_attendee_username10= &lt;br /&gt;
| summit_session_attendee_company10=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed10=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name11 = &lt;br /&gt;
| summit_session_attendee_email11 = &lt;br /&gt;
| summit_session_attendee_username11= &lt;br /&gt;
| summit_session_attendee_company11=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed11=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name12 = &lt;br /&gt;
| summit_session_attendee_email12 = &lt;br /&gt;
| summit_session_attendee_username12= &lt;br /&gt;
| summit_session_attendee_company12 =&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed12=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name13 = &lt;br /&gt;
| summit_session_attendee_email13 = &lt;br /&gt;
| summit_session_attendee_username13 = &lt;br /&gt;
| summit_session_attendee_company13=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed13=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name14 = &lt;br /&gt;
| summit_session_attendee_email14 = &lt;br /&gt;
| summit_session_attendee_username14= &lt;br /&gt;
| summit_session_attendee_company14=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed14= &lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name15 = &lt;br /&gt;
| summit_session_attendee_email15 = &lt;br /&gt;
| summit_session_attendee_username15= &lt;br /&gt;
| summit_session_attendee_company15=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed15=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name16 = &lt;br /&gt;
| summit_session_attendee_email16 = &lt;br /&gt;
| summit_session_attendee_username16= &lt;br /&gt;
| summit_session_attendee_company16=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed16=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name17 = &lt;br /&gt;
| summit_session_attendee_email17 = &lt;br /&gt;
| summit_session_attendee_username17= &lt;br /&gt;
| summit_session_attendee_company17=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed17=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name18 = &lt;br /&gt;
| summit_session_attendee_email18 = &lt;br /&gt;
| summit_session_attendee_username18= &lt;br /&gt;
| summit_session_attendee_company18=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed18=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name19 = &lt;br /&gt;
| summit_session_attendee_email19 = &lt;br /&gt;
| summit_session_attendee_username19= &lt;br /&gt;
| summit_session_attendee_company19=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed19=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name20 = &lt;br /&gt;
| summit_session_attendee_email20 = &lt;br /&gt;
| summit_session_attendee_username20= &lt;br /&gt;
| summit_session_attendee_company20=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed20=&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| summit_track_logo = [[Image:T._individual_projects.jpg]]&lt;br /&gt;
| summit_ws_logo = [[Image:WS._individual_projects.jpg]]&lt;br /&gt;
| summit_session_name = OWASP Common vulnerability list&lt;br /&gt;
| summit_session_url = http://www.owasp.org/index.php/Summit_2011_Working_Sessions/Session201&lt;br /&gt;
| mailing_list =&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| short_working_session_description = &lt;br /&gt;
&lt;br /&gt;
There are many OWASP projects like OWASP Testing Guide, OWASP Code Review Guide, OWASP Developers Guide, etc which discuss on how to look for and remediate various vulnerabilities in a web application. For e.g., people using OWASP Testing Guide to test for vulnerabilities in their application can go through a list of vulnerabilities and test for it but there is no easy way for them to cross reference to dev guide to jump to a specific section and be able to access the relevant information quickly. These vulnerabilities are discussed as individual list in all the guides and there is no easy way to cross-reference all of them. &lt;br /&gt;
&lt;br /&gt;
OWASP Common Vulnerability List will be a lightweight list, which will contain only the vulnerability ID, category, vulnerability name and a brief description. The main objective of this list is to provide a common platform for other guides and tools to provide a link to each other. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| related_project_name1 = OWASP Common Vulnerability List&lt;br /&gt;
| related_project_url_1 = http://www.owasp.org/index.php/OWASP_Common_Vulnerability_List&lt;br /&gt;
&lt;br /&gt;
| related_project_name2 = OWASP Testing Project&lt;br /&gt;
| related_project_url_2 = http://www.owasp.org/index.php/Category:OWASP_Testing_Project&lt;br /&gt;
&lt;br /&gt;
| related_project_name3 = OWASP Code Review Guide&lt;br /&gt;
| related_project_url_3 = http://www.owasp.org/index.php/Category:OWASP_Code_Review_Project&lt;br /&gt;
&lt;br /&gt;
| related_project_name4 = OWASP Building Guide&lt;br /&gt;
| related_project_url_4 = http://www.owasp.org/index.php/OWASP_Guide_Project&lt;br /&gt;
&lt;br /&gt;
| related_project_name5 = &lt;br /&gt;
| related_project_url_5 = &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| summit_session_objective_name1= Build the first version of the OWASP Common vulnerability list&lt;br /&gt;
&lt;br /&gt;
| summit_session_objective_name2 = &lt;br /&gt;
&lt;br /&gt;
| summit_session_objective_name3 = &lt;br /&gt;
&lt;br /&gt;
| summit_session_objective_name4 = &lt;br /&gt;
&lt;br /&gt;
| summit_session_objective_name5 =  &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| working_session_date_and_time = &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| discussion_model = participants and attendees&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| operational_resources = &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| working_session_additional_details = The goals of OWASP common vulnerability list are:&amp;lt;br&amp;gt;&lt;br /&gt;
1. Serve as a common list to all other OWASP initiatives (Dev Guide, Testing Guide, CR Guide, etc) which has any reference to web application vulnerabilities (just like OWASP common numbering scheme).&amp;lt;br&amp;gt;&lt;br /&gt;
2. Can be referenced by various open source and commercial tools as the list of vulnerabilities being identified or for any other purpose.&amp;lt;br&amp;gt;&lt;br /&gt;
3. Provides a clear requirement for PCI and other compliance laws&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name1 = Debating the vulnerability list and deliver the first version of the project.&lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name2 = &lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name3 = &lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name4 = &lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name5 = &lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name6 = &lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name7 = &lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name8 = &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| summit_session_leader_name1 = Matteo Meucci&lt;br /&gt;
| summit_session_leader_email1 = matteo.meucci@owasp.org&lt;br /&gt;
| summit_session_leader_username1 = Mmeucci&lt;br /&gt;
&lt;br /&gt;
| summit_session_leader_name2 = Eoin Keary&lt;br /&gt;
| summit_session_leader_email2 = eoin.keary@owasp.org&lt;br /&gt;
| summit_session_leader_username2 = EoinKeary&lt;br /&gt;
&lt;br /&gt;
| summit_session_leader_name3 = Anurag Agarwal&lt;br /&gt;
| summit_session_leader_email3 = Anurag.Agarwal@owasp.org&lt;br /&gt;
| summit_session_leader_username3 = &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| operational_leader_name1 = &lt;br /&gt;
| operational_leader_email1 = &lt;br /&gt;
| operational_leader_username1 = &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| meeting_notes = &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| session_name_mask = &amp;lt;!--Please replace DO NOT EDIT this string --&amp;gt; Session201&lt;br /&gt;
| session_home_page = &amp;lt;!--Please replace DO NOT EDIT this string --&amp;gt; Summit_2011_Working_Sessions/Session201&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Kcfredman</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Summit_2011_Working_Sessions/Session075&amp;diff=103314</id>
		<title>Summit 2011 Working Sessions/Session075</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Summit_2011_Working_Sessions/Session075&amp;diff=103314"/>
				<updated>2011-02-04T03:40:31Z</updated>
		
		<summary type="html">&lt;p&gt;Kcfredman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:&amp;lt;includeonly&amp;gt;{{{1}}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;Summit 2011 Working Sessions test tab&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name1 = Fred Donovan&lt;br /&gt;
| summit_session_attendee_email1 = fred.donovan@owasp.org&lt;br /&gt;
| summit_session_attendee_username1 = &lt;br /&gt;
| summit_session_attendee_company1= &lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed1=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name2 = &lt;br /&gt;
| summit_session_attendee_email2 = &lt;br /&gt;
| summit_session_attendee_username2 = &lt;br /&gt;
| summit_session_attendee_company2=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed2=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name3 = &lt;br /&gt;
| summit_session_attendee_email3 = &lt;br /&gt;
| summit_session_attendee_username3 = &lt;br /&gt;
| summit_session_attendee_company3=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed3=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name4 = &lt;br /&gt;
| summit_session_attendee_email4 = &lt;br /&gt;
| summit_session_attendee_username4 = &lt;br /&gt;
| summit_session_attendee_company4=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed4=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name5 = &lt;br /&gt;
| summit_session_attendee_email5 = &lt;br /&gt;
| summit_session_attendee_username5 = &lt;br /&gt;
| summit_session_attendee_company5=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed5=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name6 = &lt;br /&gt;
| summit_session_attendee_email6 = &lt;br /&gt;
| summit_session_attendee_username6 = &lt;br /&gt;
| summit_session_attendee_company6=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed6=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name7 = &lt;br /&gt;
| summit_session_attendee_email7 = &lt;br /&gt;
| summit_session_attendee_username7 = &lt;br /&gt;
| summit_session_attendee_company7=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed7=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name8 = &lt;br /&gt;
| summit_session_attendee_email8 = &lt;br /&gt;
| summit_session_attendee_username8 = &lt;br /&gt;
| summit_session_attendee_company8=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed8=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name9 = &lt;br /&gt;
| summit_session_attendee_email9 = &lt;br /&gt;
| summit_session_attendee_username9 = &lt;br /&gt;
| summit_session_attendee_company9=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed9=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name10 = &lt;br /&gt;
| summit_session_attendee_email10 = &lt;br /&gt;
| summit_session_attendee_username10 = &lt;br /&gt;
| summit_session_attendee_company10=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed10=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name11 = &lt;br /&gt;
| summit_session_attendee_email11 = &lt;br /&gt;
| summit_session_attendee_username11 = &lt;br /&gt;
| summit_session_attendee_company11=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed11=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name12 = &lt;br /&gt;
| summit_session_attendee_email12 = &lt;br /&gt;
| summit_session_attendee_username12 = &lt;br /&gt;
| summit_session_attendee_company12=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed12=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name13 = &lt;br /&gt;
| summit_session_attendee_email13 = &lt;br /&gt;
| summit_session_attendee_username13 = &lt;br /&gt;
| summit_session_attendee_company13=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed13=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name14 = &lt;br /&gt;
| summit_session_attendee_email14 = &lt;br /&gt;
| summit_session_attendee_username14 = &lt;br /&gt;
| summit_session_attendee_company14=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed14= &lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name15 = &lt;br /&gt;
| summit_session_attendee_email15 = &lt;br /&gt;
| summit_session_attendee_username15 = &lt;br /&gt;
| summit_session_attendee_company15=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed15=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name16 = &lt;br /&gt;
| summit_session_attendee_email16 = &lt;br /&gt;
| summit_session_attendee_username16 = &lt;br /&gt;
| summit_session_attendee_company16=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed16=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name17 = &lt;br /&gt;
| summit_session_attendee_email17 = &lt;br /&gt;
| summit_session_attendee_username17 = &lt;br /&gt;
| summit_session_attendee_company17=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed17=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name18 = &lt;br /&gt;
| summit_session_attendee_email18 = &lt;br /&gt;
| summit_session_attendee_username18 = &lt;br /&gt;
| summit_session_attendee_company18=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed18=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name19 = &lt;br /&gt;
| summit_session_attendee_email19 = &lt;br /&gt;
| summit_session_attendee_username19 = &lt;br /&gt;
| summit_session_attendee_company19=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed19=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name20 = &lt;br /&gt;
| summit_session_attendee_email20 = &lt;br /&gt;
| summit_session_attendee_username20 = &lt;br /&gt;
| summit_session_attendee_company20=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed20=&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| summit_track_logo = [[Image:T._owasp.jpg]]&lt;br /&gt;
| summit_ws_logo = [[Image:WS._owasp.jpg]]&lt;br /&gt;
| summit_session_name = S is for Safety (as well as Security)&lt;br /&gt;
| summit_session_url = http://www.owasp.org/index.php/Summit_2011_Working_Sessions/Session075&lt;br /&gt;
| mailing_list =&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| short_working_session_description=&lt;br /&gt;
[[File:Banner-securitysafety-2.png]]&lt;br /&gt;
&lt;br /&gt;
This session has two aspects - safety critical systems, and safety in regards to protection of vulnerable groups (e.g. children).&lt;br /&gt;
&lt;br /&gt;
* What can OWASP learn from software safety engineering?&lt;br /&gt;
* What can OWASP contribute to software safety engineering?&lt;br /&gt;
* How does OWASP's work tie in to wider concerns about internet safety?&lt;br /&gt;
&lt;br /&gt;
Get your helmets (hard hats) on and come along to discuss whether we need a new OWASP project, a new OWASP guide or embed safety thinking throughout OWASP's work.&lt;br /&gt;
&lt;br /&gt;
This session will be particularly relevant to those interested in process control, safety critical applications, critical national infrastructure and other applications that could have a direct impact on system &amp;amp; human safety.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| related_project_name1 = &lt;br /&gt;
| related_project_url_1 = &lt;br /&gt;
&lt;br /&gt;
| related_project_name2 = &lt;br /&gt;
| related_project_url_2 = &lt;br /&gt;
&lt;br /&gt;
| related_project_name3 = &lt;br /&gt;
| related_project_url_3 = &lt;br /&gt;
&lt;br /&gt;
| related_project_name4 = &lt;br /&gt;
| related_project_url_4 = &lt;br /&gt;
&lt;br /&gt;
| related_project_name5 = &lt;br /&gt;
| related_project_url_5 = &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| summit_session_objective_name1= Create a whitepaper on ''application security for critical systems''&lt;br /&gt;
&lt;br /&gt;
| summit_session_objective_name2 =  Create a whitepaper on ''how application security protects people''&lt;br /&gt;
&lt;br /&gt;
| summit_session_objective_name3 = &lt;br /&gt;
&lt;br /&gt;
| summit_session_objective_name4 = &lt;br /&gt;
&lt;br /&gt;
| summit_session_objective_name5 =  &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| working_session_date_and_time = &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| discussion_model = participants and attendees&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| operational_resources = Projector, whiteboards, markers, Internet connectivity, power&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| working_session_additional_details = &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Safety is not only concerned with confidentiality, integrity and availability. A safety-critical system (or life-critical system) is one where failure or malfunction can lead to ([http://en.wikipedia.org/wiki/Life-critical_system Wikipedia]):&lt;br /&gt;
* death or serious injury to people, or&lt;br /&gt;
* loss or severe damage to equipment or&lt;br /&gt;
* environmental harm.&lt;br /&gt;
In languages other than English, the distinction between &amp;quot;safety&amp;quot; and &amp;quot;security&amp;quot; may be less clear.  [http://www.dailywritingtips.com/safety-and-security/ Here] is a good description of their slightly different meanings in English.&lt;br /&gt;
&lt;br /&gt;
With software being used in so many safety-critical systems, the impact of application security flaws can have critical impacts on humans, equipment and the environment.  There have been great advances in safety system design, but control system security is less advanced ([http://www.controlglobal.com/articles/2010/SafetySecurity1004.html Byres &amp;amp; Cusimano]).&lt;br /&gt;
&lt;br /&gt;
This session will discuss whether and how OWASP should contribute to the efforts in system safety.&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name1 = A white paper describing how the safety ecosystem overlaps with the OWASP ecosystem and whether there should be more bridges built between them.&lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name2 = &lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name3 = &lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name4 = &lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name5 = &lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name6 = &lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name7 = &lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name8 = &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| summit_session_leader_name1 = Colin Watson&lt;br /&gt;
| summit_session_leader_email1 = colin.watson(at)owasp.org&lt;br /&gt;
&lt;br /&gt;
| summit_session_leader_name2 = &lt;br /&gt;
| summit_session_leader_email2 = &lt;br /&gt;
| summit_session_leader_username2 = &lt;br /&gt;
&lt;br /&gt;
| summit_session_leader_name3 = &lt;br /&gt;
| summit_session_leader_email3 = &lt;br /&gt;
| summit_session_leader_username3 = &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| operational_leader_name1 =&lt;br /&gt;
| operational_leader_email1 =&lt;br /&gt;
| operational_leader_username1 = &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| meeting_notes = &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| session_name_mask = &amp;lt;!--Please replace DO NOT EDIT this string --&amp;gt; Session075&lt;br /&gt;
| session_home_page = &amp;lt;!--Please replace DO NOT EDIT this string --&amp;gt; Summit_2011_Working_Sessions/Session075&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Kcfredman</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Summit_2011_Working_Sessions/Session066&amp;diff=103313</id>
		<title>Summit 2011 Working Sessions/Session066</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Summit_2011_Working_Sessions/Session066&amp;diff=103313"/>
				<updated>2011-02-04T03:23:07Z</updated>
		
		<summary type="html">&lt;p&gt;Kcfredman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:&amp;lt;includeonly&amp;gt;{{{1}}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;Summit 2011 Working Sessions test tab&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name1 = Matthias Rohr&lt;br /&gt;
| summit_session_attendee_email1 = m.rohr@sec-consult.com&lt;br /&gt;
| summit_session_attendee_username1 = &lt;br /&gt;
| summit_session_attendee_company1= SEC Consult&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed1=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name2 = Eoin Keary&lt;br /&gt;
| summit_session_attendee_email2 = eoin.keary@owasp.org&lt;br /&gt;
| summit_session_attendee_username2 = &lt;br /&gt;
| summit_session_attendee_company2=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed2=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name3 = Steven van der Baan&lt;br /&gt;
| summit_session_attendee_email3 = steven.van.der.Baan@owasp.org&lt;br /&gt;
| summit_session_attendee_username3 = &lt;br /&gt;
| summit_session_attendee_company3=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed3=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name4 = Abraham Kang&lt;br /&gt;
| summit_session_attendee_email4 = &lt;br /&gt;
| summit_session_attendee_username4 = &lt;br /&gt;
| summit_session_attendee_company4=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed4=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name5 = Keith Turpin&lt;br /&gt;
| summit_session_attendee_email5 = keith.turpin@owasp.org&lt;br /&gt;
| summit_session_attendee_username5 = Keith_Turpin&lt;br /&gt;
| summit_session_attendee_company5=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed5=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name6 = Fred Donovan&lt;br /&gt;
| summit_session_attendee_email6 = fred.donovan@owasp.org&lt;br /&gt;
| summit_session_attendee_username6 = &lt;br /&gt;
| summit_session_attendee_company6=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed6=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name7 = &lt;br /&gt;
| summit_session_attendee_email7 = &lt;br /&gt;
| summit_session_attendee_username7 = &lt;br /&gt;
| summit_session_attendee_company7=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed7=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name8 = &lt;br /&gt;
| summit_session_attendee_email8 = &lt;br /&gt;
| summit_session_attendee_username8 = &lt;br /&gt;
| summit_session_attendee_company8=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed8=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name9 = &lt;br /&gt;
| summit_session_attendee_email9 = &lt;br /&gt;
| summit_session_attendee_username9 = &lt;br /&gt;
| summit_session_attendee_company9=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed9=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name10 = &lt;br /&gt;
| summit_session_attendee_email10 = &lt;br /&gt;
| summit_session_attendee_username10 = &lt;br /&gt;
| summit_session_attendee_company10=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed10=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name11 = &lt;br /&gt;
| summit_session_attendee_email11 = &lt;br /&gt;
| summit_session_attendee_username11 = &lt;br /&gt;
| summit_session_attendee_company11=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed11=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name12 = &lt;br /&gt;
| summit_session_attendee_email12 = &lt;br /&gt;
| summit_session_attendee_username12 = &lt;br /&gt;
| summit_session_attendee_company12=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed12=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name13 = &lt;br /&gt;
| summit_session_attendee_email13 = &lt;br /&gt;
| summit_session_attendee_username13 = &lt;br /&gt;
| summit_session_attendee_company13=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed13=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name14 = &lt;br /&gt;
| summit_session_attendee_email14 = &lt;br /&gt;
| summit_session_attendee_username14 = &lt;br /&gt;
| summit_session_attendee_company14=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed14= &lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name15 = &lt;br /&gt;
| summit_session_attendee_email15 = &lt;br /&gt;
| summit_session_attendee_username15 = &lt;br /&gt;
| summit_session_attendee_company15=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed15=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name16 = &lt;br /&gt;
| summit_session_attendee_email16 = &lt;br /&gt;
| summit_session_attendee_username16 = &lt;br /&gt;
| summit_session_attendee_company16=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed16=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name17 = &lt;br /&gt;
| summit_session_attendee_email17 = &lt;br /&gt;
| summit_session_attendee_username17 = &lt;br /&gt;
| summit_session_attendee_company17=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed17=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name18 = &lt;br /&gt;
| summit_session_attendee_email18 = &lt;br /&gt;
| summit_session_attendee_username18 = &lt;br /&gt;
| summit_session_attendee_company18=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed18=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name19 = &lt;br /&gt;
| summit_session_attendee_email19 = &lt;br /&gt;
| summit_session_attendee_username19 = &lt;br /&gt;
| summit_session_attendee_company19=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed19=&lt;br /&gt;
&lt;br /&gt;
| summit_session_attendee_name20 = &lt;br /&gt;
| summit_session_attendee_email20 = &lt;br /&gt;
| summit_session_attendee_username20 = &lt;br /&gt;
| summit_session_attendee_company20=&lt;br /&gt;
| summit_session_attendee_notes,_reason_for_participating_and_issues_to_be discussed20=&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| summit_track_logo = [[Image:T._individual_projects.jpg]]&lt;br /&gt;
| summit_ws_logo = [[Image:WS._individual_projects.jpg]]&lt;br /&gt;
| summit_session_name = Development Guide&lt;br /&gt;
| summit_session_url = http://www.owasp.org/index.php/Summit_2011_Working_Sessions/Session066&lt;br /&gt;
| mailing_list =&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| short_working_session_description= If done from the earliest stages, secure applications cost about the same to develop as insecure applications, but are far more cost effective in the long run. The primary aim of the OWASP Development Guide is to help businesses, developers, designers and solution architects to build secure web applications from the outset. The next version of the guide is an extension from the existing version with further enhancements to make it more usable for all stake holders. The aim of the working session is to have a discussion on the shortcomings of the existing guide and to make it a basis for further enhancements, alignment of the guide to ASVS Standard and OWASP common numbering scheme, potential for alignment of all three OWASP guides (DG, CRG and TG) and the ways to improve the usefulness of the guide to all the stake holders.&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| related_project_name1 = Project Wiki Page&lt;br /&gt;
| related_project_url_1 = http://www.owasp.org/index.php/OWASP_Guide_Project#tab=Project_About&lt;br /&gt;
&lt;br /&gt;
| related_project_name2 = &lt;br /&gt;
| related_project_url_2 = &lt;br /&gt;
&lt;br /&gt;
| related_project_name3 = &lt;br /&gt;
| related_project_url_3 = &lt;br /&gt;
&lt;br /&gt;
| related_project_name4 = &lt;br /&gt;
| related_project_url_4 = &lt;br /&gt;
&lt;br /&gt;
| related_project_name5 = &lt;br /&gt;
| related_project_url_5 = &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| summit_session_objective_name1 = Discussion on major enhancements to the next version of the development guide&lt;br /&gt;
&lt;br /&gt;
| summit_session_objective_name2 = Discussion on aligning the guide to ASVS standard and OWASP common numbering scheme&lt;br /&gt;
&lt;br /&gt;
| summit_session_objective_name3 = Discussion on improving the usefulness of the guide to all stakeholders&lt;br /&gt;
&lt;br /&gt;
| summit_session_objective_name4 = Collaboration with other OWASP guides - Top 10, ASDR, CRG and TG &lt;br /&gt;
&lt;br /&gt;
| summit_session_objective_name5 =  &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| working_session_date_and_time = &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| discussion_model = participants and attendees&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| operational_resources = Projector, whiteboards, markers, Internet connectivity, power&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| working_session_additional_details = The presence of participants on the Working Session [[Summit 2011 Working Sessions/Session085|'''Common structure and numbering for all guides''']] is advisable. &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name1 = An updated outline for the development guide that is tied into the OWASP common numbering scheme&lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name2 = A short white paper with ideas for revisions to the Development Guide for evaluation and discussion by the community at large.&lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name3 = A committed project manager who can reach out to experts to get the document completed.&lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name4 = &lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name5 = &lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name6 = &lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name7 = &lt;br /&gt;
&lt;br /&gt;
|summit_session_deliverable_name8 = &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| summit_session_leader_name1 = Vishal Garg&lt;br /&gt;
| summit_session_leader_email1 = vishalgrg@gmail.com&lt;br /&gt;
&lt;br /&gt;
| summit_session_leader_name2 = &lt;br /&gt;
| summit_session_leader_email2 = &lt;br /&gt;
| summit_session_leader_username2 = &lt;br /&gt;
&lt;br /&gt;
| summit_session_leader_name3 = &lt;br /&gt;
| summit_session_leader_email3 = &lt;br /&gt;
| summit_session_leader_username3 = &lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| operational_leader_name1 =&lt;br /&gt;
| operational_leader_email1 =&lt;br /&gt;
| operational_leader_username1 = &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
&lt;br /&gt;
| meeting_notes = &lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| session_name_mask = &amp;lt;!--Please replace DO NOT EDIT this string --&amp;gt; Session066&lt;br /&gt;
| session_home_page = &amp;lt;!--Please replace DO NOT EDIT this string --&amp;gt; Summit_2011_Working_Sessions/Session066&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>Kcfredman</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Insecure_Third_Party_Domain_Access&amp;diff=48668</id>
		<title>Insecure Third Party Domain Access</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Insecure_Third_Party_Domain_Access&amp;diff=48668"/>
				<updated>2008-12-13T21:29:47Z</updated>
		
		<summary type="html">&lt;p&gt;Kcfredman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Stub}}&lt;br /&gt;
{{Template:Vulnerability}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
[[ASDR Table of Contents]]&lt;br /&gt;
&lt;br /&gt;
Last revision (mm/dd/yy): '''{{REVISIONMONTH}}/{{REVISIONDAY}}/{{REVISIONYEAR}}'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Occurs when an application contains content provided from a 3rd party resource that is delivered without any type of content scrub.&lt;br /&gt;
&lt;br /&gt;
'''Environments Affected'''&lt;br /&gt;
&lt;br /&gt;
* Web servers&lt;br /&gt;
* Application servers&lt;br /&gt;
* Client Machines&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Risk Factors==&lt;br /&gt;
* Allowing hosted content from an untrusted server into a trusted application: affecting the server, server environment, and client machine.&lt;br /&gt;
* No confirmation of Third Party Controls.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
This following example is a common method to insert third party hosted content into a trusted an application.&lt;br /&gt;
If the hosting site is vulnerable to attack, all content delivered to an application would be vulnerable malicious changes. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;iframe src=&amp;quot;http://site.com/share/Action.swf&amp;quot; width=&amp;quot;720&amp;quot; height=&amp;quot;420&amp;quot; &lt;br /&gt;
marginwidth=&amp;quot;0&amp;quot; marginheight=&amp;quot;0&amp;quot; scrolling=&amp;quot;Auto&amp;quot; frameborder=&amp;quot;0&amp;quot;&amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Related [[Attacks]]==&lt;br /&gt;
[[Cross-Site_Request_Forgery]]&lt;br /&gt;
&lt;br /&gt;
==Related [[Vulnerabilities]]==&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
==Related [[Controls]]==&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Vulnerability]]&lt;br /&gt;
[[Category:OWASP ASDR Project]]&lt;/div&gt;</summary>
		<author><name>Kcfredman</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Insecure_Third_Party_Domain_Access&amp;diff=48639</id>
		<title>Insecure Third Party Domain Access</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Insecure_Third_Party_Domain_Access&amp;diff=48639"/>
				<updated>2008-12-13T20:24:44Z</updated>
		
		<summary type="html">&lt;p&gt;Kcfredman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Stub}}&lt;br /&gt;
{{Template:Vulnerability}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
[[ASDR Table of Contents]]&lt;br /&gt;
&lt;br /&gt;
Last revision (mm/dd/yy): '''{{REVISIONMONTH}}/{{REVISIONDAY}}/{{REVISIONYEAR}}'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Occurs when an application contains content provided from a 3rd party resource that is delivered without any type of content scrub.&lt;br /&gt;
&lt;br /&gt;
'''Environments Affected'''&lt;br /&gt;
&lt;br /&gt;
* Web servers&lt;br /&gt;
* Application servers&lt;br /&gt;
* Client Machines&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Risk Factors==&lt;br /&gt;
* Allowing hosted content from an untrusted server into a trusted application: affecting the server, server environment, and client machine.&lt;br /&gt;
* No confirmation of Third Party Controls.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
This following type of development uses an iframe to insert a third party hosted flash into a trusted an application.&lt;br /&gt;
The site hosting the content could vulnerable to attack. As such, all content hosted on that site would be vulnerable to inheriting malicious content. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;iframe src=&amp;quot;http://site.com/share/Action.swf&amp;quot; width=&amp;quot;720&amp;quot; height=&amp;quot;420&amp;quot; &lt;br /&gt;
marginwidth=&amp;quot;0&amp;quot; marginheight=&amp;quot;0&amp;quot; scrolling=&amp;quot;Auto&amp;quot; frameborder=&amp;quot;0&amp;quot;&amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Related [[Attacks]]==&lt;br /&gt;
[[Cross-Site_Request_Forgery]]&lt;br /&gt;
&lt;br /&gt;
==Related [[Vulnerabilities]]==&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
==Related [[Controls]]==&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Vulnerability]]&lt;br /&gt;
[[Category:OWASP ASDR Project]]&lt;/div&gt;</summary>
		<author><name>Kcfredman</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Insecure_Third_Party_Domain_Access&amp;diff=48637</id>
		<title>Insecure Third Party Domain Access</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Insecure_Third_Party_Domain_Access&amp;diff=48637"/>
				<updated>2008-12-13T20:16:28Z</updated>
		
		<summary type="html">&lt;p&gt;Kcfredman: New page: {{Template:Stub}} {{Template:Vulnerability}}  __TOC__  ASDR Table of Contents  Last revision (mm/dd/yy): '''{{REVISIONMONTH}}/{{REVISIONDAY}}/{{REVISIONYEAR}}'''   [[Category:FIXME|Thi...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Stub}}&lt;br /&gt;
{{Template:Vulnerability}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
[[ASDR Table of Contents]]&lt;br /&gt;
&lt;br /&gt;
Last revision (mm/dd/yy): '''{{REVISIONMONTH}}/{{REVISIONDAY}}/{{REVISIONYEAR}}'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:FIXME|This is the text from the old template. This needs to be rewritten using the new template.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Occurs when an application contains content provided from a 3rd party resource that is delivered without any type of content scrub.&lt;br /&gt;
&lt;br /&gt;
'''Environments Affected'''&lt;br /&gt;
&lt;br /&gt;
* Web servers&lt;br /&gt;
* Application servers&lt;br /&gt;
* Client Machines&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Risk Factors==&lt;br /&gt;
* Allowing hosted content from an untrusted server into a trusted application: affecting the server, server environment, and client machine.&lt;br /&gt;
* No confirmation of Third Party Controls.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
This following type of development uses an iframe to insert a third party hosted flash into a trusted an application.&lt;br /&gt;
The site hosting the content could vulnerable to attack. As such, all content hosted on that site would be vulnerable to inheriting malicious content. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;iframe src=&amp;quot;http://site.com/share/Action.swf&amp;quot; width=&amp;quot;720&amp;quot; height=&amp;quot;420&amp;quot; &lt;br /&gt;
marginwidth=&amp;quot;0&amp;quot; marginheight=&amp;quot;0&amp;quot; scrolling=&amp;quot;Auto&amp;quot; frameborder=&amp;quot;0&amp;quot;&amp;gt;&amp;lt;/iframe&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Related [[Attacks]]==&lt;br /&gt;
[[Cross-Site_Request_Forgery]]&lt;br /&gt;
&lt;br /&gt;
==Related [[Vulnerabilities]]==&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
==Related [[Controls]]==&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Vulnerability]]&lt;br /&gt;
[[Category:OWASP ASDR Project]]&lt;/div&gt;</summary>
		<author><name>Kcfredman</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Using_a_broken_or_risky_cryptographic_algorithm&amp;diff=48555</id>
		<title>Using a broken or risky cryptographic algorithm</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Using_a_broken_or_risky_cryptographic_algorithm&amp;diff=48555"/>
				<updated>2008-12-13T18:50:18Z</updated>
		
		<summary type="html">&lt;p&gt;Kcfredman: /* Risk Factors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Vulnerability}}&lt;br /&gt;
{{Template:SecureSoftware}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
[[ASDR Table of Contents]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Last revision (mm/dd/yy): '''{{REVISIONMONTH}}/{{REVISIONDAY}}/{{REVISIONYEAR}}'''&lt;br /&gt;
&lt;br /&gt;
[[Category:FIXME|This is the text from the old template. This needs to be rewritten using the new template.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Attempting to create non-standard and non-tested algorithms, using weak algorithms, or applying algorithms incorrectly will pose a high weakness to data that is meant to be secure. &lt;br /&gt;
&lt;br /&gt;
'''Consequences'''&lt;br /&gt;
&lt;br /&gt;
* Confidentiality: The confidentiality of sensitive data may be compromised by the use of a broken or risky cryptographic algorithm.&lt;br /&gt;
* Integrity: The integrity of sensitive data may be compromised by the use of a broken or risky cryptographic algorithm.&lt;br /&gt;
* Accountability: Any accountability to message content preserved by cryptography may be subject to attack.&lt;br /&gt;
&lt;br /&gt;
'''Exposure period'''&lt;br /&gt;
&lt;br /&gt;
* Design: The decision as to what cryptographic algorithm to utilize is generally made at design time.&lt;br /&gt;
&lt;br /&gt;
'''Platform'''&lt;br /&gt;
&lt;br /&gt;
* Languages: All&lt;br /&gt;
* Operating platforms: All&lt;br /&gt;
&lt;br /&gt;
'''Required resources'''&lt;br /&gt;
&lt;br /&gt;
Any&lt;br /&gt;
&lt;br /&gt;
'''Severity'''&lt;br /&gt;
&lt;br /&gt;
High&lt;br /&gt;
&lt;br /&gt;
'''Likelihood of exploit'''&lt;br /&gt;
&lt;br /&gt;
Medium to High&lt;br /&gt;
&lt;br /&gt;
Since the state of cryptography advances so rapidly, it is common to find algorithms, which previously were considered to be safe, currently considered unsafe. In some cases, things are discovered, or processing speed increases to the degree that the cryptographic algorithm provides little more benefit than the use of no cryptography at all.&lt;br /&gt;
&lt;br /&gt;
==Risk Factors==&lt;br /&gt;
&lt;br /&gt;
* Use of custom cryptographic algorithms.&lt;br /&gt;
* Use of weak and/or untested public algorithms.&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&lt;br /&gt;
In C/C++:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
EVP_des_ecb();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Java:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Cipher des=Cipher.getInstance(&amp;quot;DES...);&lt;br /&gt;
des.initEncrypt(key2);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Related [[Attacks]]==&lt;br /&gt;
&lt;br /&gt;
* [[Attack 1]]&lt;br /&gt;
* [[Attack 2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Related [[Vulnerabilities]]==&lt;br /&gt;
&lt;br /&gt;
* [[Failure to encrypt data]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Related [[Controls]]==&lt;br /&gt;
&lt;br /&gt;
* Design: Use a cryptographic algorithm that is currently considered to be strong by experts in the field.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Related [[Technical Impacts]]==&lt;br /&gt;
&lt;br /&gt;
* [[Technical Impact 1]]&lt;br /&gt;
* [[Technical Impact 2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:OWASP ASDR Project]]&lt;br /&gt;
[[Category:Vulnerability]]&lt;br /&gt;
[[Category:Cryptographic Vulnerability]]&lt;/div&gt;</summary>
		<author><name>Kcfredman</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Using_a_broken_or_risky_cryptographic_algorithm&amp;diff=48551</id>
		<title>Using a broken or risky cryptographic algorithm</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Using_a_broken_or_risky_cryptographic_algorithm&amp;diff=48551"/>
				<updated>2008-12-13T18:47:34Z</updated>
		
		<summary type="html">&lt;p&gt;Kcfredman: /* Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Vulnerability}}&lt;br /&gt;
{{Template:SecureSoftware}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
[[ASDR Table of Contents]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Last revision (mm/dd/yy): '''{{REVISIONMONTH}}/{{REVISIONDAY}}/{{REVISIONYEAR}}'''&lt;br /&gt;
&lt;br /&gt;
[[Category:FIXME|This is the text from the old template. This needs to be rewritten using the new template.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Attempting to create non-standard and non-tested algorithms, using weak algorithms, or applying algorithms incorrectly will pose a high weakness to data that is meant to be secure. &lt;br /&gt;
&lt;br /&gt;
'''Consequences'''&lt;br /&gt;
&lt;br /&gt;
* Confidentiality: The confidentiality of sensitive data may be compromised by the use of a broken or risky cryptographic algorithm.&lt;br /&gt;
* Integrity: The integrity of sensitive data may be compromised by the use of a broken or risky cryptographic algorithm.&lt;br /&gt;
* Accountability: Any accountability to message content preserved by cryptography may be subject to attack.&lt;br /&gt;
&lt;br /&gt;
'''Exposure period'''&lt;br /&gt;
&lt;br /&gt;
* Design: The decision as to what cryptographic algorithm to utilize is generally made at design time.&lt;br /&gt;
&lt;br /&gt;
'''Platform'''&lt;br /&gt;
&lt;br /&gt;
* Languages: All&lt;br /&gt;
* Operating platforms: All&lt;br /&gt;
&lt;br /&gt;
'''Required resources'''&lt;br /&gt;
&lt;br /&gt;
Any&lt;br /&gt;
&lt;br /&gt;
'''Severity'''&lt;br /&gt;
&lt;br /&gt;
High&lt;br /&gt;
&lt;br /&gt;
'''Likelihood of exploit'''&lt;br /&gt;
&lt;br /&gt;
Medium to High&lt;br /&gt;
&lt;br /&gt;
Since the state of cryptography advances so rapidly, it is common to find algorithms, which previously were considered to be safe, currently considered unsafe. In some cases, things are discovered, or processing speed increases to the degree that the cryptographic algorithm provides little more benefit than the use of no cryptography at all.&lt;br /&gt;
&lt;br /&gt;
==Risk Factors==&lt;br /&gt;
&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&lt;br /&gt;
In C/C++:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
EVP_des_ecb();&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In Java:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Cipher des=Cipher.getInstance(&amp;quot;DES...);&lt;br /&gt;
des.initEncrypt(key2);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Related [[Attacks]]==&lt;br /&gt;
&lt;br /&gt;
* [[Attack 1]]&lt;br /&gt;
* [[Attack 2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Related [[Vulnerabilities]]==&lt;br /&gt;
&lt;br /&gt;
* [[Failure to encrypt data]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Related [[Controls]]==&lt;br /&gt;
&lt;br /&gt;
* Design: Use a cryptographic algorithm that is currently considered to be strong by experts in the field.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Related [[Technical Impacts]]==&lt;br /&gt;
&lt;br /&gt;
* [[Technical Impact 1]]&lt;br /&gt;
* [[Technical Impact 2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:OWASP ASDR Project]]&lt;br /&gt;
[[Category:Vulnerability]]&lt;br /&gt;
[[Category:Cryptographic Vulnerability]]&lt;/div&gt;</summary>
		<author><name>Kcfredman</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Error_Message_Infoleaks&amp;diff=48535</id>
		<title>Error Message Infoleaks</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Error_Message_Infoleaks&amp;diff=48535"/>
				<updated>2008-12-13T17:03:32Z</updated>
		
		<summary type="html">&lt;p&gt;Kcfredman: /* Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Stub}}&lt;br /&gt;
{{Template:Vulnerability}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
[[ASDR Table of Contents]]&lt;br /&gt;
&lt;br /&gt;
Last revision (mm/dd/yy): '''{{REVISIONMONTH}}/{{REVISIONDAY}}/{{REVISIONYEAR}}'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:FIXME|This is the text from the old template. This needs to be rewritten using the new template.]]&lt;br /&gt;
[[Category:FIXME|Stub article, needs review]]&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Displaying unsolicited excess detail within Error messages that can be used to facilitate an attack.&lt;br /&gt;
&lt;br /&gt;
==Risk Factors==&lt;br /&gt;
&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&lt;br /&gt;
* [[Displaying debug or stack trace information]]&lt;br /&gt;
* [[Retaining commented-out code within the production source code]]&lt;br /&gt;
&lt;br /&gt;
==Related [[Attacks]]==&lt;br /&gt;
&lt;br /&gt;
* [[Attack 1]]&lt;br /&gt;
* [[Attack 2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Related [[Vulnerabilities]]==&lt;br /&gt;
&lt;br /&gt;
* [[Discrepancy Information Leaks]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Related [[Controls]]==&lt;br /&gt;
&lt;br /&gt;
* [[:Category:Error Handling]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Related [[Technical Impacts]]==&lt;br /&gt;
&lt;br /&gt;
* [[Technical Impact 1]]&lt;br /&gt;
* [[Technical Impact 2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
[[Category:FIXME|add links&lt;br /&gt;
&lt;br /&gt;
In addition, one should classify vulnerability based on the following subcategories: Ex:&amp;lt;nowiki&amp;gt;[[Category:Error Handling Vulnerability]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Availability Vulnerability&lt;br /&gt;
&lt;br /&gt;
Authorization Vulnerability&lt;br /&gt;
&lt;br /&gt;
Authentication Vulnerability&lt;br /&gt;
&lt;br /&gt;
Concurrency Vulnerability&lt;br /&gt;
&lt;br /&gt;
Configuration Vulnerability&lt;br /&gt;
&lt;br /&gt;
Cryptographic Vulnerability&lt;br /&gt;
&lt;br /&gt;
Encoding Vulnerability&lt;br /&gt;
&lt;br /&gt;
Error Handling Vulnerability&lt;br /&gt;
&lt;br /&gt;
Input Validation Vulnerability&lt;br /&gt;
&lt;br /&gt;
Logging and Auditing Vulnerability&lt;br /&gt;
&lt;br /&gt;
Session Management Vulnerability]]&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:OWASP ASDR Project]]&lt;br /&gt;
[[Category:Vulnerability]]&lt;/div&gt;</summary>
		<author><name>Kcfredman</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Error_Message_Infoleaks&amp;diff=48534</id>
		<title>Error Message Infoleaks</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Error_Message_Infoleaks&amp;diff=48534"/>
				<updated>2008-12-13T17:01:22Z</updated>
		
		<summary type="html">&lt;p&gt;Kcfredman: /* Examples */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Stub}}&lt;br /&gt;
{{Template:Vulnerability}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
[[ASDR Table of Contents]]&lt;br /&gt;
&lt;br /&gt;
Last revision (mm/dd/yy): '''{{REVISIONMONTH}}/{{REVISIONDAY}}/{{REVISIONYEAR}}'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:FIXME|This is the text from the old template. This needs to be rewritten using the new template.]]&lt;br /&gt;
[[Category:FIXME|Stub article, needs review]]&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Displaying unsolicited excess detail within Error messages that can be used to facilitate an attack.&lt;br /&gt;
&lt;br /&gt;
==Risk Factors==&lt;br /&gt;
&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&lt;br /&gt;
•	Displaying debug or stack trace information&lt;br /&gt;
•	Retaining commented-out code within the production source code&lt;br /&gt;
&lt;br /&gt;
==Related [[Attacks]]==&lt;br /&gt;
&lt;br /&gt;
* [[Attack 1]]&lt;br /&gt;
* [[Attack 2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Related [[Vulnerabilities]]==&lt;br /&gt;
&lt;br /&gt;
* [[Discrepancy Information Leaks]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Related [[Controls]]==&lt;br /&gt;
&lt;br /&gt;
* [[:Category:Error Handling]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Related [[Technical Impacts]]==&lt;br /&gt;
&lt;br /&gt;
* [[Technical Impact 1]]&lt;br /&gt;
* [[Technical Impact 2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
[[Category:FIXME|add links&lt;br /&gt;
&lt;br /&gt;
In addition, one should classify vulnerability based on the following subcategories: Ex:&amp;lt;nowiki&amp;gt;[[Category:Error Handling Vulnerability]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Availability Vulnerability&lt;br /&gt;
&lt;br /&gt;
Authorization Vulnerability&lt;br /&gt;
&lt;br /&gt;
Authentication Vulnerability&lt;br /&gt;
&lt;br /&gt;
Concurrency Vulnerability&lt;br /&gt;
&lt;br /&gt;
Configuration Vulnerability&lt;br /&gt;
&lt;br /&gt;
Cryptographic Vulnerability&lt;br /&gt;
&lt;br /&gt;
Encoding Vulnerability&lt;br /&gt;
&lt;br /&gt;
Error Handling Vulnerability&lt;br /&gt;
&lt;br /&gt;
Input Validation Vulnerability&lt;br /&gt;
&lt;br /&gt;
Logging and Auditing Vulnerability&lt;br /&gt;
&lt;br /&gt;
Session Management Vulnerability]]&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:OWASP ASDR Project]]&lt;br /&gt;
[[Category:Vulnerability]]&lt;/div&gt;</summary>
		<author><name>Kcfredman</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Error_Message_Infoleaks&amp;diff=48533</id>
		<title>Error Message Infoleaks</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Error_Message_Infoleaks&amp;diff=48533"/>
				<updated>2008-12-13T16:57:13Z</updated>
		
		<summary type="html">&lt;p&gt;Kcfredman: /* Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:Stub}}&lt;br /&gt;
{{Template:Vulnerability}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
[[ASDR Table of Contents]]&lt;br /&gt;
&lt;br /&gt;
Last revision (mm/dd/yy): '''{{REVISIONMONTH}}/{{REVISIONDAY}}/{{REVISIONYEAR}}'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:FIXME|This is the text from the old template. This needs to be rewritten using the new template.]]&lt;br /&gt;
[[Category:FIXME|Stub article, needs review]]&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Displaying unsolicited excess detail within Error messages that can be used to facilitate an attack.&lt;br /&gt;
&lt;br /&gt;
==Risk Factors==&lt;br /&gt;
&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
==Examples==&lt;br /&gt;
&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
==Related [[Attacks]]==&lt;br /&gt;
&lt;br /&gt;
* [[Attack 1]]&lt;br /&gt;
* [[Attack 2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Related [[Vulnerabilities]]==&lt;br /&gt;
&lt;br /&gt;
* [[Discrepancy Information Leaks]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Related [[Controls]]==&lt;br /&gt;
&lt;br /&gt;
* [[:Category:Error Handling]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Related [[Technical Impacts]]==&lt;br /&gt;
&lt;br /&gt;
* [[Technical Impact 1]]&lt;br /&gt;
* [[Technical Impact 2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
[[Category:FIXME|add links&lt;br /&gt;
&lt;br /&gt;
In addition, one should classify vulnerability based on the following subcategories: Ex:&amp;lt;nowiki&amp;gt;[[Category:Error Handling Vulnerability]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Availability Vulnerability&lt;br /&gt;
&lt;br /&gt;
Authorization Vulnerability&lt;br /&gt;
&lt;br /&gt;
Authentication Vulnerability&lt;br /&gt;
&lt;br /&gt;
Concurrency Vulnerability&lt;br /&gt;
&lt;br /&gt;
Configuration Vulnerability&lt;br /&gt;
&lt;br /&gt;
Cryptographic Vulnerability&lt;br /&gt;
&lt;br /&gt;
Encoding Vulnerability&lt;br /&gt;
&lt;br /&gt;
Error Handling Vulnerability&lt;br /&gt;
&lt;br /&gt;
Input Validation Vulnerability&lt;br /&gt;
&lt;br /&gt;
Logging and Auditing Vulnerability&lt;br /&gt;
&lt;br /&gt;
Session Management Vulnerability]]&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:OWASP ASDR Project]]&lt;br /&gt;
[[Category:Vulnerability]]&lt;/div&gt;</summary>
		<author><name>Kcfredman</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Working_Session_Winter_of_Code_2009&amp;diff=45390</id>
		<title>Working Session Winter of Code 2009</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Working_Session_Winter_of_Code_2009&amp;diff=45390"/>
				<updated>2008-11-01T22:24:25Z</updated>
		
		<summary type="html">&lt;p&gt;Kcfredman: /* Working Session Participants */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;width:100%&amp;quot; border=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
 ! colspan=&amp;quot;7&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#b3b3b3; color:white&amp;quot;|&amp;lt;font color=&amp;quot;black&amp;quot;&amp;gt;'''Working Sessions Operational Rules''' - [[:Working Sessions Methodology|'''Please see here the general frame of rules''']].&lt;br /&gt;
 |}&lt;br /&gt;
{| style=&amp;quot;width:100%&amp;quot; border=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
 ! colspan=&amp;quot;7&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#4058A0; color:white&amp;quot;|&amp;lt;font color=&amp;quot;white&amp;quot;&amp;gt;'''WORKING SESSION IDENTIFICATION''' &lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|'''Work Session Name'''&lt;br /&gt;
 | colspan=&amp;quot;6&amp;quot; style=&amp;quot;width:85%; background:#cccccc&amp;quot; align=&amp;quot;left&amp;quot;|&amp;lt;font color=&amp;quot;black&amp;quot;&amp;gt;'''OWASP Winter of Code 2009'''&lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;| '''Short Work Session Description''' &lt;br /&gt;
 | colspan=&amp;quot;6&amp;quot; style=&amp;quot;width:85%; background:#cccccc&amp;quot; align=&amp;quot;left&amp;quot;|Aims to define the next OWASP Season of Code frame.&lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;| '''Related Projects (if any)''' &lt;br /&gt;
 | colspan=&amp;quot;6&amp;quot; style=&amp;quot;width:85%; background:#cccccc&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
*[[:OWASP Summer of Code 2008|OWASP Summer of Code 2008]],&lt;br /&gt;
*[[:OWASP Spring Of Code 2007|OWASP Spring Of Code 2007]], &lt;br /&gt;
*[[:OWASP Autumn Of Code 2006|OWASP Autumn Of Code 2006]].&lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:25%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|'''Email Contacts &amp;amp; Roles'''&lt;br /&gt;
 | style=&amp;quot;width:25%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|'''Chair'''&amp;lt;br&amp;gt;[mailto:dinis.cruz(at)owasp.org '''Dinis Cruz'''], [mailto:seba(at)owasp.org '''Sebastien Deleersnyder'''] &lt;br /&gt;
 | style=&amp;quot;width:25%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|'''Secretary'''&amp;lt;br&amp;gt;[mailto:paulo.coimbra(at)owasp.org '''Paulo Coimbra''']&lt;br /&gt;
 | style=&amp;quot;width:25%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|'''Mailing list'''&amp;lt;br&amp;gt;[https://lists.owasp.org/mailman/listinfo/owasp-winter-of-code-2009 '''Subscription Page''']&lt;br /&gt;
 |}&lt;br /&gt;
{| style=&amp;quot;width:100%&amp;quot; border=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
 ! colspan=&amp;quot;7&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#4058A0; color:white&amp;quot;|&amp;lt;font color=&amp;quot;white&amp;quot;&amp;gt;'''WORKING SESSION SPECIFICS''' &lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|'''Objectives'''&lt;br /&gt;
 | colspan=&amp;quot;6&amp;quot; style=&amp;quot;width:85%; background:#cccccc&amp;quot; align=&amp;quot;left&amp;quot;|&amp;lt;font color=&amp;quot;black&amp;quot;&amp;gt;&lt;br /&gt;
*  Define the operation model for the next OWASP Season of Code (the Winter of Code 08),&lt;br /&gt;
* Identify which areas should receive priority selection,&lt;br /&gt;
* Create 'virtual teams' from the attendees and allocate them to key projects,&lt;br /&gt;
* Discuss sponsoring models. &lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:25%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|'''Venue/Date&amp;amp;Time/Model'''&lt;br /&gt;
 | style=&amp;quot;width:25%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|'''Venue'''&amp;lt;br&amp;gt;[[:OWASP EU Summit 2008|OWASP EU Summit Portugal 2008]] &lt;br /&gt;
 | style=&amp;quot;width:25%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|'''Date&amp;amp;Time'''&amp;lt;br&amp;gt;November 4 &amp;amp; 7, 2008 &amp;lt;br&amp;gt;Time TBD&lt;br /&gt;
 | style=&amp;quot;width:25%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|'''Discussion Model'''&amp;lt;br&amp;gt;&amp;quot;Everybody is a Participant&amp;quot;&lt;br /&gt;
 |}&lt;br /&gt;
{| style=&amp;quot;width:100%&amp;quot; border=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
 ! colspan=&amp;quot;7&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:white; color:white&amp;quot;|&amp;lt;font color=&amp;quot;black&amp;quot;&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;width:100%&amp;quot; border=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
 ! colspan=&amp;quot;7&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#4058A0; color:white&amp;quot;|&amp;lt;font color=&amp;quot;white&amp;quot;&amp;gt;'''WORKING SESSION OPERATIONAL RESOURCES''' &lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:100%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Please add here, ASAP, any needed relevant resources, e.g. data-show, boards, laptops, etc.&lt;br /&gt;
 |}&lt;br /&gt;
{| style=&amp;quot;width:100%&amp;quot; border=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
 ! colspan=&amp;quot;7&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:white; color:white&amp;quot;|&amp;lt;font color=&amp;quot;black&amp;quot;&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
{| style=&amp;quot;width:100%&amp;quot; border=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
 ! colspan=&amp;quot;7&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#4058A0; color:white&amp;quot;|&amp;lt;font color=&amp;quot;white&amp;quot;&amp;gt;'''WORKING SESSION ADDITIONAL DETAILS''' &lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:100%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Please add here, any additional notes, links, ideas, guidelines, etc... The objective is to help the working sessions participants and attendees to prepare their participation/contribution&lt;br /&gt;
 |}&lt;br /&gt;
{| style=&amp;quot;width:100%&amp;quot; border=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
 ! colspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#4058A0; color:white&amp;quot;|'''WORKING SESSION OUTCOMES''' &lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#6C82B5&amp;quot; align=&amp;quot;center&amp;quot;|Statements, Initiatives or Decisions &lt;br /&gt;
 | style=&amp;quot;width:46%; background:#b3b3b3&amp;quot; align=&amp;quot;center&amp;quot;|'''Proposed by Working Group''' &lt;br /&gt;
 | style=&amp;quot;width:47%; background:#b3b3b3&amp;quot; align=&amp;quot;center&amp;quot;|'''Approved by OWASP Board'''&lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|Initiative &lt;br /&gt;
 | style=&amp;quot;width:46%; background:#C2C2C2&amp;quot; align=&amp;quot;center&amp;quot;|OWASP Winter of Code 08 plan.&lt;br /&gt;
 | style=&amp;quot;width:47%; background:#C2C2C2&amp;quot; align=&amp;quot;center&amp;quot;|After the Board Meeting - fill in here. &lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|Decision &lt;br /&gt;
 | style=&amp;quot;width:46%; background:#C2C2C2&amp;quot; align=&amp;quot;center&amp;quot;|Set of projects for immediate approval (assuming the proposal is ready).&lt;br /&gt;
 | style=&amp;quot;width:47%; background:#C2C2C2&amp;quot; align=&amp;quot;center&amp;quot;|After the Board Meeting - fill in here. &lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|&lt;br /&gt;
 | style=&amp;quot;width:46%; background:#C2C2C2&amp;quot; align=&amp;quot;center&amp;quot;|Fill in here.&lt;br /&gt;
 | style=&amp;quot;width:47%; background:#C2C2C2&amp;quot; align=&amp;quot;center&amp;quot;|After the Board Meeting - fill in here. &lt;br /&gt;
  |}&lt;br /&gt;
== Working Session Participants ==&lt;br /&gt;
(Add you name by editing this table. On your the right, just above the this frame, you have the option to edit)&lt;br /&gt;
{| style=&amp;quot;width:100%&amp;quot; border=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
 ! colspan=&amp;quot;7&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#4058A0; color:white&amp;quot;|&amp;lt;font color=&amp;quot;white&amp;quot;&amp;gt;'''WORKING SESSION PARTICIPANTS''' &lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|'''Name'''&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|'''Company'''&lt;br /&gt;
 | style=&amp;quot;width:63%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|'''Notes &amp;amp; reason for participating, issues to be discussed/addressed'''&lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|1&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;| Eduardo Vianna de Camargo Neves&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;| Conviso IT Security&lt;br /&gt;
 | style=&amp;quot;width:63%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;| Understand how we can help the initiative and participate to continue the Positive Security project.&lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|2&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Leonardo Cavallari Militelli&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|E-VAL Tecnologia&lt;br /&gt;
 | style=&amp;quot;width:63%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Share feelings from other 2 season of code, discuss improvements for WoC and continue ASDR development.&lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|3&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Matt Tesauro&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|OWASP Live CD 2008 Project Lead&lt;br /&gt;
 | style=&amp;quot;width:63%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Discuss what worked and didn't work with the SoC.&amp;lt;br&amp;gt;  Give some input on how to spread the word about OWASP's XoC's&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|4&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;| Matteo Meucci&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;| Minded Security, OWASP Testing Guide&lt;br /&gt;
 | style=&amp;quot;width:63%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;| Discuss new ideas about projects. Should OWASP says which projects develop?&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|5&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;| Carlo Pelliccioni&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;| Symantec, OWASP Backend Security Project&lt;br /&gt;
 | style=&amp;quot;width:63%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;| Discuss about the next OWASP sponsorship to share new ideas.&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|6&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Christian Martorella&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Edge-Security, WebSlayer Project&lt;br /&gt;
 | style=&amp;quot;width:63%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Interested in the topic&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|7&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Eoin Keary&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Code review guide lead&lt;br /&gt;
 | style=&amp;quot;width:63%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|What next for the sponsored prjoects?&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|8&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Arturo 'Buanzo' Busleiman&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Independent&lt;br /&gt;
 | style=&amp;quot;width:63%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Project Leader in 07 and 08, past experience.&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|9&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Rogan Dawes&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Corsaire&lt;br /&gt;
 | style=&amp;quot;width:63%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|WebScarab lead, reviewer and past participant&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|10&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Frederick Donovan&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Donovan Networks&lt;br /&gt;
 | style=&amp;quot;width:63%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Participant&lt;br /&gt;
 |}&lt;br /&gt;
If needed add here more lines.&lt;br /&gt;
&lt;br /&gt;
[[Category:OWASP_Working_Session]]&lt;/div&gt;</summary>
		<author><name>Kcfredman</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=OWASP_Working_Session_Enterprise_Security_API_Project&amp;diff=45389</id>
		<title>OWASP Working Session Enterprise Security API Project</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=OWASP_Working_Session_Enterprise_Security_API_Project&amp;diff=45389"/>
				<updated>2008-11-01T22:19:36Z</updated>
		
		<summary type="html">&lt;p&gt;Kcfredman: /* Working Session Participants */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;width:100%&amp;quot; border=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
 ! colspan=&amp;quot;7&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#b3b3b3; color:white&amp;quot;|&amp;lt;font color=&amp;quot;black&amp;quot;&amp;gt;'''Working Sessions Operational Rules''' - [[:Working Sessions Methodology|'''Please see here the general frame of rules''']].&lt;br /&gt;
 |}&lt;br /&gt;
{| style=&amp;quot;width:100%&amp;quot; border=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
 ! colspan=&amp;quot;7&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#4058A0; color:white&amp;quot;|&amp;lt;font color=&amp;quot;white&amp;quot;&amp;gt;'''WORKING SESSION IDENTIFICATION''' &lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|'''Work Session Name'''&lt;br /&gt;
 | colspan=&amp;quot;6&amp;quot; style=&amp;quot;width:85%; background:#cccccc&amp;quot; align=&amp;quot;left&amp;quot;|&amp;lt;font color=&amp;quot;black&amp;quot;&amp;gt;'''OWASP Enterprise Security API Project '''&lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;| '''Short Work Session Description''' &lt;br /&gt;
 | colspan=&amp;quot;6&amp;quot; style=&amp;quot;width:85%; background:#cccccc&amp;quot; align=&amp;quot;left&amp;quot;|In this working session we will consider all aspects of the Enterprise Security API project. The goal of the project is to simplify security for developers to make secure code more likely. To achieve this goal we define clean intuitive APIs for standard security functionality. Ideally, these APIs will cover common security controls across web applications, web services, and even rich client applications. This working session will review the state of the project, discuss technical issues, discuss &amp;quot;marketing&amp;quot; of the project, prioritize project work items, and browbeat attendees into joining the project and making the world a safer place.&lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;| '''Related Projects (if any)''' &lt;br /&gt;
 | colspan=&amp;quot;6&amp;quot; style=&amp;quot;width:85%; background:#cccccc&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
[[:Category:OWASP Enterprise Security API|OWASP Enterprise Security API (ESAPI) Project]]&lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:25%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|'''Email Contacts &amp;amp; Roles'''&lt;br /&gt;
 | style=&amp;quot;width:25%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|'''Chair'''&amp;lt;br&amp;gt;[mailto:jeff.williams(at)owasp.org '''Jeff Williams'''] &lt;br /&gt;
 | style=&amp;quot;width:25%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|'''Secretary'''&amp;lt;br&amp;gt;[mailto:arshan.dabirsiaghi(at)aspectsecurity.com '''Arshan Dabirsiaghi''']&lt;br /&gt;
 | style=&amp;quot;width:25%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|'''Mailing list'''&amp;lt;br&amp;gt;[https://lists.owasp.org/mailman/listinfo/owasp-esapi '''Subscription Page''']&lt;br /&gt;
 |}&lt;br /&gt;
{| style=&amp;quot;width:100%&amp;quot; border=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
 ! colspan=&amp;quot;7&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#4058A0; color:white&amp;quot;|&amp;lt;font color=&amp;quot;white&amp;quot;&amp;gt;'''WORKING SESSION SPECIFICS''' &lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|'''Objectives'''&lt;br /&gt;
 | colspan=&amp;quot;6&amp;quot; style=&amp;quot;width:85%; background:#cccccc&amp;quot; align=&amp;quot;left&amp;quot;|&amp;lt;font color=&amp;quot;black&amp;quot;&amp;gt;&lt;br /&gt;
Introduce everyone to the idea and cost-benefits of an ESAPI. &lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:25%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|'''Venue/Date&amp;amp;Time/Model'''&lt;br /&gt;
 | style=&amp;quot;width:25%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|'''Venue'''&amp;lt;br&amp;gt;[[:OWASP EU Summit 2008|OWASP EU Summit Portugal 2008]] &lt;br /&gt;
 | style=&amp;quot;width:25%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|'''Date&amp;amp;Time'''&amp;lt;br&amp;gt;November 5, 2008 &amp;lt;br&amp;gt;1:00 PM&lt;br /&gt;
 | style=&amp;quot;width:25%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|'''Discussion Model'''&amp;lt;br&amp;gt;&amp;quot;Participants + Attendees&amp;quot; &lt;br /&gt;
 |}&lt;br /&gt;
{| style=&amp;quot;width:100%&amp;quot; border=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
 ! colspan=&amp;quot;7&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:white; color:white&amp;quot;|&amp;lt;font color=&amp;quot;black&amp;quot;&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;width:100%&amp;quot; border=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
 ! colspan=&amp;quot;7&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#4058A0; color:white&amp;quot;|&amp;lt;font color=&amp;quot;white&amp;quot;&amp;gt;'''WORKING SESSION OPERATIONAL RESOURCES''' &lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:100%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Please add here, ASAP, any needed relevant resources, e.g. data-show, boards, laptops, etc.&lt;br /&gt;
 |}&lt;br /&gt;
{| style=&amp;quot;width:100%&amp;quot; border=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
 ! colspan=&amp;quot;7&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:white; color:white&amp;quot;|&amp;lt;font color=&amp;quot;black&amp;quot;&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
{| style=&amp;quot;width:100%&amp;quot; border=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
 ! colspan=&amp;quot;7&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#4058A0; color:white&amp;quot;|&amp;lt;font color=&amp;quot;white&amp;quot;&amp;gt;'''WORKING SESSION ADDITIONAL DETAILS''' &lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:100%; background:#cccccc&amp;quot; align=&amp;quot;left&amp;quot;|Please add here, any additional notes, links, ideas, guidelines, etc... The objective is to help the working sessions participants and attendees to prepare their participation/contribution.&lt;br /&gt;
 |}&lt;br /&gt;
{| style=&amp;quot;width:100%&amp;quot; border=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
 ! colspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#4058A0; color:white&amp;quot;|'''WORKING SESSION OUTCOMES''' &lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#6C82B5&amp;quot; align=&amp;quot;center&amp;quot;|Statements, Initiatives or Decisions &lt;br /&gt;
 | style=&amp;quot;width:46%; background:#b3b3b3&amp;quot; align=&amp;quot;center&amp;quot;|'''Proposed by Working Group''' &lt;br /&gt;
 | style=&amp;quot;width:47%; background:#b3b3b3&amp;quot; align=&amp;quot;center&amp;quot;|'''Approved by OWASP Board'''&lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|&lt;br /&gt;
 | style=&amp;quot;width:46%; background:#C2C2C2&amp;quot; align=&amp;quot;center&amp;quot;|A volunteer to lead the 'marketing' campaign for ESAPI.  &lt;br /&gt;
 | style=&amp;quot;width:47%; background:#C2C2C2&amp;quot; align=&amp;quot;center&amp;quot;|After the Board Meeting - fill in here. &lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|&lt;br /&gt;
 | style=&amp;quot;width:46%; background:#C2C2C2&amp;quot; align=&amp;quot;center&amp;quot;|Prioritized list of marketing ideas for the ESAPI concept. &lt;br /&gt;
 | style=&amp;quot;width:47%; background:#C2C2C2&amp;quot; align=&amp;quot;center&amp;quot;|After the Board Meeting - fill in here. &lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|&lt;br /&gt;
 | style=&amp;quot;width:46%; background:#C2C2C2&amp;quot; align=&amp;quot;center&amp;quot;|Prioritized list of ideas for improving the API. &lt;br /&gt;
 | style=&amp;quot;width:47%; background:#C2C2C2&amp;quot; align=&amp;quot;center&amp;quot;|After the Board Meeting - fill in here. &lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|&lt;br /&gt;
 | style=&amp;quot;width:46%; background:#C2C2C2&amp;quot; align=&amp;quot;center&amp;quot;|Fill in here.&lt;br /&gt;
 | style=&amp;quot;width:47%; background:#C2C2C2&amp;quot; align=&amp;quot;center&amp;quot;|After the Board Meeting - fill in here. &lt;br /&gt;
 |}&lt;br /&gt;
== Working Session Participants ==&lt;br /&gt;
(Add you name by editing this table. On your the right, just above the this frame, you have the option to edit)&lt;br /&gt;
{| style=&amp;quot;width:100%&amp;quot; border=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
 ! colspan=&amp;quot;7&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#4058A0; color:white&amp;quot;|&amp;lt;font color=&amp;quot;white&amp;quot;&amp;gt;'''WORKING SESSION PARTICIPANTS''' &lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|'''Name'''&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|'''Company'''&lt;br /&gt;
 | style=&amp;quot;width:63%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|'''Notes &amp;amp; reason for participating, issues to be discussed/addressed'''&lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|1&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Matt Tesauro&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|OWASP Live CD Project Lead&lt;br /&gt;
 | style=&amp;quot;width:63%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Curious about how various &amp;quot;ports&amp;quot; should be handled (lang != Java) &amp;lt;br&amp;gt; Run them as separate projects or sub-projects.  How are they synchronized, if at all?  What state are they in?  How bad will the browbeating be?&lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|2&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Andrea Cogliati&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|OWASP Rochester, NY&lt;br /&gt;
 | style=&amp;quot;width:63%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Interested in porting to other platforms (Ruby&amp;amp;Rails) and in integration issues with existing framework (Struts, Spring, ...)&lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|3&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Alex Smolen&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Foundstone&lt;br /&gt;
 | style=&amp;quot;width:63%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Author and Project Leader for .NET ESAPI&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|4&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Kuai Hinojosa&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|New York University&lt;br /&gt;
 | style=&amp;quot;width:63%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Interesting in ESAPI for PHP and How to best implement the ESAPI.&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|5&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Fred Donovan&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Donovan Networks&lt;br /&gt;
 | style=&amp;quot;width:63%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Interested in the structure and integrating this as a solution for Fortune 200 web development processes&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|6&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;| &lt;br /&gt;
 | style=&amp;quot;width:63%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|7&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|&lt;br /&gt;
 | style=&amp;quot;width:63%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|8&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|&lt;br /&gt;
 | style=&amp;quot;width:63%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|9&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|&lt;br /&gt;
 | style=&amp;quot;width:63%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|10&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|&lt;br /&gt;
 | style=&amp;quot;width:63%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|&lt;br /&gt;
 |}&lt;br /&gt;
If needed add here more lines.&lt;br /&gt;
&lt;br /&gt;
[[Category:OWASP_Working_Session]]&lt;/div&gt;</summary>
		<author><name>Kcfredman</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=OWASP_Working_Session_Enterprise_Security_API_Project&amp;diff=45387</id>
		<title>OWASP Working Session Enterprise Security API Project</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=OWASP_Working_Session_Enterprise_Security_API_Project&amp;diff=45387"/>
				<updated>2008-11-01T22:16:46Z</updated>
		
		<summary type="html">&lt;p&gt;Kcfredman: /* Working Session Participants */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;width:100%&amp;quot; border=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
 ! colspan=&amp;quot;7&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#b3b3b3; color:white&amp;quot;|&amp;lt;font color=&amp;quot;black&amp;quot;&amp;gt;'''Working Sessions Operational Rules''' - [[:Working Sessions Methodology|'''Please see here the general frame of rules''']].&lt;br /&gt;
 |}&lt;br /&gt;
{| style=&amp;quot;width:100%&amp;quot; border=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
 ! colspan=&amp;quot;7&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#4058A0; color:white&amp;quot;|&amp;lt;font color=&amp;quot;white&amp;quot;&amp;gt;'''WORKING SESSION IDENTIFICATION''' &lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|'''Work Session Name'''&lt;br /&gt;
 | colspan=&amp;quot;6&amp;quot; style=&amp;quot;width:85%; background:#cccccc&amp;quot; align=&amp;quot;left&amp;quot;|&amp;lt;font color=&amp;quot;black&amp;quot;&amp;gt;'''OWASP Enterprise Security API Project '''&lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;| '''Short Work Session Description''' &lt;br /&gt;
 | colspan=&amp;quot;6&amp;quot; style=&amp;quot;width:85%; background:#cccccc&amp;quot; align=&amp;quot;left&amp;quot;|In this working session we will consider all aspects of the Enterprise Security API project. The goal of the project is to simplify security for developers to make secure code more likely. To achieve this goal we define clean intuitive APIs for standard security functionality. Ideally, these APIs will cover common security controls across web applications, web services, and even rich client applications. This working session will review the state of the project, discuss technical issues, discuss &amp;quot;marketing&amp;quot; of the project, prioritize project work items, and browbeat attendees into joining the project and making the world a safer place.&lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;| '''Related Projects (if any)''' &lt;br /&gt;
 | colspan=&amp;quot;6&amp;quot; style=&amp;quot;width:85%; background:#cccccc&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
[[:Category:OWASP Enterprise Security API|OWASP Enterprise Security API (ESAPI) Project]]&lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:25%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|'''Email Contacts &amp;amp; Roles'''&lt;br /&gt;
 | style=&amp;quot;width:25%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|'''Chair'''&amp;lt;br&amp;gt;[mailto:jeff.williams(at)owasp.org '''Jeff Williams'''] &lt;br /&gt;
 | style=&amp;quot;width:25%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|'''Secretary'''&amp;lt;br&amp;gt;[mailto:arshan.dabirsiaghi(at)aspectsecurity.com '''Arshan Dabirsiaghi''']&lt;br /&gt;
 | style=&amp;quot;width:25%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|'''Mailing list'''&amp;lt;br&amp;gt;[https://lists.owasp.org/mailman/listinfo/owasp-esapi '''Subscription Page''']&lt;br /&gt;
 |}&lt;br /&gt;
{| style=&amp;quot;width:100%&amp;quot; border=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
 ! colspan=&amp;quot;7&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#4058A0; color:white&amp;quot;|&amp;lt;font color=&amp;quot;white&amp;quot;&amp;gt;'''WORKING SESSION SPECIFICS''' &lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|'''Objectives'''&lt;br /&gt;
 | colspan=&amp;quot;6&amp;quot; style=&amp;quot;width:85%; background:#cccccc&amp;quot; align=&amp;quot;left&amp;quot;|&amp;lt;font color=&amp;quot;black&amp;quot;&amp;gt;&lt;br /&gt;
Introduce everyone to the idea and cost-benefits of an ESAPI. &lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:25%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|'''Venue/Date&amp;amp;Time/Model'''&lt;br /&gt;
 | style=&amp;quot;width:25%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|'''Venue'''&amp;lt;br&amp;gt;[[:OWASP EU Summit 2008|OWASP EU Summit Portugal 2008]] &lt;br /&gt;
 | style=&amp;quot;width:25%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|'''Date&amp;amp;Time'''&amp;lt;br&amp;gt;November 5, 2008 &amp;lt;br&amp;gt;1:00 PM&lt;br /&gt;
 | style=&amp;quot;width:25%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|'''Discussion Model'''&amp;lt;br&amp;gt;&amp;quot;Participants + Attendees&amp;quot; &lt;br /&gt;
 |}&lt;br /&gt;
{| style=&amp;quot;width:100%&amp;quot; border=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
 ! colspan=&amp;quot;7&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:white; color:white&amp;quot;|&amp;lt;font color=&amp;quot;black&amp;quot;&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;width:100%&amp;quot; border=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
 ! colspan=&amp;quot;7&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#4058A0; color:white&amp;quot;|&amp;lt;font color=&amp;quot;white&amp;quot;&amp;gt;'''WORKING SESSION OPERATIONAL RESOURCES''' &lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:100%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Please add here, ASAP, any needed relevant resources, e.g. data-show, boards, laptops, etc.&lt;br /&gt;
 |}&lt;br /&gt;
{| style=&amp;quot;width:100%&amp;quot; border=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
 ! colspan=&amp;quot;7&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:white; color:white&amp;quot;|&amp;lt;font color=&amp;quot;black&amp;quot;&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
{| style=&amp;quot;width:100%&amp;quot; border=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
 ! colspan=&amp;quot;7&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#4058A0; color:white&amp;quot;|&amp;lt;font color=&amp;quot;white&amp;quot;&amp;gt;'''WORKING SESSION ADDITIONAL DETAILS''' &lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:100%; background:#cccccc&amp;quot; align=&amp;quot;left&amp;quot;|Please add here, any additional notes, links, ideas, guidelines, etc... The objective is to help the working sessions participants and attendees to prepare their participation/contribution.&lt;br /&gt;
 |}&lt;br /&gt;
{| style=&amp;quot;width:100%&amp;quot; border=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
 ! colspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#4058A0; color:white&amp;quot;|'''WORKING SESSION OUTCOMES''' &lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#6C82B5&amp;quot; align=&amp;quot;center&amp;quot;|Statements, Initiatives or Decisions &lt;br /&gt;
 | style=&amp;quot;width:46%; background:#b3b3b3&amp;quot; align=&amp;quot;center&amp;quot;|'''Proposed by Working Group''' &lt;br /&gt;
 | style=&amp;quot;width:47%; background:#b3b3b3&amp;quot; align=&amp;quot;center&amp;quot;|'''Approved by OWASP Board'''&lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|&lt;br /&gt;
 | style=&amp;quot;width:46%; background:#C2C2C2&amp;quot; align=&amp;quot;center&amp;quot;|A volunteer to lead the 'marketing' campaign for ESAPI.  &lt;br /&gt;
 | style=&amp;quot;width:47%; background:#C2C2C2&amp;quot; align=&amp;quot;center&amp;quot;|After the Board Meeting - fill in here. &lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|&lt;br /&gt;
 | style=&amp;quot;width:46%; background:#C2C2C2&amp;quot; align=&amp;quot;center&amp;quot;|Prioritized list of marketing ideas for the ESAPI concept. &lt;br /&gt;
 | style=&amp;quot;width:47%; background:#C2C2C2&amp;quot; align=&amp;quot;center&amp;quot;|After the Board Meeting - fill in here. &lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|&lt;br /&gt;
 | style=&amp;quot;width:46%; background:#C2C2C2&amp;quot; align=&amp;quot;center&amp;quot;|Prioritized list of ideas for improving the API. &lt;br /&gt;
 | style=&amp;quot;width:47%; background:#C2C2C2&amp;quot; align=&amp;quot;center&amp;quot;|After the Board Meeting - fill in here. &lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|&lt;br /&gt;
 | style=&amp;quot;width:46%; background:#C2C2C2&amp;quot; align=&amp;quot;center&amp;quot;|Fill in here.&lt;br /&gt;
 | style=&amp;quot;width:47%; background:#C2C2C2&amp;quot; align=&amp;quot;center&amp;quot;|After the Board Meeting - fill in here. &lt;br /&gt;
 |}&lt;br /&gt;
== Working Session Participants ==&lt;br /&gt;
(Add you name by editing this table. On your the right, just above the this frame, you have the option to edit)&lt;br /&gt;
{| style=&amp;quot;width:100%&amp;quot; border=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
 ! colspan=&amp;quot;7&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#4058A0; color:white&amp;quot;|&amp;lt;font color=&amp;quot;white&amp;quot;&amp;gt;'''WORKING SESSION PARTICIPANTS''' &lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|'''Name'''&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|'''Company'''&lt;br /&gt;
 | style=&amp;quot;width:63%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|'''Notes &amp;amp; reason for participating, issues to be discussed/addressed'''&lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|1&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Matt Tesauro&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|OWASP Live CD Project Lead&lt;br /&gt;
 | style=&amp;quot;width:63%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Curious about how various &amp;quot;ports&amp;quot; should be handled (lang != Java) &amp;lt;br&amp;gt; Run them as separate projects or sub-projects.  How are they synchronized, if at all?  What state are they in?  How bad will the browbeating be?&lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|2&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Andrea Cogliati&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|OWASP Rochester, NY&lt;br /&gt;
 | style=&amp;quot;width:63%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Interested in porting to other platforms (Ruby&amp;amp;Rails) and in integration issues with existing framework (Struts, Spring, ...)&lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|3&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Alex Smolen&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Foundstone&lt;br /&gt;
 | style=&amp;quot;width:63%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Author and Project Leader for .NET ESAPI&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|4&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Kuai Hinojosa&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|New York University&lt;br /&gt;
 | style=&amp;quot;width:63%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Interesting in ESAPI for PHP and How to best implement the ESAPI.&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|5&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Fred Donovan&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Donovan Networks&lt;br /&gt;
 | style=&amp;quot;width:63%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Interested in the structure and integrating this with Fortune 200 companies&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|6&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;| &lt;br /&gt;
 | style=&amp;quot;width:63%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|7&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|&lt;br /&gt;
 | style=&amp;quot;width:63%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|8&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|&lt;br /&gt;
 | style=&amp;quot;width:63%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|9&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|&lt;br /&gt;
 | style=&amp;quot;width:63%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|10&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|&lt;br /&gt;
 | style=&amp;quot;width:63%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|&lt;br /&gt;
 |}&lt;br /&gt;
If needed add here more lines.&lt;br /&gt;
&lt;br /&gt;
[[Category:OWASP_Working_Session]]&lt;/div&gt;</summary>
		<author><name>Kcfredman</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=OWASP_Working_Session_-_Code_Review_Guide&amp;diff=45383</id>
		<title>OWASP Working Session - Code Review Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=OWASP_Working_Session_-_Code_Review_Guide&amp;diff=45383"/>
				<updated>2008-11-01T22:02:20Z</updated>
		
		<summary type="html">&lt;p&gt;Kcfredman: /* Working Session Participants */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;width:100%&amp;quot; border=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
 ! colspan=&amp;quot;7&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#b3b3b3; color:white&amp;quot;|&amp;lt;font color=&amp;quot;black&amp;quot;&amp;gt;'''Working Sessions Operational Rules''' - [[:Working Sessions Methodology|'''Please see here the general frame of rules''']].&lt;br /&gt;
 |}&lt;br /&gt;
{| style=&amp;quot;width:100%&amp;quot; border=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
 ! colspan=&amp;quot;7&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#4058A0; color:white&amp;quot;|&amp;lt;font color=&amp;quot;white&amp;quot;&amp;gt;'''WORKING SESSION IDENTIFICATION''' &lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|'''Work Session Name'''&lt;br /&gt;
 | colspan=&amp;quot;6&amp;quot; style=&amp;quot;width:85%; background:#cccccc&amp;quot; align=&amp;quot;left&amp;quot;|&amp;lt;font color=&amp;quot;black&amp;quot;&amp;gt;'''Code Review Guide'''&lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;| '''Short Work Session Description''' &lt;br /&gt;
 | colspan=&amp;quot;6&amp;quot; style=&amp;quot;width:85%; background:#cccccc&amp;quot; align=&amp;quot;left&amp;quot;|TBD&lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;| '''Related Projects (if any)''' &lt;br /&gt;
 | colspan=&amp;quot;6&amp;quot; style=&amp;quot;width:85%; background:#cccccc&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
[[:Category:OWASP Code Review Project|OWASP Code Review Project]]&lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:25%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|'''Email Contacts &amp;amp; Roles'''&lt;br /&gt;
 | style=&amp;quot;width:25%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|'''Chair'''&amp;lt;br&amp;gt;[mailto:eoin.keary(at)owasp.org '''Eoin Keary'''] &lt;br /&gt;
 | style=&amp;quot;width:25%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|'''Secretary'''&amp;lt;br&amp;gt;[mailto:name(at)name '''TBD''']&lt;br /&gt;
 | style=&amp;quot;width:25%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|'''Mailing list'''&amp;lt;br&amp;gt;[https://lists.owasp.org/mailman/listinfo/owasp-codereview '''Subscription Page''']&lt;br /&gt;
 |}&lt;br /&gt;
{| style=&amp;quot;width:100%&amp;quot; border=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
 ! colspan=&amp;quot;7&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#4058A0; color:white&amp;quot;|&amp;lt;font color=&amp;quot;white&amp;quot;&amp;gt;'''WORKING SESSION SPECIFICS''' &lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|'''Objectives'''&lt;br /&gt;
 | colspan=&amp;quot;6&amp;quot; style=&amp;quot;width:85%; background:#cccccc&amp;quot; align=&amp;quot;left&amp;quot;|&amp;lt;font color=&amp;quot;black&amp;quot;&amp;gt;&lt;br /&gt;
*  Discuss next version of code review guide.&lt;br /&gt;
* Discuss industry requirements for code review.&lt;br /&gt;
* Discuss academic versus practical ramifications of guide.&lt;br /&gt;
* Brainstorm: Ideas for integration with other projects and tools.&lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:25%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|'''Venue/Date&amp;amp;Time/Model'''&lt;br /&gt;
 | style=&amp;quot;width:25%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|'''Venue'''&amp;lt;br&amp;gt;[[:OWASP EU Summit 2008|OWASP EU Summit Portugal 2008]] &lt;br /&gt;
 | style=&amp;quot;width:25%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|'''Date&amp;amp;Time'''&amp;lt;br&amp;gt;November 5 &amp;amp; 6, 2008 &amp;lt;br&amp;gt;Time TBD&lt;br /&gt;
 | style=&amp;quot;width:25%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|'''Discussion Model'''&amp;lt;br&amp;gt;&amp;quot;Everybody is a Participant&amp;quot;&lt;br /&gt;
 |}&lt;br /&gt;
{| style=&amp;quot;width:100%&amp;quot; border=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
 ! colspan=&amp;quot;7&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:white; color:white&amp;quot;|&amp;lt;font color=&amp;quot;black&amp;quot;&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
{|style=&amp;quot;width:100%&amp;quot; border=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
 ! colspan=&amp;quot;7&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#4058A0; color:white&amp;quot;|&amp;lt;font color=&amp;quot;white&amp;quot;&amp;gt;'''WORKING SESSION OPERATIONAL RESOURCES''' &lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:100%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Whteboard and Pens, Projector, Coffee :)&lt;br /&gt;
 |}&lt;br /&gt;
{| style=&amp;quot;width:100%&amp;quot; border=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
 ! colspan=&amp;quot;7&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:white; color:white&amp;quot;|&amp;lt;font color=&amp;quot;black&amp;quot;&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
{| style=&amp;quot;width:100%&amp;quot; border=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
 ! colspan=&amp;quot;7&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#4058A0; color:white&amp;quot;|&amp;lt;font color=&amp;quot;white&amp;quot;&amp;gt;'''WORKING SESSION ADDITIONAL DETAILS''' &lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:100%; background:#cccccc&amp;quot; align=&amp;quot;left&amp;quot;|&lt;br /&gt;
Please add here, any additional notes, links, ideas, guidelines, etc... The objective is to help the working sessions participants and attendees to prepare their participation/contribution.&lt;br /&gt;
 |}&lt;br /&gt;
{| style=&amp;quot;width:100%&amp;quot; border=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
 ! colspan=&amp;quot;3&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#4058A0; color:white&amp;quot;|'''WORKING SESSION OUTCOMES''' &lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#6C82B5&amp;quot; align=&amp;quot;center&amp;quot;|Statements, Initiatives or Decisions &lt;br /&gt;
 | style=&amp;quot;width:46%; background:#b3b3b3&amp;quot; align=&amp;quot;center&amp;quot;|'''Proposed by Working Group''' &lt;br /&gt;
 | style=&amp;quot;width:47%; background:#b3b3b3&amp;quot; align=&amp;quot;center&amp;quot;|'''Approved by OWASP Board'''&lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|&lt;br /&gt;
 | style=&amp;quot;width:46%; background:#C2C2C2&amp;quot; align=&amp;quot;center&amp;quot;|Develop a roadmap for the code review guide: Technologies, approaches. &lt;br /&gt;
 | style=&amp;quot;width:47%; background:#C2C2C2&amp;quot; align=&amp;quot;center&amp;quot;|After the Board Meeting.&lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|&lt;br /&gt;
 | style=&amp;quot;width:46%; background:#C2C2C2&amp;quot; align=&amp;quot;center&amp;quot;|Fill in here.   &lt;br /&gt;
 | style=&amp;quot;width:47%; background:#C2C2C2&amp;quot; align=&amp;quot;center&amp;quot;|After the Board Meeting - fill in here.&lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|&lt;br /&gt;
 | style=&amp;quot;width:46%; background:#C2C2C2&amp;quot; align=&amp;quot;center&amp;quot;|Fill in here. &lt;br /&gt;
 | style=&amp;quot;width:47%; background:#C2C2C2&amp;quot; align=&amp;quot;center&amp;quot;|After the Board Meeting - fill in here. &lt;br /&gt;
  |}&lt;br /&gt;
== Working Session Participants ==&lt;br /&gt;
(Add you name by editing this table. On your the right, just above the this frame, you have the option to edit)&lt;br /&gt;
{| style=&amp;quot;width:100%&amp;quot; border=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
 ! colspan=&amp;quot;7&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#4058A0; color:white&amp;quot;|&amp;lt;font color=&amp;quot;white&amp;quot;&amp;gt;'''WORKING SESSION PARTICIPANTS''' &lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|'''Name'''&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|'''Company'''&lt;br /&gt;
 | style=&amp;quot;width:63%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|'''Notes &amp;amp; reason for participating, issues to be discussed/addressed'''&lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|1&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Paolo Perego (aka thesp0nge)&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Spike Reply&lt;br /&gt;
 | style=&amp;quot;width:63%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Owasp Orizon - Project Leader&lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|2&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|David Rook&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Realex Payments&lt;br /&gt;
 | style=&amp;quot;width:63%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Contributor to Code Review Guide&lt;br /&gt;
 |-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|3&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Giorgio Fedon&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Minded Security&lt;br /&gt;
 | style=&amp;quot;width:63%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Very interested in the topic&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|4&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;| Matteo Meucci&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;| Minded Security&lt;br /&gt;
 | style=&amp;quot;width:63%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;| Interested in integrating OWASP big 4: Dev, Code Review, Testing, ADSR&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|5&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Kuai Hinojosa&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|OWASP (MSP) Chapter Leader&lt;br /&gt;
 | style=&amp;quot;width:63%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|6&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|James Walden&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|NKU&lt;br /&gt;
 | style=&amp;quot;width:63%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|OWASP Source Code Analysis Project&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|7&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Wagner Elias&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Conviso IT Security&lt;br /&gt;
 | style=&amp;quot;width:63%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|8&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Arturo 'Buanzo' Busleiman&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Independent&lt;br /&gt;
 | style=&amp;quot;width:63%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Eoin looks passionate about the subject. I want to be near! :)&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|9&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Rogan Dawes&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Corsaire&lt;br /&gt;
 | style=&amp;quot;width:63%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Have experience, would like to contribute where possible&lt;br /&gt;
|-&lt;br /&gt;
 | style=&amp;quot;width:7%; background:#7B8ABD&amp;quot; align=&amp;quot;center&amp;quot;|10&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Frederick Donovan&lt;br /&gt;
 | style=&amp;quot;width:15%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Donovan Networks&lt;br /&gt;
 | style=&amp;quot;width:63%; background:#cccccc&amp;quot; align=&amp;quot;center&amp;quot;|Would like to see language specific guidelines&lt;br /&gt;
 |}&lt;br /&gt;
If needed add here more lines.&lt;br /&gt;
&lt;br /&gt;
[[Category:OWASP_Working_Session]]&lt;/div&gt;</summary>
		<author><name>Kcfredman</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=OWASP_EU_Summit_2008&amp;diff=33838</id>
		<title>OWASP EU Summit 2008</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=OWASP_EU_Summit_2008&amp;diff=33838"/>
				<updated>2008-07-10T22:12:11Z</updated>
		
		<summary type="html">&lt;p&gt;Kcfredman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;(WORK IN PROGRESS /UNDER DISCUSSION)&lt;br /&gt;
== UPDATES ==&lt;br /&gt;
*[[OWASP EU Summit 2008 - updates|'''OWASP EU Summit 2008 - updates''']]&lt;br /&gt;
&lt;br /&gt;
== What: OWASP Summit, a conference about OWASP and for OWASP's community ==&lt;br /&gt;
=== When: 4 to 7 Nov 2008 (4 &amp;amp; 5: Meetings and Training, 6 &amp;amp; 7: Conference) === &lt;br /&gt;
=== Where: Portugal ===&lt;br /&gt;
Faro or Lisbon&lt;br /&gt;
=== Organization===&lt;br /&gt;
Paulo Coimbra and Dinis Cruz&lt;br /&gt;
== Agenda ==&lt;br /&gt;
Theme: Present OWASP's projects, community and activities  .....     '....Connecting the dots.... &amp;quot;&lt;br /&gt;
&lt;br /&gt;
'''Day 1 &amp;amp; 2'''&lt;br /&gt;
*Training sessions (similar to what happens at the moment at the other OWASP conferences)&lt;br /&gt;
*OWASP Working Group sessions (1/2 day each) on:&lt;br /&gt;
** OWASP Governance, &amp;quot;What is OWASP's position on ....&amp;quot; &amp;amp; Action Plan for 2009&lt;br /&gt;
** ESAPI&lt;br /&gt;
** Browser Security&lt;br /&gt;
** OWASP Top 10 2009&lt;br /&gt;
&lt;br /&gt;
'''Day 3 &amp;amp; 4 Agenda:'''&lt;br /&gt;
* Presentations from AoC, SpoC and SoC Participants&lt;br /&gt;
* Presentations from 'Release' Quality OWASP projects (not included in the list above) or Key OWASP projects (like ESAPI)&lt;br /&gt;
* Presentations about OWASP : How it works, Financial reports, OotM (OWASP on the Move), new project management guidelines, local chapter finances, OWASP governance &lt;br /&gt;
* Presentation from Chapter leaders on the activities developed on their project&lt;br /&gt;
* Discussion on next steps for OWASP and focus of next OWASP financial investment plans&lt;br /&gt;
&lt;br /&gt;
Other ideas:&lt;br /&gt;
&lt;br /&gt;
* vote on 6th OWASP board member (Candidates to Apply)&lt;br /&gt;
&lt;br /&gt;
== other details==&lt;br /&gt;
&lt;br /&gt;
'''Projected Attendees:450 '''&lt;br /&gt;
* 200 with some (or all) expenses covered by OWASP&lt;br /&gt;
** 33 SoC participants&lt;br /&gt;
** 70 SoC reviewers&lt;br /&gt;
** 10 SoC Collaborators&lt;br /&gt;
** 15 AoC &amp;amp; SpoC participants&lt;br /&gt;
** 15 Chapter Leaders&lt;br /&gt;
** 8 OWASP Board &amp;amp; Employees&lt;br /&gt;
** 49 OWASP non-individual members (2x per 9k Corporate? 1x for the others?)&lt;br /&gt;
&lt;br /&gt;
=== Financial details ===&lt;br /&gt;
'''Expenses'''&lt;br /&gt;
* Accommodation &amp;amp; meals: 80,000 USD  = 400 USD per person (200x) for 3 nights accommodation  and 5 meals (3 dinners and 2 lunches)&lt;br /&gt;
* Flights &amp;amp;  Trains : 70,000 USD&lt;br /&gt;
&lt;br /&gt;
'''Revenue sources'''&lt;br /&gt;
* Tickets (for the 250 non 'OWASP invited' attendees)&lt;br /&gt;
* Training Sessions&lt;br /&gt;
* Conference sponsors&lt;br /&gt;
&lt;br /&gt;
== Participants ==&lt;br /&gt;
=== OWASP Board members &amp;amp; employees ===&lt;br /&gt;
* Jeff Williams &lt;br /&gt;
* Dave Wichers &lt;br /&gt;
* Dinis Cruz &lt;br /&gt;
* Tom Brennan &lt;br /&gt;
* Sebastien Deleersnyder &lt;br /&gt;
* Paulo Coimbra&lt;br /&gt;
* Kate Hartmann (to be confirmed)&lt;br /&gt;
* Alison McNamee (to be confirmed)&lt;br /&gt;
* Larry Casey (to be confirmed)&lt;br /&gt;
&lt;br /&gt;
=== Summer of Code 08 Participants &amp;amp; Reviewers ===&lt;br /&gt;
* (please add your name in the following format)&lt;br /&gt;
* OWASP Classic ASP Security Project&lt;br /&gt;
**Reviewer Esteban Ribicic Argentina -living in Croatia/Wien-&lt;br /&gt;
**Project Lead - Juan Carlos Calderon - Mexico&lt;br /&gt;
* OWASP Internationalization Guidelines &lt;br /&gt;
**Reviewer Esteban Ribicic Argentina -living in Croatia/Wien-&lt;br /&gt;
**Project Lead - Juan Carlos Calderon - Mexico&lt;br /&gt;
* OWASP Spanish Project Reviewer Esteban Ribicic&lt;br /&gt;
**Reviewer Esteban Ribicic Argentina -living in Croatia/Wien-&lt;br /&gt;
**Project Lead - Juan Carlos Calderon - Mexico&lt;br /&gt;
* OWASP Ruby on Rails Security Project Leader Heiko Webers from Germany&lt;br /&gt;
* OWASP Code Review Guide Lead - Eoin Keary - Ireland&lt;br /&gt;
* OWASP Enigform and mod_Openpgp - Arturo Alberto Busleiman (a.k.a Buanzo) - Argentina&lt;br /&gt;
* OWASP AppSensor - Michael Coates - United States&lt;br /&gt;
* OWASP ASDR - Leonardo Cavallari Militelli - Brazil&lt;br /&gt;
**Reviewer - Frederick Donovan - United States&lt;br /&gt;
*OWASP Corporate Application security guide- Parvathy Iyer- USA&lt;br /&gt;
* OWASP Positive Security - Eduardo Vianna de Camargo Neves - Brazil&lt;br /&gt;
* OWASP Backend Security Project - Carlo Pelliccioni - Italy&lt;br /&gt;
* OWASP Source Code Review OWASP Projects - Marco M. Morana (2nd reviewer) - United States&lt;br /&gt;
* OWASP Access Control Rules Tester Project&lt;br /&gt;
**Project leader - Andrew Petukhov - Russia, Moscow&lt;br /&gt;
* OWASP Live CD 2008&lt;br /&gt;
** Project Leader - Matt Tesauro - Austin, USA&lt;br /&gt;
* OWASP OpenSign Server Project&lt;br /&gt;
** Reviewer Pierre Parrend - France&lt;br /&gt;
** SoC's Reviewer Kevin Fuller - ?&lt;br /&gt;
&lt;br /&gt;
=== Spring of Code 07 Participants (Completed Projects) ===&lt;br /&gt;
* Refresh Attacks list - Przemyslaw Skowron - Poland&lt;br /&gt;
&lt;br /&gt;
* (please add your name)&lt;br /&gt;
* {Project} {Name} {Origin Country}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Autumn of Code 06 Participants ===&lt;br /&gt;
* (please add your name)&lt;br /&gt;
* {Project} {Name} {Origin Country}&lt;br /&gt;
&lt;br /&gt;
* WebScarab-NG, Rogan Dawes, South Africa&lt;br /&gt;
* OWASP Pantera, Simon Roses Femerling, Spain&lt;br /&gt;
&lt;br /&gt;
=== Active Chapter Leaders ===&lt;br /&gt;
* (please add your name in the following format)&lt;br /&gt;
* {Chapter} {Role} {Name} {Origin Country}&lt;br /&gt;
* Helsinki chapter leader - Antti Laulajainen, Finland&lt;br /&gt;
* NY/NJ Metro Board Member - Steve Antoniewicz, USA&lt;br /&gt;
* Twin-Cities chapter leader - Kuai Hinojosa, MN, USA&lt;br /&gt;
* Hawaii chapter leader/founder - Jim Manico, Anahola, Island of Kauai, Hawaii, USA&lt;br /&gt;
&lt;br /&gt;
=== Active Project Leaders (not currently participating on SoC 08)===&lt;br /&gt;
* (please add your name in the following format)&lt;br /&gt;
* {Project} {Role} {Name} {Origin Country}&lt;br /&gt;
.NET ESAPI - Project Leader - Alex Smolen - USA&lt;br /&gt;
&lt;br /&gt;
=== Significant Past OWASP contributor (that is not already covered by one of the above categories) ===&lt;br /&gt;
* (please add your name in the following format)&lt;br /&gt;
* {Project/Chapter} {Role} {Name} {Origin Country}&lt;br /&gt;
&lt;br /&gt;
=== Logistic and Support team ===&lt;br /&gt;
* Summit Graphic Design + Summit organization + on-site logistics support, Sarah Cruz, UK (London)&lt;/div&gt;</summary>
		<author><name>Kcfredman</name></author>	</entry>

	</feed>