Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Oracle SQL-Injection-Block mit 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;

Aus Dokumenten..

  • ENQUOTE_LITERAL - Setzt ein String-Literal in Anführungszeichen
  • ENQUOTE_NAME - Schließt einen Namen in doppelte Anführungszeichen ein
  • NOOP - Gibt den Wert ohne Prüfung zurück
  • QUALIFIED_SQL_NAME – Prüft, ob die Eingabezeichenfolge ein qualifizierter SQL-Name ist
  • SCHEMA_NAME - Funktion Überprüft, ob die Eingabezeichenfolge ein vorhandener Schemaname ist
  • SIMPLE_SQL_NAME - Prüft, ob die Eingabezeichenfolge ein einfacher SQL-Name ist
  • SQL_OBJECT_NAME – Überprüft, ob die Zeichenfolge des Eingabeparameters ein qualifizierter SQL-Bezeichner eines vorhandenen SQL-Objekts ist