Seite 1 von 1

General Error bei Umlauten in der URL

Verfasst: 21.04.2009 19:26
von Slytherin
Guten Tag. Mir ist bei der Benutzung von phpBB3 folgendes aufgefallen.
Sobald man eine Variable, welche Umlaute enthält, an die URL anhängt, gelangt man zu einer Fehlermeldung.

Auch hier kann man es ausprobieren: http://www.phpbb.de/?ääö=öä

Code: Alles auswählen

General Error
SQL ERROR [ mysqli ]

Incorrect string value: '\xE4' for column 'session_page' at row 1 [1366]

An sql error occurred while fetching this page. Please contact an administrator if this problem persists.
Ich finde nun das doch sehr unschön. Eine Sicherheitslücke ist es aber wohl nicht.
Gibt es dennoch eine Möglichkeit, das irgendwie zu deaktivieren?

Re: General Error bei Umlauten in der URL

Verfasst: 21.04.2009 19:46
von Dr.Death
Hallo,

phpBB3 unterstützt keine Umlaute in Domain Namen und/oder Query Strings.

Du könntest, wenn du möchtest in der Tabelle " phpbb_sessions " das Feld " session_page " von VARCHAR (255) COLLATION utf8_bin
auf BLOB ändern, sofern es Deine Datenbank zulässt.

Code: Alles auswählen

ALTER TABLE `phpbb_sessions` CHANGE `session_page` `session_page` TINYBLOB NOT NULL


Ich rate aber dennoch davon ab, dies in einer LIVE Umgebung durchzuführen.
Wer weiß, welche Nebeneffekte dies nach sich zieht.

Re: General Error bei Umlauten in der URL

Verfasst: 22.04.2009 09:48
von Slytherin
Nun, eigentlich hätte ich eher an einen anderen Lösungsansatz gedacht:

Code: Alles auswählen

								$um = array("\xE4", "\xC4", "\xFC", "\xDC", "\xF6", "\xD6", "\xDF");
								$um_ers = array("ae", "Ae", "ue", "Ue", "oe", "Oe", "ss");
								$page = str_replace($um, $um_ers, $page);
Klappt perfekt, nur die Frage: Wie sieht es hier in punkto Sicherheit aus?

Re: General Error bei Umlauten in der URL

Verfasst: 22.04.2009 10:24
von Dr.Death
Andere Gegenfrage: Was machst Du bei anderen UTF8 Zeichen wie: éè テム運用報告

Willst Du alle Möglichkeiten per str_replace ersetzen?

Re: General Error bei Umlauten in der URL

Verfasst: 22.04.2009 10:34
von Slytherin
Das stimmt wohl auch wieder.
Und wie siehts aus mit:

Code: Alles auswählen

$page = utf8_decode($page);

Re: General Error bei Umlauten in der URL

Verfasst: 22.04.2009 10:42
von Dr.Death
Entweder das oder so:

Code: Alles auswählen

$page = htmlspecialchars_decode(utf8_decode_ncr($page), ENT_QUOTES);
Müsstest Du mal testen ;-)
ich weiß leider nicht wie sich das auf die Performance auswirkt.

Re: General Error bei Umlauten in der URL

Verfasst: 22.04.2009 11:05
von Slytherin
Auch eine Möglichkeit. Laut meinen ersten Tests scheint es keine Auswirkungen auf die Performance zu haben. Sehr schön, vielen Dank fürs Mitdenken! :)

Re: General Error bei Umlauten in der URL

Verfasst: 22.04.2009 11:11
von Dr.Death
Ist ja auch mal eine anderes Problem was man nicht täglich hat.... dann bin ich ja doch nicht so "unfähig".... ;-)

Re: General Error bei Umlauten in der URL

Verfasst: 22.04.2009 19:33
von Pyramide
Slytherin hat geschrieben:Auch hier kann man es ausprobieren: http://www.phpbb.de/?ääö=öä
Bei mir kommt da keine Fehlermeldung. Was für einen Browser nutzt du denn?

Re: General Error bei Umlauten in der URL

Verfasst: 22.04.2009 19:35
von Dr.Death
Im IE 8 wird dieser Fehler erzeugt, da der IE die URL nicht verändert:

Code: Alles auswählen

http://www.phpbb.de/?ääö=öä
Im FF wird die URL geändert in: http://www.phpbb.de/?%E4%E4%F6=%F6%E4