<?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=Simon+Whittaker</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=Simon+Whittaker"/>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php/Special:Contributions/Simon_Whittaker"/>
		<updated>2026-04-26T08:13:00Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.27.2</generator>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Talk:CRV2_SecDepConfig&amp;diff=152973</id>
		<title>Talk:CRV2 SecDepConfig</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Talk:CRV2_SecDepConfig&amp;diff=152973"/>
				<updated>2013-06-05T21:38:32Z</updated>
		
		<summary type="html">&lt;p&gt;Simon Whittaker: Trying to create structure of the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I've put some notes in here for expansion, I realise I'm not down as the author but wanted to share some thoughts. These are sketchy notes atm but will expand.&lt;br /&gt;
&lt;br /&gt;
The aim of the process is to ensure only users with required access have permission to push to production&lt;br /&gt;
&lt;br /&gt;
* Developer pushes to version control &amp;amp; submits pull request&lt;br /&gt;
* Lead developer performs review process&lt;br /&gt;
* Lead Developer pulls changes to master&lt;br /&gt;
&lt;br /&gt;
'''Capistrano for automated deployment'''&lt;br /&gt;
* Create capdeploy user on $evironment with write permissions on relevant directories&lt;br /&gt;
* SSH key authentication only&lt;br /&gt;
* Capistrano ''cap deploy $environment'' pushes to correct environment&lt;br /&gt;
*&lt;/div&gt;</summary>
		<author><name>Simon Whittaker</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=OWASP_Code_Review_V2_Table_of_Contents&amp;diff=152972</id>
		<title>OWASP Code Review V2 Table of Contents</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=OWASP_Code_Review_V2_Table_of_Contents&amp;diff=152972"/>
				<updated>2013-06-05T21:08:03Z</updated>
		
		<summary type="html">&lt;p&gt;Simon Whittaker: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= '''OWASP Code Review Guide v2.0:''' =&lt;br /&gt;
