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 "J2EE Bad Practices: getConnection()"
Weilin Zhong (talk | contribs) |
|||
| Line 2: | Line 2: | ||
{{Template:Fortify}} | {{Template:Fortify}} | ||
| − | + | Last revision (mm/dd/yy): '''{{REVISIONMONTH}}/{{REVISIONDAY}}/{{REVISIONYEAR}}''' | |
| + | |||
| + | [[ASDR_TOC_Vulnerabilities|Vulnerabilities Table of Contents]] | ||
| + | |||
| + | [[ASDR Table of Contents]] | ||
| + | __TOC__ | ||
| − | |||
==Description== | ==Description== | ||
| + | |||
| + | The J2EE standard forbids the direct management of connections. | ||
The J2EE standard requires that applications use the container's resource management facilities to obtain connections to resources. | The J2EE standard requires that applications use the container's resource management facilities to obtain connections to resources. | ||
| − | ==Examples == | + | |
| + | |||
| + | ==Risk Factors== | ||
| + | |||
| + | TBD | ||
| + | |||
| + | ==Examples== | ||
For example, a J2EE application should obtain a database connection as follows: | For example, a J2EE application should obtain a database connection as follows: | ||
| Line 24: | Line 36: | ||
Every major web application container provides pooled database connection management as part of its resource management framework. Duplicating this functionality in an application is difficult and error prone, which is part of the reason it is forbidden under the J2EE standard. | Every major web application container provides pooled database connection management as part of its resource management framework. Duplicating this functionality in an application is difficult and error prone, which is part of the reason it is forbidden under the J2EE standard. | ||
| − | |||
| − | ==Related Attacks== | + | ==Related [[Attacks]]== |
| − | + | * [[Attack 1]] | |
| + | * [[Attack 2]] | ||
| − | |||
| − | == | + | ==Related [[Vulnerabilities]]== |
| + | * [[Vulnerability 1]] | ||
| + | * [[Vulnerabiltiy 2]] | ||
| + | |||
| + | |||
| + | ==Related [[Controls]]== | ||
| + | |||
| + | * [[Control 1]] | ||
| + | * [[Control 2]] | ||
| + | |||
| + | |||
| + | ==Related [[Technical Impacts]]== | ||
| + | |||
| + | * [[Technical Impact 1]] | ||
| + | * [[Technical Impact 2]] | ||
| + | |||
| + | |||
| + | ==References== | ||
| + | |||
| + | TBD | ||
| + | [[Category:FIXME|add links | ||
| + | |||
| + | In addition, one should classify vulnerability based on the following subcategories: Ex:<nowiki>[[Category:Error Handling Vulnerability]]</nowiki> | ||
| + | |||
| + | Availability Vulnerability | ||
| + | |||
| + | Authorization Vulnerability | ||
| + | |||
| + | Authentication Vulnerability | ||
| + | |||
| + | Concurrency Vulnerability | ||
| + | |||
| + | Configuration Vulnerability | ||
| + | |||
| + | Cryptographic Vulnerability | ||
| + | |||
| + | Encoding Vulnerability | ||
| + | |||
| + | Error Handling Vulnerability | ||
| + | |||
| + | Input Validation Vulnerability | ||
| + | |||
| + | Logging and Auditing Vulnerability | ||
| + | |||
| + | Session Management Vulnerability]] | ||
| + | |||
| + | __NOTOC__ | ||
| + | |||
| + | |||
| + | [[Category:OWASP ASDR Project]] | ||
[[Category:Implementation]] | [[Category:Implementation]] | ||
| − | |||
[[Category:Java]] | [[Category:Java]] | ||
| − | |||
[[Category:Code Snippet]] | [[Category:Code Snippet]] | ||
| − | |||
[[Category:Use of Dangerous API]] | [[Category:Use of Dangerous API]] | ||
| − | |||
[[Category:API Abuse]] | [[Category:API Abuse]] | ||
Revision as of 17:10, 26 September 2008
This is a Vulnerability. To view all vulnerabilities, please see the Vulnerability Category page.
Last revision (mm/dd/yy): 09/26/2008
Vulnerabilities Table of Contents
Description
The J2EE standard forbids the direct management of connections.
The J2EE standard requires that applications use the container's resource management facilities to obtain connections to resources.
Risk Factors
TBD
Examples
For example, a J2EE application should obtain a database connection as follows:
ctx = new InitialContext(); datasource = (DataSource)ctx.lookup(DB_DATASRC_REF); conn = datasource.getConnection();
and should avoid obtaining a connection in this way:
conn = DriverManager.getConnection(CONNECT_STRING);
Every major web application container provides pooled database connection management as part of its resource management framework. Duplicating this functionality in an application is difficult and error prone, which is part of the reason it is forbidden under the J2EE standard.
Related Attacks
Related Vulnerabilities
Related Controls
Related Technical Impacts
References
TBD