Fehlermeldung unterdrücken?
Moses
- datenbank
0 hawkmaster0 hawkmaster0 Moses
0 Christoph Jeschke
Hallo,
kurze Frage ist es möglich die MySql Fehlermeldungen zu unterdrücken?
Also dass mir auf einer Seite z.B. nicht angezeigt wird:
1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near
'blable'
und dann die ganze MySql Abfrage.
sondern stattdessen einfach eine Leereseite - sprich Fehler -> Ausführung abgebrochen.
Ich finde es nämlich ein gehöriges Sicherheitsrisiko, wenn mir dann die ganze Abfrage angezeigt wird also quasi der Aufbau und die Benennungen der Datenbank/Tabellen.
Danke und Grüße,
Moses
Hallo
das hat erstmal nichts mir MySQL zu tun sondern wie dein Error Reporting des Webserver eingestellt ist.
Das gleiche gilt auch für PHP.
Besser wäre es natürlich du lieferst saubere Scripte ohne Fehler oder machst eine Fehlerbehandlung.
Ansonsten Stichwort
error_reporting in deiner Webserver Konfiguration
viele Grüße
hawk
Hallo nochmals,
das war glaube ich etwas falsch was ich eben geschrieben habe.
Du kannst deine MySQL Fehler mit dem @ Zeichen vor
mysql_...() also etwa
@mysql_fetch_arry() unterdrücken
aber wie gesagt, besser saubere Scripte
viele Grüße
hawk
aber wie gesagt, besser saubere Scripte
Hi,
danke erstmal.
Saubere Scripte ist ja ganz nett, nur wenn ich einen Link habe wie:
naechste_seite.php?id=2
und ein findiger Benutzer tippt statt id=2 id=irgendwas ein - dann gibt es natürlich einen Datenbank Fehler und der sollte nicht ausgegeben werden.
Grüße,
Moses
Hallo,
und ein findiger Benutzer tippt statt id=2 id=irgendwas ein
Deshalb sollte man solche Eingaben auch vorher überprüfen (zb. mit is_numeric() und eventuell auch noch den Bereich mit > und <) und gegebenenfalls eigene Fehlermeldungen ausgeben, oder die Eingabe ignorieren.
Gruß,
Fay
Mahlzeit Moses,
Saubere Scripte ist ja ganz nett, nur wenn ich einen Link habe wie:
naechste_seite.php?id=2
und ein findiger Benutzer tippt statt id=2 id=irgendwas ein - dann gibt es natürlich einen Datenbank Fehler
Bei meinen Skripten nicht ...
und der sollte nicht ausgegeben werden.
Dann verursache ihn gar nicht erst. Merke: ALL INPUT IS EVIL!
Du MUSST jegliche Eingaben, die von Benutzerseite kommen (und dazu gehören insbesondere GET- und POST-Parameter), auf gültige Werte prüfen, bevor Du sie verarbeitest. Außerdem solltest Du sämtliche Variableninhalte kontextgerecht behandeln, wenn Du sie verwenden (z.B. an die Datenbank weiterreichen oder als HTML ausgeben) willst - in PHP wären dazu z.B. die Funktionen mysql_real_escape_string() bzw. htmlspecialchars() geeignet.
MfG,
EKKi
Hi,
Saubere Scripte ist ja ganz nett, nur wenn ich einen Link habe wie:
naechste_seite.php?id=2
und ein findiger Benutzer tippt statt id=2 id=irgendwas ein - dann gibt es natürlich einen Datenbank Fehler und der sollte nicht ausgegeben werden.
wenn das Script dies nicht mit einer mit Statuscode 404 ausgelieferten Fehlerseite quittiert, solltest Du es überarbeiten oder wegschmeißen.
freundliche Grüße
Ingo
dann gibt es natürlich einen Datenbank Fehler und der sollte nicht ausgegeben werden.
Das ist ganz allein dein Bier. Kümmere dich einfach um eine angemessene Behandlung des Fehlers. Angemessen im Kontext, so wie dir Ingo Turski schon ein Beispiel gegeben hat. Und validiere die User-Eingaben!
Ciao, Frank
Hallo,
Ich finde es nämlich ein gehöriges Sicherheitsrisiko, wenn mir dann die ganze Abfrage angezeigt wird also quasi der Aufbau und die Benennungen der Datenbank/Tabellen.
Da stimme ich dir zu. Allerdings ist dies kein Standardverhalten; derjenige, der die Applikation (nicht die Datenbank) programmiert hat, gibt diese Daten explizit aus. Dies kannst du natürlich verhindern.
Gruß
Christoph
»
Da stimme ich dir zu. Allerdings ist dies kein Standardverhalten; derjenige, der die Applikation (nicht die Datenbank) programmiert hat, gibt diese Daten explizit aus. Dies kannst du natürlich verhindern.
Gruß
Christoph
Hi,
danke für den Tipp dachte ichm ir auch schon, daß das an der Applikation liegt. Irgendeinen Tipp nach was ich suchen muß um diese Ausgabe zu finden und dadurch zu verhindern (ich hoffe Deine Glaskugel ist in gutem Zustand aber vielleicht gibt es ja den ein oder anderen BEgriff der mir weiterhelfen könnte.... ;-)
Grüße,
Moses
Hallo,
Such mal im Quellcode nach mysql_errno bzw. mysql_error, dann solltest du fündig werden.
Gruß,
Fay
Hallo,
Such mal im Quellcode nach mysql_errno bzw. mysql_error, dann solltest du fündig werden.
Gruß,
Fay
Danke habe ich gefunden und konnte die Ausgabe stoppen.
Jetzt muß ich wohl das ganze Script erstmal gründlich überarbeiten.... :-(
Grüße,
Moses