Skip to Main Content

SQL & PL/SQL

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Is SQL Injection Possible in this Query?

Arun Kumar GuptaDec 2 2021 — edited Dec 2 2021

Hi All
I have a procedure in which based on user passed value (parameter), data is selected from a table in a ref cursor.
To allow wildcard (partial text ) search, % is appended on both side of parameter while passing this parameter in WHERE clause of query with LIKE operator.
Just want to know if SQL Injection is possible in this query.

DROP TABLE test;
CREATE TABLE TEST AS SELECT object_id, object_name FROM user_objects WHERE ROWNUM < 5;
SELECT * FROM test;
COMMIT;

CREATE OR REPLACE PROCEDURE P_TEST
(
  p_obj_name   IN VARCHAR2
  ,p_obj_list   OUT SYS_REFCURSOR   
)
IS
BEGIN
 OPEN p_obj_list
  FOR
  SELECT *
   FROM test
  WHERE object_name LIKE '%' || p_obj_name || '%'
 ORDER BY object_name;
END;
/

Regards
Arun

This post has been answered by Frank Kulash on Dec 2 2021
Jump to Answer
Comments
Post Details
Added on Dec 2 2021
11 comments
810 views