This site is the archived OWASP Foundation Wiki and is no longer accepting Account Requests.
To view the new OWASP Foundation website, please visit https://owasp.org
Difference between revisions of "Guide Table of Contents"
From OWASP
Weilin Zhong (talk | contribs) |
Weilin Zhong (talk | contribs) |
||
| Line 1: | Line 1: | ||
| − | |||
# Frontispiece | # Frontispiece | ||
## Dedication | ## Dedication | ||
| Line 6: | Line 5: | ||
## Authors and Reviewers | ## Authors and Reviewers | ||
## Revision History | ## Revision History | ||
| − | #ABOUT THE OPEN WEB APPLICATION SECURITY PROJECT | + | #ABOUT THE OPEN WEB APPLICATION SECURITY PROJECT |
| − | ##Structure and Licensing | + | ##Structure and Licensing |
| − | ##Participation and Membership | + | ##Participation and Membership |
| − | ##Projects | + | ##Projects |
| − | #INTRODUCTION | + | #INTRODUCTION |
| − | ##Developing Secure Applications | + | ##Developing Secure Applications |
| − | ##Improvements in this edition | + | ##Improvements in this edition |
| − | ##How to use this Guide | + | ##How to use this Guide |
| − | ##Updates and errata | + | ##Updates and errata |
| − | ##With thanks | + | ##With thanks |
| − | #WHAT ARE WEB APPLICATIONS? | + | #WHAT ARE WEB APPLICATIONS? |
| − | ##Technologies | + | ##Technologies |
| − | ##First generation – CGI | + | ##First generation – CGI |
| − | ##Filters | + | ##Filters |
| − | ##Scripting | + | ##Scripting |
| − | ##Web application frameworks – J | + | ##Web application frameworks – J |
| − | ##Small to medium scale applications | + | ##Small to medium scale applications |
| − | ##Large scale applications | + | ##Large scale applications |
| − | ##View | + | ##View |
| − | ##Controller | + | ##Controller |
| − | ##Model | + | ##Model |
| − | ##Conclusion | + | ##Conclusion |
| − | #POLICY FRAMEWORKS | + | #POLICY FRAMEWORKS |
| − | ##Organizational commitment to security | + | ##Organizational commitment to security |
| − | ##OWASP’s Place at the Framework table | + | ##OWASP’s Place at the Framework table |
| − | ##Development Methodology | + | ##Development Methodology |
| − | ##Coding Standards | + | ##Coding Standards |
| − | ##Source Code Control | + | ##Source Code Control |
| − | ##Summary | + | ##Summary |
| − | #SECURE CODING PRINCIPLES | + | #SECURE CODING PRINCIPLES |
| − | ##Asset Classification | + | ##Asset Classification |
| − | ##About attackers | + | ##About attackers |
| − | ##Core pillars of information security | + | ##Core pillars of information security |
| − | ##Security Architecture | + | ##Security Architecture |
| − | ##Security Principles | + | ##Security Principles |
| − | #THREAT RISK MODELING | + | #THREAT RISK MODELING |
| − | ##Threat Risk Modeling | + | ##Threat Risk Modeling |
| − | ##Performing threat risk modeling using the Microsoft Threat Modeling Process | + | ##Performing threat risk modeling using the Microsoft Threat Modeling Process |
| − | ##Alternative Threat Modeling Systems | + | ##Alternative Threat Modeling Systems |
| − | ##Trike | + | ##Trike |
| − | ##AS/NZS ## | + | ##AS/NZS |
| − | + | ##CVSS | |
| − | ##OCTAVE | + | ##OCTAVE |
| − | ##Conclusion | + | ##Conclusion |
| − | ##Further Reading | + | ##Further Reading |
| − | #HANDLING E-COMMERCE PAYMENTS | + | #HANDLING E-COMMERCE PAYMENTS |
| − | ##Objectives | + | ##Objectives |
| − | ##Compliance and Laws | + | ##Compliance and Laws |
| − | ##PCI Compliance | + | ##PCI Compliance |
| − | ##Handling Credit Cards | + | ##Handling Credit Cards |
| − | ##Further Reading | + | ##Further Reading |
| − | #PHISHING | + | #PHISHING |
| − | ##What is phishing? | + | ##What is phishing? |
| − | ##User Education | + | ##User Education |
| − | ##Make it easy for your users to report scams | + | ##Make it easy for your users to report scams |
| − | ##Communicating with customers via e-mail | + | ##Communicating with customers via e-mail |
| − | ##Never ask your customers for their secrets | + | ##Never ask your customers for their secrets |
| − | ##Fix all your XSS issues | + | ##Fix all your XSS issues |
| − | ##Do not use pop-ups | + | ##Do not use pop-ups |
| − | ##Don’t be framed | + | ##Don’t be framed |
| − | ##Move your application one link away from your front page | + | ##Move your application one link away from your front page |
| − | ##Enforce local referrers for images and other resources | + | ##Enforce local referrers for images and other resources |
| − | ##Keep the address bar, use SSL, do not use IP addresses | + | ##Keep the address bar, use SSL, do not use IP addresses |
| − | ##Don’t be the source of identity theft | + | ##Don’t be the source of identity theft |
| − | ##Implement safe-guards within your application | + | ##Implement safe-guards within your application |
| − | ##Monitor unusual account activity | + | ##Monitor unusual account activity |
| − | ##Get the phishing target servers offline pronto | + | ##Get the phishing target servers offline pronto |
| − | ##Take control of the fraudulent domain name | + | ##Take control of the fraudulent domain name |
| − | ##Work with law enforcement | + | ##Work with law enforcement |
| − | ##When an attack happens | + | ##When an attack happens |
| − | ##Further Reading | + | ##Further Reading |
| − | #WEB SERVICES | + | #WEB SERVICES |
| − | ##Securing Web Services | + | ##Securing Web Services |
| − | ##Communication security | + | ##Communication security |
| − | ##Passing credentials | + | ##Passing credentials |
| − | ##Ensuring message freshness | + | ##Ensuring message freshness |
| − | ##Protecting message integrity | + | ##Protecting message integrity |
| − | ##Protecting message confidentiality | + | ##Protecting message confidentiality |
| − | ##Access control | + | ##Access control |
| − | ##Audit | + | ##Audit |
| − | ##Web Services Security Hierarchy | + | ##Web Services Security Hierarchy |
| − | ##SOAP | + | ##SOAP |
| − | ##WS-Security Standard | + | ##WS-Security Standard |
| − | ##WS-Security Building Blocks | + | ##WS-Security Building Blocks |
| − | ##Communication Protection Mechanisms | + | ##Communication Protection Mechanisms |
| − | ##Access Control Mechanisms | + | ##Access Control Mechanisms |
| − | ##Forming Web Service Chains | + | ##Forming Web Service Chains |
| − | ##Available Implementations | + | ##Available Implementations |
| − | ##Problems | + | ##Problems |
| − | ##Further Reading | + | ##Further Reading |
| − | #AJAX AND OTHER “RICH” INTERFACE TECHNOLOGIES | + | #AJAX AND OTHER “RICH” INTERFACE TECHNOLOGIES |
| − | ##Objective | + | ##Objective |
| − | ##Platforms Affected | + | ##Platforms Affected |
| − | ##Architecture | + | ##Architecture |
| − | ##Access control: Authentication and Authorization | + | ##Access control: Authentication and Authorization |
| − | ##Silent transactional authorization | + | ##Silent transactional authorization |
| − | ##Untrusted or absent session data | + | ##Untrusted or absent session data |
| − | ##State management | + | ##State management |
| − | ##Tamper resistance | + | ##Tamper resistance |
| − | ##Privacy | + | ##Privacy |
| − | ##Proxy Façade | + | ##Proxy Façade |
| − | ##SOAP Injection Attacks | + | ##SOAP Injection Attacks |
| − | ##XMLRPC Injection Attacks | + | ##XMLRPC Injection Attacks |
| − | ##DOM Injection Attacks | + | ##DOM Injection Attacks |
| − | ##XML Injection Attacks | + | ##XML Injection Attacks |
| − | ##JSON (Javascript Object Notation) Injection Attacks | + | ##JSON (Javascript Object Notation) Injection Attacks |
| − | ##Encoding safety | + | ##Encoding safety |
| − | ##Auditing | + | ##Auditing |
| − | ##Error Handling | + | ##Error Handling |
| − | ##Accessibility | + | ##Accessibility |
| − | ##Further Reading | + | ##Further Reading |
| − | #AUTHENTICATION | + | #AUTHENTICATION |
| − | ##Objective | + | ##Objective |
| − | ##Environments Affected | + | ##Environments Affected |
| − | ##Relevant COBIT Topics | + | ##Relevant COBIT Topics |
| − | ##Best Practices | + | ##Best Practices |
| − | ##Common web authentication techniques | + | ##Common web authentication techniques |
| − | ##Strong Authentication | + | ##Strong Authentication |
| − | ##Federated Authentication | + | ##Federated Authentication |
| − | ##Client side authentication controls | + | ##Client side authentication controls |
| − | ##Positive Authentication | + | ##Positive Authentication |
| − | ##Multiple Key Lookups | + | ##Multiple Key Lookups |
| − | ##Referer Checks | + | ##Referer Checks |
| − | ##Browser remembers passwords | + | ##Browser remembers passwords |
| − | ##Default accounts | + | ##Default accounts |
| − | ##Choice of usernames | + | ##Choice of usernames |
| − | ##Change passwords | + | ##Change passwords |
| − | ##Short passwords | + | ##Short passwords |
| − | ##Weak password controls | + | ##Weak password controls |
| − | ##Reversible password encryption | + | ##Reversible password encryption |
| − | ##Automated password resets | + | ##Automated password resets |
| − | ##Brute Force | + | ##Brute Force |
| − | ##Remember Me | + | ##Remember Me |
| − | ##Idle Timeouts | + | ##Idle Timeouts |
| − | ##Logout | + | ##Logout |
| − | ##Account Expiry | + | ##Account Expiry |
| − | ##Self registration | + | ##Self registration |
| − | ##CAPTCHA | + | ##CAPTCHA |
| − | ##Further Reading | + | ##Further Reading |
| − | ##Authentication | + | ##Authentication |
| − | #AUTHORIZATION | + | #AUTHORIZATION |
| − | ##Objectives | + | ##Objectives |
| − | ##Environments Affected | + | ##Environments Affected |
| − | ##Relevant COBIT Topics | + | ##Relevant COBIT Topics |
| − | ##Best Practices | + | ##Best Practices |
| − | ##Best Practices in Action | + | ##Best Practices in Action |
| − | ##Principle of least privilege | + | ##Principle of least privilege |
| − | ##Centralized authorization routines | + | ##Centralized authorization routines |
| − | ##Authorization matrix | + | ##Authorization matrix |
| − | ##Controlling access to protected resources | + | ##Controlling access to protected resources |
| − | ##Protecting access to static resources | + | ##Protecting access to static resources |
| − | ##Reauthorization for high value activities or after idle out | + | ##Reauthorization for high value activities or after idle out |
| − | ##Time based authorization | + | ##Time based authorization |
| − | ##Be cautious of custom authorization controls | + | ##Be cautious of custom authorization controls |
| − | ##Never implement client-side authorization tokens | + | ##Never implement client-side authorization tokens |
| − | ##Further Reading | + | ##Further Reading |
| − | #SESSION MANAGEMENT | + | #SESSION MANAGEMENT |
| − | ##Objective | + | ##Objective |
| − | ##Environments Affected | + | ##Environments Affected |
| − | ##Relevant COBIT Topics | + | ##Relevant COBIT Topics |
| − | ##Description | + | ##Description |
| − | ##Best practices | + | ##Best practices |
| − | ##Exposed Session Variables | + | ##Exposed Session Variables |
| − | ##Page and Form Tokens | + | ##Page and Form Tokens |
| − | ##Weak Session Cryptographic Algorithms | + | ##Weak Session Cryptographic Algorithms |
| − | ##Session Token Entropy | + | ##Session Token Entropy |
| − | ##Session Time-out | + | ##Session Time-out |
| − | ##Regeneration of Session Tokens | + | ##Regeneration of Session Tokens |
| − | ##Session Forging/Brute-Forcing Detection and/or Lockout | + | ##Session Forging/Brute-Forcing Detection and/or Lockout |
| − | ##Session Token Capture and Session Hijacking | + | ##Session Token Capture and Session Hijacking |
| − | ##Session Tokens on Logout | + | ##Session Tokens on Logout |
| − | ##Session Validation Attacks | + | ##Session Validation Attacks |
| − | ##PHP | + | ##PHP |
| − | ##Sessions | + | ##Sessions |
| − | ##Further Reading | + | ##Further Reading |
| − | ##Session Management | + | ##Session Management |
| − | #DATA VALIDATION | + | #DATA VALIDATION |
| − | ##Objective | + | ##Objective |
| − | ##Platforms Affected | + | ##Platforms Affected |
| − | ##Relevant COBIT Topics | + | ##Relevant COBIT Topics |
| − | ##Description | + | ##Description |
| − | ##Definitions | + | ##Definitions |
| − | ##Where to include integrity checks | + | ##Where to include integrity checks |
| − | ##Where to include validation | + | ##Where to include validation |
| − | ##Where to include business rule validation | + | ##Where to include business rule validation |
| − | ##Data Validation Strategies | + | ##Data Validation Strategies |
| − | ##Prevent parameter tampering | + | ##Prevent parameter tampering |
| − | ##Hidden fields | + | ##Hidden fields |
| − | ##ASP.NET Viewstate | + | ##ASP.NET Viewstate |
| − | ##URL encoding | + | ##URL encoding |
| − | ##HTML encoding | + | ##HTML encoding |
| − | ##Encoded strings | + | ##Encoded strings |
| − | ##Data Validation and Interpreter Injection | + | ##Data Validation and Interpreter Injection |
| − | ##Delimiter and special characters | + | ##Delimiter and special characters |
| − | ##Further Reading | + | ##Further Reading |
| − | #INTERPRETER INJECTION | + | #INTERPRETER INJECTION |
| − | ##Objective | + | ##Objective |
| − | ##Platforms Affected | + | ##Platforms Affected |
| − | ##Relevant COBIT Topics | + | ##Relevant COBIT Topics |
| − | ##User Agent Injection | + | ##User Agent Injection |
| − | ##HTTP Response Splitting | + | ##HTTP Response Splitting |
| − | ##SQL Injection | + | ##SQL Injection |
| − | ##ORM Injection | + | ##ORM Injection |
| − | ##LDAP Injection | + | ##LDAP Injection |
| − | ##XML Injection | + | ##XML Injection |
| − | ##Code Injection | + | ##Code Injection |
| − | ##Further Reading | + | ##Further Reading |
| − | ##SQL-injection | + | ##SQL-injection |
| − | ##Code Injection | + | ##Code Injection |
| − | ##Command injection | + | ##Command injection |
| − | #CANONCALIZATION, LOCALE AND UNICODE | + | #CANONCALIZATION, LOCALE AND UNICODE |
| − | ##Objective | + | ##Objective |
| − | ##Platforms Affected | + | ##Platforms Affected |
| − | ##Relevant COBIT Topics | + | ##Relevant COBIT Topics |
| − | ##Description | + | ##Description |
| − | ##Unicode | + | ##Unicode |
##http://www.ietf.org/rfc/rfc## | ##http://www.ietf.org/rfc/rfc## | ||
| − | ##Input Formats | + | ##Input Formats |
| − | ##Locale assertion | + | ##Locale assertion |
| − | ##Double (or n-) encoding | + | ##Double (or n-) encoding |
| − | ## HTTP Request Smuggling | + | ## HTTP Request Smuggling |
| − | ## Further Reading | + | ## Further Reading |
| − | #ERROR HANDLING, AUDITING AND LOGGING | + | #ERROR HANDLING, AUDITING AND LOGGING |
| − | ##Objective | + | ##Objective |
| − | ##Environments Affected | + | ##Environments Affected |
| − | ##Relevant COBIT Topics | + | ##Relevant COBIT Topics |
| − | ##Description | + | ##Description |
| − | ##Best practices | + | ##Best practices |
| − | ##Error Handling | + | ##Error Handling |
| − | ##Detailed error messages | + | ##Detailed error messages |
| − | ##Logging | + | ##Logging |
| − | ##Noise | + | ##Noise |
| − | ##Cover Tracks | + | ##Cover Tracks |
| − | ##False Alarms | + | ##False Alarms |
| − | ##Destruction | + | ##Destruction |
| − | ##Audit Trails | + | ##Audit Trails |
| − | ##Further Reading | + | ##Further Reading |
| − | ##Error Handling and Logging | + | ##Error Handling and Logging |
| − | #FILE SYSTEM | + | #FILE SYSTEM |
| − | ##Objective | + | ##Objective |
| − | ##Environments Affected | + | ##Environments Affected |
| − | ##Relevant COBIT Topics | + | ##Relevant COBIT Topics |
| − | ##Description | + | ##Description |
| − | ##Best Practices | + | ##Best Practices |
| − | ##Defacement | + | ##Defacement |
| − | ##Path traversal | + | ##Path traversal |
| − | ##Insecure permissions | + | ##Insecure permissions |
| − | ##Insecure Indexing | + | ##Insecure Indexing |
| − | ##Unmapped files | + | ##Unmapped files |
| − | ##Temporary files | + | ##Temporary files |
| − | ##PHP | + | ##PHP |
| − | ##Includes and Remote files | + | ##Includes and Remote files |
| − | ##File upload | + | ##File upload |
| − | ##Old, unreferenced files | + | ##Old, unreferenced files |
| − | ##Second Order Injection | + | ##Second Order Injection |
| − | ##Further Reading | + | ##Further Reading |
| − | ##File System | + | ##File System |
| − | #DISTRIBUTED COMPUTING | + | #DISTRIBUTED COMPUTING |
| − | ##Objective | + | ##Objective |
| − | ##Environments Affected | + | ##Environments Affected |
| − | ##Relevant COBIT Topics | + | ##Relevant COBIT Topics |
| − | ##Best Practices | + | ##Best Practices |
| − | ##Race conditions | + | ##Race conditions |
| − | ##Distributed synchronization | + | ##Distributed synchronization |
| − | ##Further Reading | + | ##Further Reading |
| − | #BUFFER OVERFLOWS | + | #BUFFER OVERFLOWS |
| − | ##Objective | + | ##Objective |
| − | ##Platforms Affected | + | ##Platforms Affected |
| − | ##Relevant COBIT Topics | + | ##Relevant COBIT Topics |
| − | ##Description | + | ##Description |
| − | ##General Prevention Techniques | + | ##General Prevention Techniques |
| − | ##Stack Overflow | + | ##Stack Overflow |
| − | ##Heap Overflow | + | ##Heap Overflow |
| − | ##Format String | + | ##Format String |
| − | ##Unicode Overflow | + | ##Unicode Overflow |
| − | ##Integer Overflow | + | ##Integer Overflow |
| − | ##Further reading | + | ##Further reading |
| − | #ADMINISTRATIVE INTERFACES | + | #ADMINISTRATIVE INTERFACES |
| − | ##Objective | + | ##Objective |
| − | ##Environments Affected | + | ##Environments Affected |
| − | ##Relevant COBIT Topics | + | ##Relevant COBIT Topics |
| − | ##Best practices | + | ##Best practices |
| − | ##Administrators are not users | + | ##Administrators are not users |
| − | ##Authentication for high value systems | + | ##Authentication for high value systems |
| − | ##Further Reading | + | ##Further Reading |
| − | #CRYPTOGRAPHY | + | #CRYPTOGRAPHY |
| − | ##Objective | + | ##Objective |
| − | ##Platforms Affected | + | ##Platforms Affected |
| − | ##Relevant COBIT Topics | + | ##Relevant COBIT Topics |
| − | ##Description | + | ##Description |
| − | ##Cryptographic Functions | + | ##Cryptographic Functions |
| − | ##Cryptographic Algorithms | + | ##Cryptographic Algorithms |
| − | ##Algorithm Selection | + | ##Algorithm Selection |
| − | ##Key Storage | + | ##Key Storage |
| − | ##Insecure transmission of secrets | + | ##Insecure transmission of secrets |
| − | ##Reversible Authentication Tokens | + | ##Reversible Authentication Tokens |
| − | ##Safe UUID generation | + | ##Safe UUID generation |
| − | ##Summary | + | ##Summary |
| − | ##Further Reading | + | ##Further Reading |
| − | ##Cryptography | + | ##Cryptography |
| − | #CONFIGURATION | + | #CONFIGURATION |
| − | ##Objective | + | ##Objective |
| − | ##Platforms Affected | + | ##Platforms Affected |
| − | ##Relevant COBIT Topics | + | ##Relevant COBIT Topics |
| − | ##Best Practices | + | ##Best Practices |
| − | ##Default passwords | + | ##Default passwords |
| − | ##Secure connection strings | + | ##Secure connection strings |
| − | ##Secure network transmission | + | ##Secure network transmission |
| − | ##Encrypted data | + | ##Encrypted data |
| − | ##PHP Configuration | + | ##PHP Configuration |
| − | ##Global variables | + | ##Global variables |
| − | ##register_globals | + | ##register_globals |
| − | ##Database security | + | ##Database security |
| − | ##Further Reading | + | ##Further Reading |
| − | ##ColdFusion Components (CFCs) | + | ##ColdFusion Components (CFCs) |
| − | ##Configuration | + | ##Configuration |
| − | #SOFTWARE QUALITY ASSURANCE | + | #SOFTWARE QUALITY ASSURANCE |
| − | ##Objective | + | ##Objective |
| − | ##Platforms Affected | + | ##Platforms Affected |
| − | ##Best practices | + | ##Best practices |
| − | ##Process | + | ##Process |
| − | ##Metrics | + | ##Metrics |
| − | ##Testing Activities | + | ##Testing Activities |
| − | #DEPLOYMENT | + | #DEPLOYMENT |
| − | ##Objective | + | ##Objective |
| − | ##Platforms Affected | + | ##Platforms Affected |
| − | ##Best Practices | + | ##Best Practices |
| − | ##Release Management | + | ##Release Management |
| − | ##Secure delivery of code | + | ##Secure delivery of code |
| − | ##Code signing | + | ##Code signing |
| − | ##Permissions are set to least privilege | + | ##Permissions are set to least privilege |
| − | ##Automated packaging | + | ##Automated packaging |
| − | ##Automated deployment | + | ##Automated deployment |
| − | ##Automated removal | + | ##Automated removal |
| − | ##No backup or old files | + | ##No backup or old files |
| − | ##Unnecessary features are off by default | + | ##Unnecessary features are off by default |
| − | ##Setup log files are clean | + | ##Setup log files are clean |
| − | ##No default accounts | + | ##No default accounts |
| − | ##Easter eggs | + | ##Easter eggs |
| − | ##Malicious software | + | ##Malicious software |
| − | ##Further Reading | + | ##Further Reading |
| − | #MAINTENANCE | + | #MAINTENANCE |
| − | ##Objective | + | ##Objective |
| − | ##Platforms Affected | + | ##Platforms Affected |
| − | ##Relevant COBIT Topics | + | ##Relevant COBIT Topics |
| − | ##Best Practices | + | ##Best Practices |
| − | ##Security Incident Response | + | ##Security Incident Response |
| − | ##Fix Security Issues Correctly | + | ##Fix Security Issues Correctly |
| − | ##Update Notifications | + | ##Update Notifications |
| − | ##Regularly check permissions | + | ##Regularly check permissions |
| − | ##Further Reading | + | ##Further Reading |
| − | ##Maintenance | + | ##Maintenance |
| − | #GNU FREE DOCUMENTATION LICENSE | + | #GNU FREE DOCUMENTATION LICENSE |
| − | ##PREAMBLE | + | ##PREAMBLE |
| − | ##APPLICABILITY AND DEFINITIONS | + | ##APPLICABILITY AND DEFINITIONS |
| − | ##VERBATIM COPYING | + | ##VERBATIM COPYING |
| − | ##COPYING IN QUANTITY | + | ##COPYING IN QUANTITY |
| − | ##MODIFICATIONS | + | ##MODIFICATIONS |
| − | ##COMBINING DOCUMENTS | + | ##COMBINING DOCUMENTS |
| − | ##COLLECTIONS OF DOCUMENTS | + | ##COLLECTIONS OF DOCUMENTS |
| − | ##AGGREGATION WITH INDEPENDENT WORKS | + | ##AGGREGATION WITH INDEPENDENT WORKS |
| − | ##TRANSLATION | + | ##TRANSLATION |
| − | ##TERMINATION | + | ##TERMINATION |
| − | ##FUTURE REVISIONS OF THIS LICENSE | + | ##FUTURE REVISIONS OF THIS LICENSE |
| − | |||
| − | |||
Revision as of 16:46, 18 May 2006
- Frontispiece
- Dedication
- Copyright and license
- Editors
- Authors and Reviewers
- Revision History
- ABOUT THE OPEN WEB APPLICATION SECURITY PROJECT
- Structure and Licensing
- Participation and Membership
- Projects
- INTRODUCTION
- Developing Secure Applications
- Improvements in this edition
- How to use this Guide
- Updates and errata
- With thanks
- WHAT ARE WEB APPLICATIONS?
- Technologies
- First generation – CGI
- Filters
- Scripting
- Web application frameworks – J
- Small to medium scale applications
- Large scale applications
- View
- Controller
- Model
- Conclusion
- POLICY FRAMEWORKS
- Organizational commitment to security
- OWASP’s Place at the Framework table
- Development Methodology
- Coding Standards
- Source Code Control
- Summary
- SECURE CODING PRINCIPLES
- Asset Classification
- About attackers
- Core pillars of information security
- Security Architecture
- Security Principles
- THREAT RISK MODELING
- Threat Risk Modeling
- Performing threat risk modeling using the Microsoft Threat Modeling Process
- Alternative Threat Modeling Systems
- Trike
- AS/NZS
- CVSS
- OCTAVE
- Conclusion
- Further Reading
- HANDLING E-COMMERCE PAYMENTS
- Objectives
- Compliance and Laws
- PCI Compliance
- Handling Credit Cards
- Further Reading
- PHISHING
- What is phishing?
- User Education
- Make it easy for your users to report scams
- Communicating with customers via e-mail
- Never ask your customers for their secrets
- Fix all your XSS issues
- Do not use pop-ups
- Don’t be framed
- Move your application one link away from your front page
- Enforce local referrers for images and other resources
- Keep the address bar, use SSL, do not use IP addresses
- Don’t be the source of identity theft
- Implement safe-guards within your application
- Monitor unusual account activity
- Get the phishing target servers offline pronto
- Take control of the fraudulent domain name
- Work with law enforcement
- When an attack happens
- Further Reading
- WEB SERVICES
- Securing Web Services
- Communication security
- Passing credentials
- Ensuring message freshness
- Protecting message integrity
- Protecting message confidentiality
- Access control
- Audit
- Web Services Security Hierarchy
- SOAP
- WS-Security Standard
- WS-Security Building Blocks
- Communication Protection Mechanisms
- Access Control Mechanisms
- Forming Web Service Chains
- Available Implementations
- Problems
- Further Reading
- AJAX AND OTHER “RICH” INTERFACE TECHNOLOGIES
- Objective
- Platforms Affected
- Architecture
- Access control: Authentication and Authorization
- Silent transactional authorization
- Untrusted or absent session data
- State management
- Tamper resistance
- Privacy
- Proxy Façade
- SOAP Injection Attacks
- XMLRPC Injection Attacks
- DOM Injection Attacks
- XML Injection Attacks
- JSON (Javascript Object Notation) Injection Attacks
- Encoding safety
- Auditing
- Error Handling
- Accessibility
- Further Reading
- AUTHENTICATION
- Objective
- Environments Affected
- Relevant COBIT Topics
- Best Practices
- Common web authentication techniques
- Strong Authentication
- Federated Authentication
- Client side authentication controls
- Positive Authentication
- Multiple Key Lookups
- Referer Checks
- Browser remembers passwords
- Default accounts
- Choice of usernames
- Change passwords
- Short passwords
- Weak password controls
- Reversible password encryption
- Automated password resets
- Brute Force
- Remember Me
- Idle Timeouts
- Logout
- Account Expiry
- Self registration
- CAPTCHA
- Further Reading
- Authentication
- AUTHORIZATION
- Objectives
- Environments Affected
- Relevant COBIT Topics
- Best Practices
- Best Practices in Action
- Principle of least privilege
- Centralized authorization routines
- Authorization matrix
- Controlling access to protected resources
- Protecting access to static resources
- Reauthorization for high value activities or after idle out
- Time based authorization
- Be cautious of custom authorization controls
- Never implement client-side authorization tokens
- Further Reading
- SESSION MANAGEMENT
- Objective
- Environments Affected
- Relevant COBIT Topics
- Description
- Best practices
- Exposed Session Variables
- Page and Form Tokens
- Weak Session Cryptographic Algorithms
- Session Token Entropy
- Session Time-out
- Regeneration of Session Tokens
- Session Forging/Brute-Forcing Detection and/or Lockout
- Session Token Capture and Session Hijacking
- Session Tokens on Logout
- Session Validation Attacks
- PHP
- Sessions
- Further Reading
- Session Management
- DATA VALIDATION
- Objective
- Platforms Affected
- Relevant COBIT Topics
- Description
- Definitions
- Where to include integrity checks
- Where to include validation
- Where to include business rule validation
- Data Validation Strategies
- Prevent parameter tampering
- Hidden fields
- ASP.NET Viewstate
- URL encoding
- HTML encoding
- Encoded strings
- Data Validation and Interpreter Injection
- Delimiter and special characters
- Further Reading
- INTERPRETER INJECTION
- Objective
- Platforms Affected
- Relevant COBIT Topics
- User Agent Injection
- HTTP Response Splitting
- SQL Injection
- ORM Injection
- LDAP Injection
- XML Injection
- Code Injection
- Further Reading
- SQL-injection
- Code Injection
- Command injection
- CANONCALIZATION, LOCALE AND UNICODE
- Objective
- Platforms Affected
- Relevant COBIT Topics
- Description
- Unicode
- http://www.ietf.org/rfc/rfc##
- Input Formats
- Locale assertion
- Double (or n-) encoding
- HTTP Request Smuggling
- Further Reading
- ERROR HANDLING, AUDITING AND LOGGING
- Objective
- Environments Affected
- Relevant COBIT Topics
- Description
- Best practices
- Error Handling
- Detailed error messages
- Logging
- Noise
- Cover Tracks
- False Alarms
- Destruction
- Audit Trails
- Further Reading
- Error Handling and Logging
- FILE SYSTEM
- Objective
- Environments Affected
- Relevant COBIT Topics
- Description
- Best Practices
- Defacement
- Path traversal
- Insecure permissions
- Insecure Indexing
- Unmapped files
- Temporary files
- PHP
- Includes and Remote files
- File upload
- Old, unreferenced files
- Second Order Injection
- Further Reading
- File System
- DISTRIBUTED COMPUTING
- Objective
- Environments Affected
- Relevant COBIT Topics
- Best Practices
- Race conditions
- Distributed synchronization
- Further Reading
- BUFFER OVERFLOWS
- Objective
- Platforms Affected
- Relevant COBIT Topics
- Description
- General Prevention Techniques
- Stack Overflow
- Heap Overflow
- Format String
- Unicode Overflow
- Integer Overflow
- Further reading
- ADMINISTRATIVE INTERFACES
- Objective
- Environments Affected
- Relevant COBIT Topics
- Best practices
- Administrators are not users
- Authentication for high value systems
- Further Reading
- CRYPTOGRAPHY
- Objective
- Platforms Affected
- Relevant COBIT Topics
- Description
- Cryptographic Functions
- Cryptographic Algorithms
- Algorithm Selection
- Key Storage
- Insecure transmission of secrets
- Reversible Authentication Tokens
- Safe UUID generation
- Summary
- Further Reading
- Cryptography
- CONFIGURATION
- Objective
- Platforms Affected
- Relevant COBIT Topics
- Best Practices
- Default passwords
- Secure connection strings
- Secure network transmission
- Encrypted data
- PHP Configuration
- Global variables
- register_globals
- Database security
- Further Reading
- ColdFusion Components (CFCs)
- Configuration
- SOFTWARE QUALITY ASSURANCE
- Objective
- Platforms Affected
- Best practices
- Process
- Metrics
- Testing Activities
- DEPLOYMENT
- Objective
- Platforms Affected
- Best Practices
- Release Management
- Secure delivery of code
- Code signing
- Permissions are set to least privilege
- Automated packaging
- Automated deployment
- Automated removal
- No backup or old files
- Unnecessary features are off by default
- Setup log files are clean
- No default accounts
- Easter eggs
- Malicious software
- Further Reading
- MAINTENANCE
- Objective
- Platforms Affected
- Relevant COBIT Topics
- Best Practices
- Security Incident Response
- Fix Security Issues Correctly
- Update Notifications
- Regularly check permissions
- Further Reading
- Maintenance
- GNU FREE DOCUMENTATION LICENSE
- PREAMBLE
- APPLICABILITY AND DEFINITIONS
- VERBATIM COPYING
- COPYING IN QUANTITY
- MODIFICATIONS
- COMBINING DOCUMENTS
- COLLECTIONS OF DOCUMENTS
- AGGREGATION WITH INDEPENDENT WORKS
- TRANSLATION
- TERMINATION
- FUTURE REVISIONS OF THIS LICENSE