Skip to Main Content
 
Titelbild Muniqsoft Training

Search Results

Oracle Tipp Text

Itemcheck in APEX Anwendungen über alle Items einer Seite

Bereich:APEX, Version: ab RDBMS 12.x, Letzte Überarbeitung: 18.12.2018

Keywords:APEX Itemcheck

Seit APEX Version 5.1 können ja nun zusätzliche Standard-Prüfungen für die Items durchgeführt werden. Diese sind:

  • Whitelist for a-z 0-9       Nur Zeichen und Zahlen sind erlaubt (Leider sind auch keine Umlaute möglich)
  • Blacklist HTML Command Characters (<> '')
  • Blacklist &<>"/;*|=% and --
  • Blacklist &<>"/;*|=% or -- and new line

Wenn das aber alles nicht passt, können wir uns eine eigene Validation schreiben:

DECLARE
stmt VARCHAR2(32000);
v_sqlerrm varchar2(32000);
BEGIN
FOR c IN (SELECT   PAGE_ID,  PAGE_NAME,  ITEM_NAME
FROM APEX_APPLICATION_PAGE_ITEMS
WHERE application_id=:APP_ID and page_id=:APP_PAGE_ID  ) LOOP
     stmt:=q'!BEGIN
     IF instr(v('!'||c.item_name||q'!'),'<')>0 OR
        instr(v('!'||c.item_name||q'!'),'>')>0 OR
        instr(v('!'||c.item_name||q'!'),'^')>0 OR
        instr(v('!'||c.item_name||q'!'),'&')>0 OR
        instr(v('!'||c.item_name||q'!'),'"')>0 OR
        instr(v('!'||c.item_name||q'!'),chr(39))>0
    THEN
      RAISE_APPLICATION_ERROR(-20500,'Ungültige Zeichen verwendet (^<>&")');
     END IF;
      EXCEPTION WHEN OTHERS THEN
       IF sqlcode=-20500 then raise; end if;
     END; !';
commit;
    EXECUTE IMMEDIATE stmt;

END LOOP;
  RETURN true;
EXCEPTION WHEN OTHERS THEN
   v_sqlerrm:=sqlerrm;
  RETURN false;
END;


Wenn jetzt jemand in irgendein Item eines der Zeichen <>'" &^ einträgt, wird diese Eingabe abgewiesen.



Weitere Interessente Artikel zum Thema:


Empfohlene Schulungen zum Thema: