sql >> Base de Datos >  >> RDS >> Oracle

Bloque de inyección Oracle SQL con DBMS_ASSERT

query_string := 'SELECT '||dbms_assert.qualified_sql_name(trim(from_schema||'.'||from_table||'.'||return_field))|| 
                   ' FROM '||dbms_assert.schema_name(trim(from_schema))||
                        '.'||dbms_assert.sql_object_name(trim(from_table))||  
                  ' WHERE '||dbms_assert.qualified_sql_name(from_schema||'.'||from_table||'.'||key_field) || ' = '||key_value;



 EXECUTE IMMEDIATE query_string into return_result;

De Documentos..

  • ENQUOTE_LITERAL - Cita un literal de cadena
  • ENQUOTE_NAME - Encierra un nombre entre comillas dobles
  • NOOP:devuelve el valor sin ninguna comprobación
  • QUALIFIED_SQL_NAME:verifica que la cadena de entrada sea un nombre SQL calificado
  • SCHEMA_NAME - Función Verifica que la cadena de entrada sea un nombre de esquema existente
  • SIMPLE_SQL_NAME:verifica que la cadena de entrada sea un nombre SQL simple
  • SQL_OBJECT_NAME:verifica que la cadena del parámetro de entrada sea un identificador SQL calificado de un objeto SQL existente