Auswahl  

 

Oracle
APEX
APEX 5.0:APEX 5.1:APEX 18.1:APEX 18.2:12.1, 12.2
18.12.18 (MP)
18.12.18 (MP)

Body

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 eigne 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.

Besuchen Sie uns doch bei einer unsere über 40 Oracle Schulungen in München - Unterhaching.