In LiveReports ist ein neuer Eingabetyp mit dem Namen InsertString verfügbar. Mit diesem neuen Eingabetyp kann jegliche Zeichenfolge als Eingabe an den LiveReport übergeben und direkt, d. h. ohne Konvertierung oder Änderung, z. B. Einschluss in Anführungszeichen, in die SQL-Abfrage eingefügt werden. Dies ermöglicht unter anderem, dass komplette Segmente einer SQL-Abfrage als Parameter in den LiveReport übergeben werden können. Dies könnte beispielsweise verwendet werden, um zusätzliche logische WHERE- und AND-Bedingungen an die SQL-Abfrage zu übergeben.
Um zu verhindern, dass mit dieser neuen Flexibilität unerwünschte SQL-Objekte in die SQL-Abfrage übergeben werden (versehentlich oder aus anderen Gründen), bietet LiveReports einen optionalen sicheren Modus zum Analysieren und Blockieren vordefinierter Zeichenfolgen. Dieser sichere Modus ist der Standardmodus, kann jedoch bei Bedarf ausgeschaltet werden. OpenText rät davon ab, den sicheren Modus zu deaktivieren. Berichtersteller, die den sicheren Modus ausschalten, müssen besonders darauf achten, die Ersetzungsparameter für Eingaben in einer Stelle in der SQL-Abfrage zu positionieren, an der böswillige Benutzer keine unerwünschten Befehle erstellen können. Unabhängig davon, ob diese Funktion verwendet wird oder nicht, müssen Berichtersteller immer die Verantwortung für die von ihnen erstellten LiveReports übernehmen.
Die SQL-Vorlagenfunktion ist eine sichere und elegante Alternative zum manuellen Erstellen einer SQL-Anweisung. Weitere Informationen finden Sie unter SQL-Vorlagen.
Um die InsertString-Funktion zu verwenden, wählen Sie im Bereich Eingabe in der Liste Typ die Option InsertString aus, und legen Sie den entsprechenden Parameter % für die jeweilige Benutzereingabe fest. Beachten Sie, dass das Kontrollkästchen für den sicheren Modus angezeigt wird, sobald Sie InsertString auswählen. Deaktivieren Sie dieses Kontrollkästchen nur, wenn Sie die vorherigen Hinweise gelesen und deren Auswirkungen verstanden haben.
Wenn ein Benutzer beim Ausführen eines LiveReports einen Begriff übergibt, den der sichere Modus als unzulässig befindet, wird eine Fehlermeldung angezeigt. Beispiel:
[** Disallowed SQL Term(s): {;}{DROP} passed via parameters]
Wählen Sie die Position der Zeichenfolge sorgfältig aus. Positionieren Sie den Ersetzungsparameter %1, %2 usw. an der jeweiligen Position in der SQL-Anweisung. Auch im sicheren Modus müssen Ersteller von LiveReports sorgfältig abwägen, wo solche Ersetzungen zulässig sein dürfen. Vermeiden Sie es, diese Ersetzungen am Anfang oder Ende der SQL-Anweisung zu platzieren. Diese Funktion ist beispielsweise hilfreich, wenn die einzufügende Zeichenfolge Teil einer WHERE-Klausel oder einer bestimmten logischen Bedingung innerhalb dieser WHERE-Klausel ist.
Im folgenden Beispiel ist der InsertString-Ersetzungsparameter %1 in einer Zeichenfolge enthalten und von den Platzhalterzeichen (Prozentzeichen, %) umgeben. Diese Abfrage bewirkt das Auflisten aller Objekte in Content Server, die einen Namen besitzen, der die eingegebene Zeichenfolge enthält. %-Symbole müssen nicht mehr durch Wiederholung (%%) escaped werden. Außerdem fügt InsertString KEINE Anführungszeichen zum ersetzten Parameter hinzu (im Gegensatz zum Typ String).
Der Eingabetyp InsertString ist bei der ersten Installation des Moduls normalerweise deaktiviert. Um ihn zu aktivieren, muss Ihr Systemverwalter das Feld InsertStrEnabled des Abschnitts [report] in der Datei opentext.ini bearbeiten. Weitere Informationen finden Sie unter
Sobald Ihr Administrator den sicheren Modus aktiviert hat wird sämtlicher an den LiveReport übergebene Text in allen übergebenen Parametern auf unzulässige Objekte überprüft. Standardmäßig blockiert der sichere Modus die folgenden Begriffe:
; (Semikolon), UPDATE, UPDATETEXT, WRITETEXT, REMOVE, DROP, CREATE,ALTER, INSERT, COMMIT, EXECUTE, FETCH, REVOKE, ROLLBACK, SAVE, TRUNCATE, UNION
Ihr Systemverwalter kann die Liste der unzulässigen Begriffe im Feld blockedSQLterms im Abschnitt [report] in der Datei opentext.ini bearbeiten, um diese Standardliste zu überschreiben. Weitere Informationen finden Sie unter