SQL Injection #2
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The corrected code addresses the SQL Injection vulnerability by replacing dynamically constructed SQL queries with parameterized queries using
PreparedStatement. This approach prevents SQL injection attacks by separating SQL code from data, ensuring that user input is treated as data only and not executable code.Key Changes:
Use of
PreparedStatement:PreparedStatementfor executing SQL queries. This allows for the use of placeholders (?) in the SQL statements, which are then replaced with actual values using thesetmethods (e.g.,setInt,setString,setBigDecimal).Parameterization of Queries:
INSERT INTO TRANSACTIONSquery now uses placeholders forACCOUNTID,DATE,TYPE, andAMOUNT.UPDATE ACCOUNTSqueries also use placeholders forBALANCEandACCOUNT_ID.Separate Statements for Different Operations:
PreparedStatementobjects are created for different operations, such as inserting transaction records and updating account balances. This improves code readability and maintainability.Benefits:
PreparedStatementcan improve performance by allowing the database to precompile the SQL statement, which can be reused with different parameters.Additional Considerations:
Created by: plexicus@plexicus.com