IE verzieht die Zelle
humpa
- html
Hi.
Meine Seite ist mit Tabellen aufgebaut. In der mittleren Zelle, der größten, kommt logischerweise der gesamte Inhalt rein. Dieser wird durch einen Parameter h per PHP includiert:
if(!(isset($h))){
include("news.php");
}
else{
@include("$h");
}
Bei einer überlangem Zeile bricht der Opera, Mozilla etc automatisch um, der IE jedoch nicht, er verzieht die innere Zelle, bis ein <br> kommt.
Ich habe das Problem erst gemerkt, als ich schon 100 Zeilen geschrieben hatte. Ich müsste also dort, wo jeder normale Browser umbricht, ein <br> hinsetzen, damit der IE es tut. Doch für 100 Zeile ist das mir zu aufwändig.
Gibt es eine Möglichkeit, dem IE zu "sagen", dass er bei Überlänge einer Zeile automatisch umbrechen soll? Mit CSS min-width und max-width habe ich es schon probiert, ohne Ergebnis.
Danke, humpa
Hallo humpa
kommen die Inhalte aus einer Datenbank oder sind sie statisch?
Gruß
Carl
Hallo Carl!
kommen die Inhalte aus einer Datenbank oder sind sie statisch?
Was wäre dabeo der Unterschied? Meinetwegen können sie auch aus
Taka-Tuka-Land kommen ;-)
℆, ℒacℎgas
Hallo Lachgas
Was wäre dabeo der Unterschied? Meinetwegen können sie auch aus
Taka-Tuka-Land kommen ;-)
Der, dass Inhalte aus einer Datenbank öfters mal vor der Ausgabe vorformatiert werden sollten, während sie es bei statischen Seiten im Normalfall bereits sind.
℆, ℒacℎgas
Gruß
Carl
kommen die Inhalte aus einer Datenbank oder sind sie statisch?
Sie kommen aus html-Dateien und werden includiert. Steht aber alles im OP...
Hallo Humpa
Sie kommen aus html-Dateien und werden includiert. Steht aber alles im OP...
Was du sagst ist, dass du eine PHP-Datei includest. Was in dieser Datei steht, sagst du nicht ;)
Gruß
Carl
Sie kommen aus html-Dateien und werden includiert. Steht aber alles im OP...
Was du sagst ist, dass du eine PHP-Datei includest. Was in dieser Datei steht, sagst du nicht ;)
Ich includiere eine html-Datei. In der Datei sind die Sachen, was ich anzeigen lassen will, also das was nachher in der Zelle steht, die der IE verzieht
Hallo humpa!
Meine Seite ist mit Tabellen aufgebaut. In der mittleren Zelle, der
größten, kommt logischerweise der gesamte Inhalt rein. Dieser wird
durch einen Parameter h per PHP includiert:
Let it be ... Tabellen sind nicht dafür da, mit über 100 Zeilen
gefüllt zu werden.
> if(!(isset($h))){
> include("news.php");
> }
> else{
> @include("$h");
> }
Aha, die Totschlagmethode. $h ist wahrscheinlich ein Wert über GET,
gell? Ich möchte dir jetzt nicht sagen, was man damit alles anstellen
kann.
℆, ℒacℎgas
Hallo humpa!
hey Lachgas
if(!(isset($h))){
include("news.php");
}
else{
@include("$h");
}
> Aha, die Totschlagmethode. $h ist wahrscheinlich ein Wert über GET, gell?
Nein, h wird einfach per Link übergeben...
Hallo Humpa
Nein, h wird einfach per Link übergeben...
Du solltest dich mal ganz dringen mit der Sicherheit in Scripten beschäftigen, insbesondere mit Daten die von Clientseite kommen. Stichwort: register_globals
Gruß
Carl
Hallo humpa!
Aha, die Totschlagmethode. $h ist wahrscheinlich ein Wert über GET, gell?
Nein, h wird einfach per Link übergeben...
Das _ist_ die GET-Methode ...
℆, ℒacℎgas
Das _ist_ die GET-Methode ...
Ich kenne die get-Methode nur von HTML-Formularen... Also ist alles, was an die Adresse Parameter dranhängt automatisch die get-Methode?
Hallo humpa!
Ich kenne die get-Methode nur von HTML-Formularen... Also ist alles,
was an die Adresse Parameter dranhängt automatisch die get-Methode?
Ja. Wobei es bei einer POST-Weitergabe der Daten auch nicht viel
sicherer wäre. Was du dringend verbessern musst, ist deine Inkludierungs-
methode.
℆, ℒacℎgas
Hallo Lachgas.
Was du dringend verbessern musst, ist deine Inkludierungs-
methode.
Dazu meine Empfehlung.
Dies in einer Variablenabfrage integriert sorgt für ein _nahezu_ totsicheres Script, was die Inkludierung fremder Resourcen nicht möglich macht.
Gruß, Ashura
»» Dazu meine Empfehlung.
Danke Ashura. Jetzt habe ich das kleine Script umgeändert, und so sieht es jetzt aus:
if(!(isset($h))){
include("news.php");
}
else{
if(file_exists($h)){
include($h);
}
else{
echo "Datei existiert nicht";
}
}
Bist du jetzt zufrieden, oder gibt es noch Sicherheitslücken?
Hallo humpa.
Bist du jetzt zufrieden, oder gibt es noch Sicherheitslücken?
Ja, die gibt es durchaus.
if(file_exists($h)){
#^^^^^^^^^^^^^^ Das kann auch auf einem anderen Server der Fall sein.
Binden am Besten noch die Variable `$_SERVER["DOCUMENT_ROOT"]`{:.language-php} ein, um einen pseudo-absoluten Pfad zu erzeugen, welcher nur Dateien inkludiert, welche sich in deinem Dokument Root befinden.
Gruß, Ashura
--
Selfcode: sh:( fo:) ch:? rl:( br:^ n4:& ie:{ mo:) va:) de:> zu:) fl:( ss:| ls:[ js:|
Try it: [Become an Opera Lover in 30 days](http://tntluoma.com/opera/lover/7/)
Binden am Besten noch die Variable
$_SERVER["DOCUMENT_ROOT"]
ein, um einen pseudo-absoluten Pfad zu erzeugen, welcher nur Dateien inkludiert, welche sich in deinem Dokument Root befinden.
Hab ich gemacht, danke.
Aber was ist jetzt eigentlich mit meiner Ursprungsfrage? Die nicht vorhandenen Zeilenumbrüche im IE?
Aber was ist jetzt eigentlich mit meiner Ursprungsfrage? Die nicht vorhandenen Zeilenumbrüche im IE?
Määänsch!
Das ist doch völlig wurscht! Hauptsache man hat hier seinen Spaß und fachsimpelt in Threads von Anfängern mit Popelfragen, für deren Beantwortung man sich zu schade ist, mit Profis über andere Probleme. Man ändert dann auch nicht die Rubrik oder das Thema. Denn man ist ja Profi. Und die werden sowieso nicht auf Fehlverhalten im Forum hingewiesen.
Aber was dein Problem betrifft: Zu sagen, dass du die Seite nicht zeigen möchtest (aus welchen gründen auch immer) motiviert und erleichtert nicht gerade eine Lösungsangabe, so man denn gewillt wäre eine solche abzugeben.
So long
Kalle
Hallo Kalle.
Denn man ist ja Profi. Und die werden sowieso nicht auf Fehlverhalten im Forum hingewiesen.
Erst schauen, dann meckern.
Gruß, Ashura
你好 Ashura,
Binden am Besten noch die Variable
$_SERVER["DOCUMENT_ROOT"]
ein, um einen pseudo-absoluten Pfad zu erzeugen, welcher nur Dateien inkludiert, welche sich in deinem Dokument Root befinden.
script.php?h=../../../../../../../../etc/passwd
Nein, entweder oder. realpath() drueberlaufen lassen und dann pruefen,
ob die Datei ueberhalt des Document-Root ist, z. B. so:
$h = $_GET['h'];
$path = realpath($_SERVER["DOCUMENT_ROOT"].'/'.$h);
$qpath = addslashes($_SERVER["DOCUMENT_ROOT"]);
if(preg_match("/^$qpath",$path)) {
# Juppi, valide.
}
Dabei muss aber noch darauf geachtet werden, dass keine Passwort-Dateien
oder so im Document-Root liegen. Ansonsten muss man halt mit einer
Whitelist arbeiten, das waere das sicherste (Liste aller erlaubten
$h-Werte anlegen, kann sich auch z. B. ueber eine DB-Abfrage ergeben).
再见,
克里斯蒂安
Hallo Christian.
script.php?h=../../../../../../../../etc/passwd
Sollte dies ein Beispiel sein?
Wenn ja -- bei meinem Linux-Server läuft das ins Leere.
(Fehlermeldung: Warning: main() [function.include]: Failed opening)
Hast du zufällig irgendeinen anderen Parameter zur Verfügung, mit dem ich testen kann, ob mein Script zumindest in dieser Hinsicht wasserdicht ist?
Gruß, Ashura
Hallo,
script.php?h=../../../../../../../../etc/passwd
Sollte dies ein Beispiel sein?
Wenn ja -- bei meinem Linux-Server läuft das ins Leere.
(Fehlermeldung: Warning: main() [function.include]: Failed opening)
*g* Ein _wenig_ Arbeit muss der Hacker schon leisten. Die Anzahl der "../" ist durch Probieren so anzupassen, dass das Wurzelverzeichnis des Dateisystems erreicht wird.
viele Grüße
Axel
Hallo Axel.
Die Anzahl der "../" ist durch Probieren so anzupassen, dass das Wurzelverzeichnis des Dateisystems erreicht wird.
Auch dies habe ich selbst versucht, die Fehlermeldung war immerzu die selbe.
Bei 15mal "../" habe ich aufgehört...
Gruß, Ashura
Hallo humpa!
Lass uns Deine Seite mal anschauen. (Per Link) Wir werden Dir dann sicherlich zeigen was man für tolle Inhalte in Deine Zelle füllen kann, dann sind die 100 zeichen auch kein Problem mehr. Versprochen.
Schönen Gruß
Afra
Lass uns Deine Seite mal anschauen. (Per Link) Wir werden Dir dann sicherlich zeigen was man für tolle Inhalte in Deine Zelle füllen kann, dann sind die 100 zeichen auch kein Problem mehr. Versprochen.
Also, so viel habe ich jetzt auch schon in Erfahrung gebracht, dass es extrem unsicher ist. Vielleicht zeige ich euch meine Seite, wenn sie fertig ist...