Einbau in die Website

Hier können Probleme und alles andere in Deutscher Sprache gelöst werden.
Post Reply
BigTim
Regular
Posts: 55
Joined: Sat Apr 16, 2005 7:32 pm

Einbau in die Website

Post by BigTim »

Hallo!
Ich wollte meinen Blog mit folgenden Script in meine Website einbinden:
<?php
if(isset($_GET['action']) && file_exists('./include/'.$_GET['action'].'.php')) {
include('./include/'.$_GET['action'].'.php');
}
else {
include('Url_zum_Blog');
}
?>
Des klappt auch ganz gut, nur werden die Umlaute nicht wirklich angezeigt...
Bekomme z.B. folgende Meldung: " Keine Einträge vorhanden"

Was kann man da machen? Hab mich in Smarty versucht, aber Hoffnungslos verloren... :( Benutze die 0.9 Beta 3.
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: Einbau in die Website

Post by garvinhicking »

Dein Code könnte ein größeres Sicherheitsleck haben, wenn Dein Code nicht vorher noch die Variablen überprüft.

Stell Dir mal vor, man übermittelt folgendes:

http://bigtim.de/index.php?action=../.. ... /passwd%00

Damit könnte man, eine gewisse Config vorausgesetzt, relativ leicht beliebige Dateien einbinden. Also, vorher aus $_GET['Action'] alle bösen Zeichen löschen (./\%), und erst dann includen. :)

Anstelle eins Includes würde ich lieber auf die Blog-URL redirecten:

Code: Select all

header('Location: http://blog.de/');
- oder wenn Du es wirklich einbinden willst, lieber den Embed-Modus mit ob_start() und Co nutzen. Der ist in der s9y.org doku beschrieben und hier im Forum auch öfter angesprochen.

Die Umlaute kommen wohl daher, weil der Header nicht korrekt gesetzt werden konnte und die Seite nicht in UTF-8 dargestellt wird. Das kann daher kommen wenn Du vor deinem Include schon HTML ausgegeben hast...

Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
BigTim
Regular
Posts: 55
Joined: Sat Apr 16, 2005 7:32 pm

Post by BigTim »

Hey Garvin,
danke erstmal für die Antwort.

Eine Frage hab ich jetzt noch:
Also, vorher aus $_GET['Action'] alle bösen Zeichen löschen (./\%), und erst dann includen.

Was genau soll ich nun ändern? Die klappt ja sonst ganz gut.

Ich werd mich jetzt mit dem Embed-Modus vertraut machen. Sieht wirklich einfach aus... :lol:

Danke für die Hilfe! :wink:
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Einfach folgendes:

Code: Select all

$_GET['action'] = str_replace(array("\r", "\n", "\t", "\0", ".", "/", "\\"), array('','','','','','',''), $_GET['action']);
:)

grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
BigTim
Regular
Posts: 55
Joined: Sat Apr 16, 2005 7:32 pm

Post by BigTim »

Alles klar! Vielen Dank! :)
BigTim
Regular
Posts: 55
Joined: Sat Apr 16, 2005 7:32 pm

Post by BigTim »

Hallo nochmal! :oops:
Des ist mir jetzt äußerst unangenehm und peinlich :oops: :lol: und ich hoffe du entschuldigst meinen Doppelpost. Hab des mit

Code: Select all

$_GET['action'] = str_replace(array("\r", "\n", "\t", "\0", ".", "/", "\\"), array('','','','','','',''), $_GET['action']); 
ausprobiert. Aber irgendwie... Ich bekomm´s nicht zum laufen. Wie muss ich des in den vorhandenen Code einfügen, so das es funktioniert?

Ich weiß, ich bin keine Leuchte... :shock: :D
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Diese Codezeile kannst Du eigentlich direkt vor deiner If-Abfrage einbauen, quasi als erste zeile in deiner Datei :)

Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
BigTim
Regular
Posts: 55
Joined: Sat Apr 16, 2005 7:32 pm

Post by BigTim »

Axo ist des gemeint! Dann vielen Dank und nochmal alles Gute nachträglich! Hab ja schon im Blog gratuliert! :lol:

Grüße, Tim

Edit: Funktioniert! Danke nochmals! :)
Post Reply