Ich sehe Code von Entwicklern, die implizite Datumskonvertierung verwenden. Ich hätte gerne eine endgültige Antwort darauf, warum sie das nicht tun sollten.
SELECT * from dba_objects WHERE Created >= '06-MAR-2012';
oracle
sql-injection
Leigh Riffel
quelle
quelle
Antworten:
Denn
'2012/12/1'
in den USA ist 11 Monate nach dem gleichen Saitendatum in Europa.Wenn Sie implizite Konvertierungen zulassen, sind Sie den Standorteinstellungen ausgeliefert.
Wenn Sie ein Unternehmen nennen können, bei dem 11 Monate eine akzeptable Fehlerquote darstellen, bin ich beeindruckt.
quelle
Es treten Probleme auf, wenn der Code in einer Sitzung mit einem anderen Datumsformat ausgeführt wird.
Anweisungsfehler
Schlechte Daten
In dieser Situation, weil jede der alter / insert-Anweisungen von verschiedenen Benutzern ausgeführt werden kann. Sie würden alle die gleichen Anweisungen ausführen, aber die resultierenden Daten wären völlig unterschiedlich. Die insert-Anweisungen können in einem Paket vergraben sein, das nur indirekt aufgerufen wird. Da kein Fehler zurückgegeben wurde, wird das Problem möglicherweise erst viel später gefunden.
SQL-Injektion
In dieser Situation kann eine böswillige Person das Datumsformat der Sitzungen so ändern, dass sie Zugriff auf Daten erhält, auf die sie normalerweise keinen Zugriff haben.
quelle