&lt;br /&gt;
==Forward==&lt;br /&gt;
# Author - Eoin Keary&lt;br /&gt;
# Previous version to be updated:[[https://www.owasp.org/index.php/Code_Review_Guide_History]]&lt;br /&gt;
# [[CRV2_Forward|Put content here]]&lt;br /&gt;
&lt;br /&gt;
== Code Review Guide Introduction==&lt;br /&gt;
# Author - Eoin Keary&lt;br /&gt;
# Previous version to be updated:[[https://www.owasp.org/index.php/Code_Review_Introduction]]&lt;br /&gt;
# [[CRV2_Introduction|Put content here]]&lt;br /&gt;
&lt;br /&gt;
=== What is source code review and Static Analysis ===&lt;br /&gt;
# Author - Zyad Mghazli&lt;br /&gt;
# New Section&lt;br /&gt;
# [[CRV2_WhatIsCodeReview|Put content here]]&lt;br /&gt;
&lt;br /&gt;
=== Manual Review - Pros and Cons ===&lt;br /&gt;
# Author - Ashish Rao&lt;br /&gt;
# New Section&lt;br /&gt;
# Suggestion: Benchmark of different Stataic Analysis Tools  Zyad Mghazli&lt;br /&gt;
# Suggestion: Highlight the advantages of code review to the department/team - Gary David Robinson&lt;br /&gt;
# [[CRV2_ManualReviewProsCons|Put content here]]&lt;br /&gt;
&lt;br /&gt;
=== Why code review ===&lt;br /&gt;
==== Scope and Objective of secure code review ====&lt;br /&gt;
# Author - Ashish Rao&lt;br /&gt;
# [[CRV2_WhyCodeReview|Put content here]]&lt;br /&gt;
&lt;br /&gt;
=== We can't hack ourselves secure ===&lt;br /&gt;
# Author - Prathamesh Mhatre&lt;br /&gt;
# New Section&lt;br /&gt;
# [[CRV2_CantHackSecure|Put content here]]&lt;br /&gt;
&lt;br /&gt;
=== 360 Review: Coupling source code review and Testing / Hybrid Reviews===&lt;br /&gt;
# Author - Ashish Rao&lt;br /&gt;
# New Section&lt;br /&gt;
# [[CRV2_360Review|Put content here]]&lt;br /&gt;
&lt;br /&gt;
=== Can static code analyzers do it all? ===&lt;br /&gt;
# Author - Ashish Rao&lt;br /&gt;
# New Section&lt;br /&gt;
# [[CRV2_CanStaticAnalyzersDoAll|Put content here]]&lt;br /&gt;
&lt;br /&gt;
=Methodology=&lt;br /&gt;
===The code review approach===&lt;br /&gt;
#Author -  Prathamesh Mhatre&lt;br /&gt;
# [[CRV2_CodeReviewApproach|Put content here]]&lt;br /&gt;
&lt;br /&gt;
==== Preparation and context ====&lt;br /&gt;
# Author - Open&lt;br /&gt;
# Previous version to be updated: [[https://www.owasp.org/index.php/Code_Review_Preparation]]&lt;br /&gt;
# [[CRV2_PrepContext|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====Application Threat Modeling====&lt;br /&gt;
#Author - Andy, Renchie Joan&lt;br /&gt;
# Previous version to be updated: [[https://www.owasp.org/OCRG1.1:Application_Threat_Modeling]]&lt;br /&gt;
# [[CRV2_AppThreatModeling|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====Understanding Code layout/Design/Architecture====&lt;br /&gt;
#Author - Ashish Rao&lt;br /&gt;
# [[CRV2_CodeLayoutDesignArch|Put content here]]&lt;br /&gt;
&lt;br /&gt;
===SDLC Integration===&lt;br /&gt;
#Author - Andy, Ashish Rao&lt;br /&gt;
# Previous version to be updated: [[https://www.owasp.org/index.php/Security_Code_Review_in_the_SDLC]]&lt;br /&gt;
# [[CRV2_SDLCInt|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====Deployment Models====&lt;br /&gt;
=====Secure deployment configurations=====&lt;br /&gt;
#Author - Ashish Rao&lt;br /&gt;
# [[CRV2_SecDepConfig|Put content here]]&lt;br /&gt;
&lt;br /&gt;
# New Section&lt;br /&gt;
=====Metrics and code review=====&lt;br /&gt;
#Author - Andy&lt;br /&gt;
# Previous version to be updated: [[https://www.owasp.org/index.php/Code_Review_Metrics]]&lt;br /&gt;
# [[CRV2_MetricsCodeRev|Put content here]]&lt;br /&gt;
&lt;br /&gt;
=====Source and sink reviews=====&lt;br /&gt;
#Author - Ashish Rao&lt;br /&gt;
# New Section&lt;br /&gt;
# [[CRV2_SourceSinkRev|Put content here]]&lt;br /&gt;
&lt;br /&gt;
=====Code review Coverage=====&lt;br /&gt;
#Author - Open&lt;br /&gt;
#Previous version to be updated: [[https://www.owasp.org/index.php/Code_Review_Coverage]]&lt;br /&gt;
# [[CRV2_CodeRevCoverage|Put content here]]&lt;br /&gt;
&lt;br /&gt;
=====Design Reviews=====&lt;br /&gt;
#Author - Ashish Rao&lt;br /&gt;
*Why to review design?&lt;br /&gt;
**Building security in design - secure by design principle&lt;br /&gt;
**Design Areas to be reviewed&lt;br /&gt;
**Common Design Flaws&lt;br /&gt;
# [[CRV2_DesignRev|Put content here]]&lt;br /&gt;
&lt;br /&gt;
=====A Risk based approach to code review=====&lt;br /&gt;
#Author - Renchie Joan&lt;br /&gt;
#New Section&lt;br /&gt;
*&amp;quot;Doing things right or doing the right things...&amp;quot;&lt;br /&gt;
**&amp;quot;Not all bugs are equal&lt;br /&gt;
# [[CRV2_RiskBasedApproach|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====Crawling code====&lt;br /&gt;
#Author - Abbas Naderi&lt;br /&gt;
# Previous version to be updated: [[https://www.owasp.org/index.php/Crawling_Code]]&lt;br /&gt;
*API of Interest:&lt;br /&gt;
**Java&lt;br /&gt;
**.NET&lt;br /&gt;
**PHP&lt;br /&gt;
**RUBY&lt;br /&gt;
*Frameworks:&lt;br /&gt;
**Spring&lt;br /&gt;
**.NET MVC&lt;br /&gt;
**Structs&lt;br /&gt;
**Zend&lt;br /&gt;
#New Section&lt;br /&gt;
*Searching for code in C/C++&lt;br /&gt;
#Author - Gary Robinson&lt;br /&gt;
&lt;br /&gt;
# [[CRV2_CrawlingCode|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====Code reviews and Compliance====&lt;br /&gt;
#Author -Manual Harti&lt;br /&gt;
# Previous version to be updated: [[https://www.owasp.org/index.php/Code_Reviews_and_Compliance]]&lt;br /&gt;
# [[CRV2_CodeRevCompliance|Put content here]]&lt;br /&gt;
&lt;br /&gt;
=Reviewing by Techincal Control=&lt;br /&gt;
===Reviewing code for Authentication controls===&lt;br /&gt;
#Author - Anand Prakash, Joan Renchie&lt;br /&gt;
# [[CRV2_AuthControls|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====Forgot password====&lt;br /&gt;
#Author Abbas Naderi&lt;br /&gt;
# [[CRV2_ForgotPassword|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====Authentication====&lt;br /&gt;
#Author - Anand Prakash, Joan Renchie&lt;br /&gt;
# [[CRV2_Authentication|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====CAPTCHA====&lt;br /&gt;
#Author Larry Conklin, Joan Renchie&lt;br /&gt;
# [[CRV2_CAPTCHA|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====Out of Band considerations====&lt;br /&gt;
#Author - Open&lt;br /&gt;
# Previous version to be updated: [[https://www.owasp.org/index.php/Codereview-Authentication]]&lt;br /&gt;
# [[CRV2_OutofBand|Put content here]]&lt;br /&gt;
&lt;br /&gt;
===Reviewing code Authorization weakness===&lt;br /&gt;
#Author Ashish Rao&lt;br /&gt;
# [[CRV2_AuthorizationWeaknesses|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====Checking authz upon every request====&lt;br /&gt;
#Author - Abbas Naderi, Joan Renchie&lt;br /&gt;
# [[CRV2_CheckAuthzEachRequest|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====Reducing the attack surface====&lt;br /&gt;
#Author Chris Berberich&lt;br /&gt;
# Previous version to be updated: [[https://www.owasp.org/index.php/Codereview-Authorization]]&lt;br /&gt;
# [[CRV2_ReducingAttSurf|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====Reviewing code for Session handling====&lt;br /&gt;
#Author - Palak Gohil, Abbas Naderi&lt;br /&gt;
# Previous version to be updated: [[https://www.owasp.org/index.php/Codereview-Session-Management]]&lt;br /&gt;
# [[CRV2_SessionHandling|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====Reviewing client side code====&lt;br /&gt;
#New Section&lt;br /&gt;
# [[CRV2_ClientSideCodeIntro|Put content here]]&lt;br /&gt;
&lt;br /&gt;
=====Javascript=====&lt;br /&gt;
#Author - Abbas Naderi&lt;br /&gt;
# [[CRV2_ClientSideCodeJScript|Put content here]]&lt;br /&gt;
&lt;br /&gt;
=====JSON=====&lt;br /&gt;
#Author - Open&lt;br /&gt;
# [[CRV2_ClientSideCodeJSon|Put content here]]&lt;br /&gt;
&lt;br /&gt;
=====Content Security Policy=====&lt;br /&gt;
#Author - Open&lt;br /&gt;
# [[CRV2_ClientSideCodeContSecPolicy|Put content here]]&lt;br /&gt;
&lt;br /&gt;
=====&amp;quot;Jacking&amp;quot;/Framing=====&lt;br /&gt;
#Author - Abbas Naderi&lt;br /&gt;
# [[CRV2_ClientSideCodeJackingFraming|Put content here]]&lt;br /&gt;
&lt;br /&gt;
=====HTML 5?=====&lt;br /&gt;
#Author - Sebastien Gioria&lt;br /&gt;
# [[CRV2_ClientSideCodeHTML5|Put content here]]&lt;br /&gt;
&lt;br /&gt;
=====Browser Defenses policy=====&lt;br /&gt;
#Author - Open&lt;br /&gt;
# [[CRV2_ClientSideCodeBrowserDefPol|Put content here]]&lt;br /&gt;
&lt;br /&gt;
=====etc...=====&lt;br /&gt;
&lt;br /&gt;
====Review code for input validation====&lt;br /&gt;
#Author - Open&lt;br /&gt;
# [[CRV2_InputValIntro|Put content here]]&lt;br /&gt;
&lt;br /&gt;
=====Regex Gotchas=====&lt;br /&gt;
#Author - Abbas Naderi&lt;br /&gt;
#New Section&lt;br /&gt;
# [[CRV2_InputValRegexGotchas|Put content here]]&lt;br /&gt;
&lt;br /&gt;
=====ESAPI=====&lt;br /&gt;
#Author - Abbas Naderi&lt;br /&gt;
#New Section&lt;br /&gt;
# Internal Link: [[https://www.owasp.org/index.php/Codereview-Input_Validation]]&lt;br /&gt;
# [[CRV2_InputValESAPI|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====Reviewing code for contextual encoding====&lt;br /&gt;
=====HTML Attribute=====&lt;br /&gt;
#Author - Shenai Silva&lt;br /&gt;
# [[CRV2_ContextEncHTMLAttribute|Put content here]]&lt;br /&gt;
&lt;br /&gt;
=====HTML Entity=====&lt;br /&gt;
#Author - Shenai Silva&lt;br /&gt;
# [[CRV2_ContextEncHTMLEntity|Put content here]]&lt;br /&gt;
&lt;br /&gt;
=====Javascript Parameters=====&lt;br /&gt;
#Author - Open&lt;br /&gt;
# [[CRV2_ContextEncJscriptParams|Put content here]]&lt;br /&gt;
&lt;br /&gt;
=====JQuery=====&lt;br /&gt;
#Author - Abbas Naderi&lt;br /&gt;
# [[CRV2_ContextEncJQuery|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====Reviewing file and resource handling code====&lt;br /&gt;
#Author - Open&lt;br /&gt;
# [[CRV2_FileResourceHandling|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====Resource Exhaustion - error handling====&lt;br /&gt;
#Author - Abbas Naderi&lt;br /&gt;
# [[CRV2_ResourceExhaustionErrHandling|Put content here]]&lt;br /&gt;
&lt;br /&gt;
=====native calls=====&lt;br /&gt;
#Author Abbas Naderi&lt;br /&gt;
# [[CRV2_ResourceExhaustionNativeCalls|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====Reviewing Logging code - Detective Security====&lt;br /&gt;
#Author - Palak Gohil&lt;br /&gt;
* Where to Log&lt;br /&gt;
* What to log&lt;br /&gt;
* What not to log&lt;br /&gt;
* How to log&lt;br /&gt;
# Internal link: [[https://www.owasp.org/index.php/Logging_Cheat_Sheet]]&lt;br /&gt;
# [[CRV2_LoggingCode|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====Reviewing Error handling and Error messages====&lt;br /&gt;
#Author - Gary Robinson&lt;br /&gt;
# Previous version to be updated: [[https://www.owasp.org/index.php/Codereview-Error-Handling]]&lt;br /&gt;
# [[CRV2_ErrorHandlingMessages|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====Reviewing Security alerts====&lt;br /&gt;
#Author - Open&lt;br /&gt;
# [[CRV2_SecurityAlerts|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====Review for active defense====&lt;br /&gt;
#Author - Colin Watson&lt;br /&gt;
# [[CRV2_ActiveDefense|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====Reviewing Secure Storage====&lt;br /&gt;
#Author - Azzeddine Ramrami&lt;br /&gt;
# New Section&lt;br /&gt;
# [[CRV2_SecureStorage|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====Hashing &amp;amp; Salting - When, How and Where====&lt;br /&gt;
=====Encrpyption=====&lt;br /&gt;
======.NET======&lt;br /&gt;
#Author Larry Conklin, Joan Renchie&lt;br /&gt;
# Previous version to be updated: [[https://www.owasp.org/index.php/Codereview-Cryptographic_Controls]]&lt;br /&gt;
*''Can we talk about key storage as well i.e. key management for encryption techniques used in the application? - Ashish Rao''&lt;br /&gt;
# [[CRV2_HashingandSaltingdotNet|Put content here]]&lt;br /&gt;
&lt;br /&gt;
=Reviewing by Vulnerability=&lt;br /&gt;
===Review Code for XSS===&lt;br /&gt;
#Author Palak Gohil, Anand Prakash&lt;br /&gt;
# Previous version to be updated: [[https://www.owasp.org/index.php/Reviewing_Code_for_Cross-Site_Scripting]]&lt;br /&gt;
# In reviewing code for XSS - we can give more patterns on &amp;quot;source to sink&amp;quot; patterns for ASP.NET wrf to difference versions and mechanisms to display data in a page - Ashish Rao&lt;br /&gt;
# [[CRV2_RevCodeXSS|Put content here]]&lt;br /&gt;
&lt;br /&gt;
===Persistent - The Anti pattern===&lt;br /&gt;
#Author Abbas Naderi&lt;br /&gt;
# [[CRV2_RevCodePersistentAntiPatternIntro|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====.NET====&lt;br /&gt;
#Author Johanna Curiel, Renchie Joan&lt;br /&gt;
# [[CRV2_RevCodePersistentAntiPatterndotNet|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====.Java====&lt;br /&gt;
#Author Palak Gohil&lt;br /&gt;
# [[CRV2_RevCodePersistentAntiPatternJava|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====PHP====&lt;br /&gt;
#Author Mohammed Damavandi, Abbas Naderi&lt;br /&gt;
# [[CRV2_RevCodePersistentAntiPatternPHP|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====Ruby====&lt;br /&gt;
#Author Chris Berberich&lt;br /&gt;
# [[CRV2_RevCodePersistentAntiPatternRuby|Put content here]]&lt;br /&gt;
&lt;br /&gt;
===Reflected - The Anti pattern===&lt;br /&gt;
# [[CRV2_RevCodeReflectedAntiPatternIntro|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====.NET====&lt;br /&gt;
#Author Johanna Curiel, Renchie Joan&lt;br /&gt;
# [[CRV2_RevCodeReflectedAntiPatterndotNet|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====.Java====&lt;br /&gt;
#Author Palak Gohil&lt;br /&gt;
# [[CRV2_RevCodeReflectedAntiPatternJava|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====PHP====&lt;br /&gt;
#Author Mohammed Damavandi, Abbas Naderi&lt;br /&gt;
# [[CRV2_RevCodeReflectedAntiPatternPHP|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====Ruby====&lt;br /&gt;
# Author - Open&lt;br /&gt;
# [[CRV2_RevCodeReflectedAntiPatternIRuby|Put content here]]&lt;br /&gt;
&lt;br /&gt;
===Stored - The Anti pattern===&lt;br /&gt;
# Author - Open&lt;br /&gt;
# [[CRV2_RevCodeStoredAntiPatternIntro|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====.NET====&lt;br /&gt;
#Author Johanna Curiel, Renchie Joan&lt;br /&gt;
# [[CRV2_RevCodeStoredAntiPatterndotNET|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====.Java====&lt;br /&gt;
#Author Palak Gohil&lt;br /&gt;
# [[CRV2_RevCodeStoredAntiPatternJava|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====PHP====&lt;br /&gt;
#Author Mohammed Damavandi, Abbas Naderi&lt;br /&gt;
# [[CRV2_RevCodeStoredAntiPatternPHP|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====Ruby====&lt;br /&gt;
#Author - Open&lt;br /&gt;
# [[CRV2_RevCodeStoredAntiPatternRuby|Put content here]]&lt;br /&gt;
&lt;br /&gt;
===DOM XSS ===&lt;br /&gt;
#Author Larry Conklin&lt;br /&gt;
# [[CRV2_DOMXSS|Put content here]]&lt;br /&gt;
&lt;br /&gt;
===JQuery mistakes===&lt;br /&gt;
#Author Shenal Silva&lt;br /&gt;
# [[CRV2_JQueryMistakes|Put content here]]&lt;br /&gt;
&lt;br /&gt;
===Reviewing code for SQL Injection===&lt;br /&gt;
#Author Palak Gohil, Renchie Joan&lt;br /&gt;
# Previous version to be updated: [[https://www.owasp.org/index.php/Reviewing_Code_for_SQL_Injection]]&lt;br /&gt;
# [[CRV2_RevCodeSQLInjection|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====PHP====&lt;br /&gt;
#Author - Mennouchi Islam Azeddine&lt;br /&gt;
# [[CRV2_SQLInjPHP|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====Java====&lt;br /&gt;
#Author - Open&lt;br /&gt;
# [[CRV2_SQLInjJava|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====.NET====&lt;br /&gt;
#Author - Mennouchi Islam Azeddine&lt;br /&gt;
# [[CRV2_SQLInjdotNET|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====HQL====&lt;br /&gt;
#Author - Open&lt;br /&gt;
# [[CRV2_SQLInjHQL|Put content here]]&lt;br /&gt;
&lt;br /&gt;
===The Anti pattern===&lt;br /&gt;
====PHP====&lt;br /&gt;
#Author - Mohammad Damavandi, Abbas Naderi&lt;br /&gt;
# [[CRV2_AntiPatternPHP|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====Java====&lt;br /&gt;
#Author - Palak Gohil&lt;br /&gt;
#=&amp;gt; Searching for traditional SQL,JPA,JPSQL,Criteria,...&lt;br /&gt;
# [[CRV2_AntiPatternJava|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====.NET====&lt;br /&gt;
#Author Johanna Curiel, Renchie Joan&lt;br /&gt;
# [[CRV2_AntiPatterndotNet|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====Ruby====&lt;br /&gt;
#Author - Open&lt;br /&gt;
# [[CRV2_AntiPatternRuby|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====Cold Fusion====&lt;br /&gt;
#Author - Open&lt;br /&gt;
# [[CRV2_AntiPatternColdFusion|Put content here]]&lt;br /&gt;
&lt;br /&gt;
===Reviewing code for CSRF Issues===&lt;br /&gt;
#Author Palak Gohil,Anand Prakash, Abbas Naderi&lt;br /&gt;
# Previous version to be updated: [[https://www.owasp.org/index.php/Reviewing_Code_for_Cross-Site_Request_Forgery]]&lt;br /&gt;
# [[CRV2_CSRFIssues|Put content here]]&lt;br /&gt;
&lt;br /&gt;
===Transactional logic / Non idempotent functions / State Changing Functions===&lt;br /&gt;
#Author Abbas Naderi&lt;br /&gt;
# [[CRV2_TransLogic|Put content here]]&lt;br /&gt;
&lt;br /&gt;
===Reviewing code for poor logic /Business logic/Complex authorization===&lt;br /&gt;
#Author - Sam Denard&lt;br /&gt;
# [[CRV2_PoorLogic|Put content here]]&lt;br /&gt;
&lt;br /&gt;
===Reviewing Secure Communications===&lt;br /&gt;
====.NET Config====&lt;br /&gt;
#Author Johanna Curiel, Renchie Joan&lt;br /&gt;
# [[CRV2_SecCommsdotNet|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====Spring Config====&lt;br /&gt;
#Author - Open&lt;br /&gt;
# [[CRV2_SecCommsSpringConfig|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====HTTP Headers====&lt;br /&gt;
#Author Gregory Disney, Abbas Naderi&lt;br /&gt;
# [[CRV2_SecCommsHTTPHdrs|Put content here]]&lt;br /&gt;
&lt;br /&gt;
=====CSP=====&lt;br /&gt;
#Author Gregory Disney&lt;br /&gt;
# [[CRV2_SecCommsHTTPHdrsCSP|Put content here]]&lt;br /&gt;
&lt;br /&gt;
=====HSTS=====&lt;br /&gt;
#Author Abbas Naderi&lt;br /&gt;
# [[CRV2_SecCommsHTTPHSTS|Put content here]]&lt;br /&gt;
&lt;br /&gt;
===Tech-Stack pitfalls===&lt;br /&gt;
#Author Gregory Disney&lt;br /&gt;
# [[CRV2_TechStackPitfalls|Put content here]]&lt;br /&gt;
&lt;br /&gt;
===Framework specific Issues===&lt;br /&gt;
====Spring====&lt;br /&gt;
#Author - Open&lt;br /&gt;
# [[CRV2_FrameworkSpecIssuesSpring|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====Structs====&lt;br /&gt;
#Author - Open&lt;br /&gt;
# [[CRV2_FrameworkSpecIssuesStructs|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====Drupal====&lt;br /&gt;
#Author Gregory Disney&lt;br /&gt;
# [[CRV2_FrameworkSpecIssuesDurpal|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====Ruby on Rails====&lt;br /&gt;
#Author - Open&lt;br /&gt;
# [[CRV2_FrameworkSpecIssuesROR|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====Django====&lt;br /&gt;
#Author Gregory Disney&lt;br /&gt;
# [[CRV2_FrameworkSpecIssuesDjango|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====.NET Security / MVC====&lt;br /&gt;
#Author Johanna Curiel, Renchie Joan&lt;br /&gt;
# [[CRV2_FrameworkSpecIssuesdotNetMVC|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====Security in ASP.NET applications====&lt;br /&gt;
#Author Johanna Curiel, Renchie Joan&lt;br /&gt;
# [[CRV2_FrameworkSpecIssuesASPNet|Put content here]]&lt;br /&gt;
&lt;br /&gt;
=====Strongly Named Assemblies=====&lt;br /&gt;
#Author Johanna Curiel, Renchie Joan&lt;br /&gt;
# [[CRV2_FrameworkSpecIssuesASPNetStrongAssembiles|Put content here]]&lt;br /&gt;
&lt;br /&gt;
======Round Tripping======&lt;br /&gt;
# Author - Open&lt;br /&gt;
# [[CRV2_FrameworkSpecIssuesASPNetRT|Put content here]]&lt;br /&gt;
&lt;br /&gt;
======How to prevent Round tripping======&lt;br /&gt;
# Author - Open&lt;br /&gt;
#Author Johanna Curiel, Renchie Joan&lt;br /&gt;
# [[CRV2_FrameworkSpecIssuesASPNetRTPrevention|Put content here]]&lt;br /&gt;
&lt;br /&gt;
=====Setting the right Configurations=====&lt;br /&gt;
#Author Johanna Curiel, Renchie Joan&lt;br /&gt;
# [[CRV2_FrameworkSpecIssuesASPNetConfigs|Put content here]]&lt;br /&gt;
&lt;br /&gt;
=====Authentication Options=====&lt;br /&gt;
#Author Johanna Curiel, Renchie Joan&lt;br /&gt;
# [[CRV2_FrameworkSpecIssuesASPNetAuth|Put content here]]&lt;br /&gt;
&lt;br /&gt;
=====Code Review for Managed Code - .Net 1.0 and up=====&lt;br /&gt;
#Author Johanna Curiel, Renchie Joan&lt;br /&gt;
# [[CRV2_FrameworkSpecIssuesASPNetManagedCode|Put content here]]&lt;br /&gt;
&lt;br /&gt;
=====Using OWASP Top 10 as your guideline=====&lt;br /&gt;
#Author Johanna Curiel, Renchie Joan&lt;br /&gt;
# [[CRV2_FrameworkSpecIssuesASPTop10|Put content here]]&lt;br /&gt;
&lt;br /&gt;
=====Code review for Unsafe Code (C#)=====&lt;br /&gt;
#Author Johanna Curiel, Renchie Joan&lt;br /&gt;
# [[CRV2_FrameworkSpecIssuesASPNetUnsafeCode|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====PHP Specific Issues====&lt;br /&gt;
#Author Mohammad Damavandi, Abbas Naderi&lt;br /&gt;
# [[CRV2_FrameworkSpecIssuesPHP|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====Classic ASP====&lt;br /&gt;
#Author Johanna Curiel&lt;br /&gt;
# [[CRV2_FrameworkSpecIssuesASPClassic|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====C#====&lt;br /&gt;
#Author Johanna Curiel, Renchie Joan&lt;br /&gt;
# [[CRV2_FrameworkSpecIssuesCsharp|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====C/C++====&lt;br /&gt;
#Author Gary Robinson&lt;br /&gt;
# [[CRV2_FrameworkSpecIssuesCplusplus|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====Objective C====&lt;br /&gt;
#Author Open&lt;br /&gt;
# [[CRV2_FrameworkSpecIssuesObectiveC|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====Java====&lt;br /&gt;
#Author Palak Gohil&lt;br /&gt;
# [[CRV2_FrameworkSpecIssuesJava|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====Android====&lt;br /&gt;
#Author Open&lt;br /&gt;
# [[CRV2_FrameworkSpecIssuesAndroid|Put content here]]&lt;br /&gt;
&lt;br /&gt;
====Coldfusion====&lt;br /&gt;
#Author Open&lt;br /&gt;
# [[CRV2_FrameworkSpecIssuesColdfusion|Put content here]]&lt;br /&gt;
&lt;br /&gt;
=Security code review for Agile development=&lt;br /&gt;
#Author Open&lt;br /&gt;
# [[CRV2_CodeReviewAgile|Put content here]]&lt;br /&gt;
&lt;br /&gt;
=Willing to review drafts=&lt;br /&gt;
#Terry Nerpester&lt;br /&gt;
#Larry Conklin&lt;br /&gt;
#Gary Robinson&lt;br /&gt;
#Simon Whittaker&lt;/div&gt;</summary>
		<author><name>Simon Whittaker</name></author>	</entry>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=Top_10_2013-A4-Insecure_Direct_Object_References&amp;diff=150743</id>
		<title>Top 10 2013-A4-Insecure Direct Object References</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=Top_10_2013-A4-Insecure_Direct_Object_References&amp;diff=150743"/>
				<updated>2013-04-30T13:20:19Z</updated>
		
		<summary type="html">&lt;p&gt;Simon Whittaker: fixed formatting of notmyacct&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Top_10_2013:TopTemplate&lt;br /&gt;
    |usenext=2013NextLink&lt;br /&gt;
    |next={{Top_10_2010:ByTheNumbers&lt;br /&gt;
              |5&lt;br /&gt;
              |year=2013}}&lt;br /&gt;
    |useprev=2013PrevLink&lt;br /&gt;
    |prev={{Top_10_2010:ByTheNumbers&lt;br /&gt;
              |3&lt;br /&gt;
              |year=2013}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Top_10_2010:SummaryTableHeaderBeginTemplate|year=2013}}&lt;br /&gt;
{{Top_10_2010:SummaryTableValue-1-Template|Exploitability|EASY|year=2013}}&lt;br /&gt;
{{Top_10_2010:SummaryTableValue-2-Template|Prevalence|COMMON|year=2013}}&lt;br /&gt;
{{Top_10_2010:SummaryTableValue-1-Template|Detectability|EASY|year=2013}}&lt;br /&gt;
{{Top_10_2010:SummaryTableValue-2-Template|Impact|MODERATE|year=2013}}&lt;br /&gt;
{{Top_10_2010:SummaryTableHeaderEndTemplate|year=2013}}&lt;br /&gt;
     &amp;lt;td {{Template:Top 10 2010:SummaryTableRowStyleTemplate}}&amp;gt;Consider the types of users of your system. Do any users have only partial access to certain types of system data?&lt;br /&gt;
