Guide Table of Contents


 * 1) Frontispiece
 * 2) Dedication
 * 3) Copyright and license
 * 4) Editors
 * 5) Authors and Reviewers
 * 6) Revision History
 * 7) About The Open Web Application Security Project
 * 8) Structure and Licensing
 * 9) Participation and Membership
 * 10) Projects
 * 11) Introduction
 * 12) Developing Secure Applications
 * 13) Improvements in this edition
 * 14) How to use this Guide
 * 15) Updates and errata
 * 16) With thanks
 * 17) What are web applications?
 * 18) Technologies
 * 19) First generation – CGI
 * 20) Filters
 * 21) Scripting
 * 22) Web application frameworks – J
 * 23) Small to medium scale applications
 * 24) Large scale applications
 * 25) View
 * 26) Controller
 * 27) Model
 * 28) Conclusion
 * 29) Policy Frameworks
 * 30) Organizational commitment to security
 * 31) OWASP’s Place at the Framework table
 * 32) Development Methodology
 * 33) Coding Standards
 * 34) Source Code Control
 * 35) Summary
 * 36) Secure Coding Principles
 * 37) Asset Classification
 * 38) About attackers
 * 39) Core pillars of information security
 * 40) Security Architecture
 * 41) Security Principles
 * 42) Threat Risk Modeling
 * 43) Threat Risk Modeling
 * 44) Performing threat risk modeling using the Microsoft Threat Modeling Process
 * 45) Alternative Threat Modeling Systems
 * 46) Trike
 * 47) AS/NZS
 * 48) CVSS
 * 49) OCTAVE
 * 50) Conclusion
 * 51) Further Reading
 * 52) Handling E-Commerce Payments
 * 53) Objectives
 * 54) Compliance and Laws
 * 55) PCI Compliance
 * 56) Handling Credit Cards
 * 57) Further Reading
 * 58) Phishing
 * 59) What is phishing?
 * 60) User Education
 * 61) Make it easy for your users to report scams
 * 62) Communicating with customers via e-mail
 * 63) Never ask your customers for their secrets
 * 64) Fix all your XSS issues
 * 65) Do not use pop-ups
 * 66) Don’t be framed
 * 67) Move your application one link away from your front page
 * 68) Enforce local referrers for images and other resources
 * 69) Keep the address bar, use SSL, do not use IP addresses
 * 70) Don’t be the source of identity theft
 * 71) Implement safe-guards within your application
 * 72) Monitor unusual account activity
 * 73) Get the phishing target servers offline pronto
 * 74) Take control of the fraudulent domain name
 * 75) Work with law enforcement
 * 76) When an attack happens
 * 77) Further Reading
 * 78) Web Services
 * 79) Securing Web Services
 * 80) Communication security
 * 81) Passing credentials
 * 82) Ensuring message freshness
 * 83) Protecting message integrity
 * 84) Protecting message confidentiality
 * 85) Access control
 * 86) Audit
 * 87) Web Services Security Hierarchy
 * 88) SOAP
 * 89) WS-Security Standard
 * 90) WS-Security Building Blocks
 * 91) Communication Protection Mechanisms
 * 92) Access Control Mechanisms
 * 93) Forming Web Service Chains
 * 94) Available Implementations
 * 95) Problems
 * 96) Further Reading
 * 97) Ajax and Other "Rich" Interface Technologies
 * 98) Objective
 * 99) Platforms Affected
 * 100) Architecture
 * 101) Access control: Authentication and Authorization
 * 102) Silent transactional authorization
 * 103) Untrusted or absent session data
 * 104) State management
 * 105) Tamper resistance
 * 106) Privacy
 * 107) Proxy Façade
 * 108) SOAP Injection Attacks
 * 109) XMLRPC Injection Attacks
 * 110) DOM Injection Attacks
 * 111) XML Injection Attacks
 * 112) JSON (Javascript Object Notation) Injection Attacks
 * 113) Encoding safety
 * 114) Auditing
 * 115) Error Handling
 * 116) Accessibility
 * 117) Further Reading
 * 118) Authentication
 * 119) Objective
 * 120) Environments Affected
 * 121) Relevant COBIT Topics
 * 122) Best Practices
 * 123) Common web authentication techniques
 * 124) Strong Authentication
 * 125) Federated Authentication
 * 126) Client side authentication controls
 * 127) Positive Authentication
 * 128) Multiple Key Lookups
 * 129) Referer Checks
 * 130) Browser remembers passwords
 * 131) Default accounts
 * 132) Choice of usernames
 * 133) Change passwords
 * 134) Short passwords
 * 135) Weak password controls
 * 136) Reversible password encryption
 * 137) Automated password resets
 * 138) Brute Force
 * 139) Remember Me
 * 140) Idle Timeouts
 * 141) Logout
 * 142) Account Expiry
 * 143) Self registration
 * 144) CAPTCHA
 * 145) Further Reading
 * 146) Authentication
 * 147) Authorization
 * 148) Objectives
 * 149) Environments Affected
 * 150) Relevant COBIT Topics
 * 151) Best Practices
 * 152) Best Practices in Action
 * 153) Principle of least privilege
 * 154) Centralized authorization routines
 * 155) Authorization matrix
 * 156) Controlling access to protected resources
 * 157) Protecting access to static resources
 * 158) Reauthorization for high value activities or after idle out
 * 159) Time based authorization
 * 160) Be cautious of custom authorization controls
 * 161) Never implement client-side authorization tokens
 * 162) Further Reading
 * 163) Session Management
 * 164) Objective
 * 165) Environments Affected
 * 166) Relevant COBIT Topics
 * 167) Description
 * 168) Best practices
 * 169) Exposed Session Variables
 * 170) Page and Form Tokens
 * 171) Weak Session Cryptographic Algorithms
 * 172) Session Token Entropy
 * 173) Session Time-out
 * 174) Regeneration of Session Tokens
 * 175) Session Forging/Brute-Forcing Detection and/or Lockout
 * 176) Session Token Capture and Session Hijacking
 * 177) Session Tokens on Logout
 * 178) Session Validation Attacks
 * 179) PHP
 * 180) Sessions
 * 181) Further Reading
 * 182) Session Management
 * 183) Data Validation
 * 184) Objective
 * 185) Platforms Affected
 * 186) Relevant COBIT Topics
 * 187) Description
 * 188) Definitions
 * 189) Where to include integrity checks
 * 190) Where to include validation
 * 191) Where to include business rule validation
 * 192) Data Validation Strategies
 * 193) Prevent parameter tampering
 * 194) Hidden fields
 * 195) ASP.NET Viewstate
 * 196) URL encoding
 * 197) HTML encoding
 * 198) Encoded strings
 * 199) Data Validation and Interpreter Injection
 * 200) Delimiter and special characters
 * 201) Further Reading
 * 202) Interpreter Injection
 * 203) Objective
 * 204) Platforms Affected
 * 205) Relevant COBIT Topics
 * 206) User Agent Injection
 * 207) HTTP Response Splitting
 * 208) SQL Injection
 * 209) ORM Injection
 * 210) LDAP Injection
 * 211) XML Injection
 * 212) Code Injection
 * 213) Further Reading
 * 214) SQL-injection
 * 215) Code Injection
 * 216) Command injection
 * 217) Canoncalization, locale and Unicode
 * 218) Objective
 * 219) Platforms Affected
 * 220) Relevant COBIT Topics
 * 221) Description
 * 222) Unicode
 * 223) http://www.ietf.org/rfc/rfc##
 * 224) Input Formats
 * 225) Locale assertion
 * 226) Double (or n-) encoding
 * 227) 	HTTP Request Smuggling
 * 228) 	Further Reading
 * 229) Error Handling, Auditing and Logging
 * 230) Objective
 * 231) Environments Affected
 * 232) Relevant COBIT Topics
 * 233) Description
 * 234) Best practices
 * 235) Error Handling
 * 236) Detailed error messages
 * 237) Logging
 * 238) Noise
 * 239) Cover Tracks
 * 240) False Alarms
 * 241) Destruction
 * 242) Audit Trails
 * 243) Further Reading
 * 244) Error Handling and Logging
 * 245) File System
 * 246) Objective
 * 247) Environments Affected
 * 248) Relevant COBIT Topics
 * 249) Description
 * 250) Best Practices
 * 251) Defacement
 * 252) Path traversal
 * 253) Insecure permissions
 * 254) Insecure Indexing
 * 255) Unmapped files
 * 256) Temporary files
 * 257) PHP
 * 258) Includes and Remote files
 * 259) File upload
 * 260) Old, unreferenced files
 * 261) Second Order Injection
 * 262) Further Reading
 * 263) File System
 * 264) Distributed Computing
 * 265) Objective
 * 266) Environments Affected
 * 267) Relevant COBIT Topics
 * 268) Best Practices
 * 269) Race conditions
 * 270) Distributed synchronization
 * 271) Further Reading
 * 272) Buffer Overflows
 * 273) Objective
 * 274) Platforms Affected
 * 275) Relevant COBIT Topics
 * 276) Description
 * 277) General Prevention Techniques
 * 278) Stack Overflow
 * 279) Heap Overflow
 * 280) Format String
 * 281) Unicode Overflow
 * 282) Integer Overflow
 * 283) Further reading
 * 284) Administrative Interface
 * 285) Objective
 * 286) Environments Affected
 * 287) Relevant COBIT Topics
 * 288) Best practices
 * 289) Administrators are not users
 * 290) Authentication for high value systems
 * 291) Further Reading
 * 292) Cryptography
 * 293) Objective
 * 294) Platforms Affected
 * 295) Relevant COBIT Topics
 * 296) Description
 * 297) Cryptographic Functions
 * 298) Cryptographic Algorithms
 * 299) Algorithm Selection
 * 300) Key Storage
 * 301) Insecure transmission of secrets
 * 302) Reversible Authentication Tokens
 * 303) Safe UUID generation
 * 304) Summary
 * 305) Further Reading
 * 306) Cryptography
 * 307) Configuration
 * 308) Objective
 * 309) Platforms Affected
 * 310) Relevant COBIT Topics
 * 311) Best Practices
 * 312) Default passwords
 * 313) Secure connection strings
 * 314) Secure network transmission
 * 315) Encrypted data
 * 316) PHP Configuration
 * 317) Global variables
 * 318) register_globals
 * 319) Database security
 * 320) Further Reading
 * 321) ColdFusion Components (CFCs)
 * 322) Configuration
 * 323) Software Quality Assurance
 * 324) Objective
 * 325) Platforms Affected
 * 326) Best practices
 * 327) Process
 * 328) Metrics
 * 329) Testing Activities
 * 330) Deployment
 * 331) Objective
 * 332) Platforms Affected
 * 333) Best Practices
 * 334) Release Management
 * 335) Secure delivery of code
 * 336) Code signing
 * 337) Permissions are set to least privilege
 * 338) Automated packaging
 * 339) Automated deployment
 * 340) Automated removal
 * 341) No backup or old files
 * 342) Unnecessary features are off by default
 * 343) Setup log files are clean
 * 344) No default accounts
 * 345) Easter eggs
 * 346) Malicious software
 * 347) Further Reading
 * 348) Maintenance
 * 349) Objective
 * 350) Platforms Affected
 * 351) Relevant COBIT Topics
 * 352) Best Practices
 * 353) Security Incident Response
 * 354) Fix Security Issues Correctly
 * 355) Update Notifications
 * 356) Regularly check permissions
 * 357) Further Reading
 * 358) Maintenance
 * 359) GNU Free Documentation License
 * 360) PREAMBLE
 * 361) APPLICABILITY AND DEFINITIONS
 * 362) VERBATIM COPYING
 * 363) COPYING IN QUANTITY
 * 364) MODIFICATIONS
 * 365) COMBINING DOCUMENTS
 * 366) COLLECTIONS OF DOCUMENTS
 * 367) AGGREGATION WITH INDEPENDENT WORKS
 * 368) TRANSLATION
 * 369) TERMINATION
 * 370) FUTURE REVISIONS OF THIS LICENSE