Oracle
 sql >> Database >  >> RDS >> Oracle

Blocco Oracle SQL injection 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;

Da Documenti..

  • ENQUOTE_LITERAL - Cita una stringa letterale
  • ENQUOTE_NAME - Racchiude un nome tra virgolette doppie
  • NOOP - Restituisce il valore senza alcun controllo
  • QUALIFIED_SQL_NAME - Verifica che la stringa di input sia un nome SQL qualificato
  • SCHEMA_NAME - Funzione Verifica che la stringa di input sia un nome schema esistente
  • SIMPLE_SQL_NAME - Verifica che la stringa di input sia un semplice nome SQL
  • SQL_OBJECT_NAME - Verifica che la stringa del parametro di input sia un identificatore SQL qualificato di un oggetto SQL esistente