.&amp;lt;/td&amp;gt;&lt;br /&gt;
     &amp;lt;td {{Template:Top 10 2010:SummaryTableRowStyleTemplate}}&amp;gt;Attacker, who is an authorized system user, simply changes a parameter value that directly refers to a system object to another object the user isn’t authorized for. Is access granted?&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
     &amp;lt;td colspan=2  {{Template:Top 10 2010:SummaryTableRowStyleTemplate}}&amp;gt;Applications frequently use the actual name or key of an object when generating web pages. Applications don’t always verify the user is authorized for the target object. This results in an insecure direct object reference flaw. Testers can easily manipulate parameter values to detect such flaws and code analysis quickly shows whether authorization is properly verified.&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
     &amp;lt;td {{Template:Top 10 2010:SummaryTableRowStyleTemplate}}&amp;gt;Such flaws can compromise all the data that can be referenced by the parameter. Unless the name space is sparse, it’s easy for an attacker to access all available data of that type.&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
     &amp;lt;td {{Template:Top 10 2010:SummaryTableRowStyleTemplate}}&amp;gt;Consider the business value of the exposed data.&lt;br /&gt;
&lt;br /&gt;
Also consider the business impact of public exposure of the vulnerability.&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
{{Top_10_2010:SummaryTableEndTemplate}}&lt;br /&gt;
&lt;br /&gt;
{{Top_10:SubsectionTableBeginTemplate|type=main}} {{Top_10_2010:SubsectionAdvancedTemplate|type={{Top_10_2010:StyleTemplate}}|subsection=vulnerableTo|position=firstLeft|risk=4|year=2013}}&lt;br /&gt;
The best way to find out if an application is vulnerable to insecure direct object references is to verify that all object references have appropriate defenses. To achieve this, consider:&lt;br /&gt;
# For direct references to restricted resources, the application needs to verify the user is authorized to access the exact resource they have requested.&lt;br /&gt;
# If the reference is an indirect reference, the mapping to the direct reference must be limited to values authorized for the current user.&lt;br /&gt;
&lt;br /&gt;
Code review of the application can quickly verify whether either approach is implemented safely. Testing is also effective for identifying direct object references and whether they are safe. Automated tools typically do not look for such flaws because they cannot recognize what requires protection or what is safe or unsafe.&lt;br /&gt;
{{Top_10_2010:SubsectionAdvancedTemplate|type={{Top_10_2010:StyleTemplate}}|subsection=howPrevent|position=right|risk=4|year=2013}}&lt;br /&gt;
Preventing insecure direct object references requires selecting an approach for protecting each user accessible object (e.g., object number, filename):&lt;br /&gt;
&lt;br /&gt;
# Use per user or session indirect object references. This prevents attackers from directly targeting unauthorized resources. For example, instead of using the resource’s database key, a drop down list of six resources authorized for the current user could use the numbers 1 to 6 to indicate which value the user selected. The application has to map the per-user indirect reference back to the actual database key on the server. OWASP’s [https://www.owasp.org/index.php/ESAPI  ESAPI] includes both sequential and random access reference maps that developers can use to eliminate direct object references. &lt;br /&gt;
# Check access. Each use of a direct object reference from an untrusted source must include an access control check to ensure the user is authorized for the requested object.&lt;br /&gt;
{{Top_10_2010:SubsectionAdvancedTemplate|type={{Top_10_2010:StyleTemplate}}|subsection=example|position=left|risk=4|year=2013}}&lt;br /&gt;
The application uses unverified data in a SQL call that is accessing account information:&lt;br /&gt;
{{Top_10_2010:ExampleBeginTemplate}}&amp;lt;nowiki&amp;gt;&lt;br /&gt;
String query = &amp;quot;SELECT * FROM accts WHERE account = ?&amp;quot;;&lt;br /&gt;
PreparedStatement pstmt = connection.prepareStatement(query , … );&lt;br /&gt;
&lt;br /&gt;
{{red|pstmt.setString( 1, request.getParameter(&amp;quot;acct&amp;quot;));}}&lt;br /&gt;
&lt;br /&gt;
ResultSet results = pstmt.executeQuery( );&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;{{Top_10_2010:ExampleEndTemplate}}&lt;br /&gt;
&lt;br /&gt;
The attacker simply modifies the ‘acct’ parameter in their browser to send whatever account number they want. If not verified, the attacker can access any user’s account, instead of only the intended customer’s account.&lt;br /&gt;
{{Top_10_2010:ExampleBeginTemplate}}&lt;br /&gt;
&amp;lt;nowiki&amp;gt;http://example.com/app/accountInfo?acct=&amp;lt;/nowiki&amp;gt;&amp;lt;span style=&amp;quot;color:red;&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;notmyacct&amp;lt;/nowiki&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
{{Top_10_2010:ExampleEndTemplate}}&lt;br /&gt;
{{Top_10_2010:SubsectionAdvancedTemplate|type={{Top_10_2010:StyleTemplate}}|subsection=references|position=right|risk=4|year=2013}}&lt;br /&gt;
{{Top_10_2010:SubSubsectionOWASPReferencesTemplate}}&lt;br /&gt;
* [https://www.owasp.org/index.php/Top_10_2007-Insecure_Direct_Object_Reference  OWASP Top 10-2007 on Insecure Dir Object References]&lt;br /&gt;
* [http://owasp-esapi-java.googlecode.com/svn/trunk_doc/latest/org/owasp/esapi/AccessReferenceMap.html  ESAPI Access Reference Map ]API&lt;br /&gt;
* [http://owasp-esapi-java.googlecode.com/svn/trunk_doc/latest/org/owasp/esapi/AccessController.html  ESAPI Access Control API] (See isAuthorizedForData(), isAuthorizedForFile(), isAuthorizedForFunction() )&lt;br /&gt;
&lt;br /&gt;
For additional access control requirements, see the [https://www.owasp.org/index.php/ASVS  ASVS requirements area for Access Control (V4)].&lt;br /&gt;
&lt;br /&gt;
{{Top_10_2010:SubSubsectionExternalReferencesTemplate}}&lt;br /&gt;
* [http://cwe.mitre.org/data/definitions/639.html  CWE Entry 639 on Insecure Direct Object References]&lt;br /&gt;
* [http://cwe.mitre.org/data/definitions/22.html  CWE Entry 22 on Path Traversal] (which is an example of a Direct Object Reference attack)&lt;br /&gt;
&lt;br /&gt;
{{Top_10_2013:BottomAdvancedTemplate&lt;br /&gt;
    |type={{Top_10_2010:StyleTemplate}}&lt;br /&gt;
    |usenext=2013NextLink&lt;br /&gt;
    |next={{Top_10_2010:ByTheNumbers&lt;br /&gt;
              |5&lt;br /&gt;
              |year=2013}}&lt;br /&gt;
    |useprev=2013PrevLink&lt;br /&gt;
    |prev={{Top_10_2010:ByTheNumbers&lt;br /&gt;
              |3&lt;br /&gt;
              |year=2013}}}}&lt;br /&gt;
&lt;br /&gt;
[[Category:OWASP Top Ten Project]]&lt;/div&gt;</summary>
		<author><name>Simon Whittaker</name></author>	</entry>

	</feed>