Guide Table of Contents

OWASP 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 INTERFACES	#
 * 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	##