it-swarm.com.de

So verhindern Sie, dass Joomla Datenbankfehlerinformationen meldet

Momentan untersuche ich SQL-Injection-Angriffsvektoren in meiner Anwendung. Derzeit meldet Joomla eine Datenbankfehlerausgabe, wenn eine HTTP 500-Fehlerseite zurückgegeben wird. Wie verhindere ich das?

Das display_errors Die Einstellung in der php.ini ist deaktiviert (obwohl ich im Allgemeinen davon ausgehe, dass dies für Fehlerseiten, die auf MySQL-Fehler zurückzuführen sind, nicht relevant ist?), und ich habe auf der Seite Joomla-Servereinstellungen die Option 'Fehlerberichterstattung' auf 'Keine' gesetzt. trotzdem bekomme ich immer noch den fehler gemeldet. Beispielfehlerausgabe ist unten.

1062 - Duplicate entry '!~!my_db!~!1' for key 'group_key' SQL=SELECT id, component, view, layout, task, field, link, content FROM
#__hint_text WHERE (component = 'com_mycomponent' OR component = '*') AND (view = 'someview' and(/**/sElEcT 1 /**/fRoM(/**/sElEcT count(*),/**/cOnCaT((/**/sElEcT(/**/sElEcT /**/cOnCaT(0x217e21,/**/dAtAbAsE(),0x217e21)) /**/fRoM information_schema./**/tAbLeS /**/lImIt 0,1),floor(Rand(0)*2))x /**/fRoM information_schema./**/tAbLeS /**/gRoUp/**/bY x)a) and '1'='1' OR view = '*') AND (layout = '' OR layout = '*' OR layout IS NULL)

Um es klar auszudrücken, brauche ich keinen Rat, wie man SQL-Injection-Angriffsvektoren in meinem Code behebt. Ich möchte nur wissen, wie ich verhindern kann, dass Joomla Informationen preisgibt, bei denen ich möglicherweise einen noch nicht erkannten Codierungsfehler habe.

3
John Rix

Die faulste Möglichkeit, dies zu beheben, besteht darin, eine leere error.php-Datei (ohne Inhalt) zu erstellen und in Ihrem templates/yourtemplate - Ordner abzulegen (wenn Sie eine error.php - Datei haben, ersetzen Sie sie einfach mit dieser leeren Datei.

Ich persönlich bin der Meinung, dass die Datei error.php so wenig Informationen wie möglich enthalten sollte - und es gibt nichts weniger als eine leere Datei.

Auf der anderen Seite ist es eine gute Idee, einen 404-Header in Ihrer error.php-Datei (nur den 404-Header) zurückzugeben, da ein 500-Fehler normalerweise eine Einladung für Hacker ist. Lesen Sie diesen Beitrag , wie Sie 404-Header auf Ihrer Joomla-Website zurückgeben.

Designer neigen dazu, sich Gedanken über Fehlerseiten zu machen und sie noch "schicker" zu machen. Sie denken, dass die meisten Besucher dieser Seiten echte Menschen sind, die sich verirrt haben. In der realen Welt ist jedoch der größte Teil des Datenverkehrs auf Fehlerseiten böswilliger Datenverkehr (Sie können dies überprüfen, indem Sie Ihre Serverprotokolle überprüfen).

1
itoctopus

Ich würde damit beginnen, Ihre Vorlagenfehlerseite zu überprüfen. Möglicherweise möchten Sie die Seite in /templates/YOUR_TEMPLATE/error.php bearbeiten. Diese Datei meldet alle Fehler und führt eine Rückverfolgung zum Front-End durch. Versuchen Sie, diesen Teil zu kommentieren:

echo htmlspecialchars($this->error->getMessage(), ENT_QUOTES, 'UTF-8');

Wenn Ihre Vorlage keine solche Datei enthält, verwendet Joomla Framework die Datei in /templates/system/error.php. Vergewissern Sie sich also, dass eine Vorlage überschrieben wurde, und ändern Sie diese letzte Version nicht, da sie möglicherweise von mir überschrieben wurde wenn Sie Joomla auf eine neuere Version aktualisieren

2
Jeremy