Skip to Main Content

 

Auswahl  

Itemcheck in APEX Anwendungen über alle Items einer Seite 

Oracle
APEX
RDBMS 12.x
18.12.18 (MP)
06.07.23(MP)
APEX Itemcheck

Passende Schulungen zum Thema

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.