Inhalt einer Seite in DB schreiben

Nein, implode() verbindet die einzelnen Elemente eines Arrays zu einem String. Deshalb bekommst du nun auch eine Warnung, $url ist bei dir ja kein Array. Es sollte wohl auch

$url = file($HTTP_POST_VARS["spiobericht"]);

heißen. Geht aber wie gesagt nur, wenn allow_url_open an ist.

Anzumerken wäre noch, dass du so langsam auf $_POST umsteigen und darüber hinaus keine ungeprüften Daten in die Datenbank eintragen solltest.
 
Pendergast hat gesagt.:
Ahja, unwahrscheinlich. Als ob jemand bösen Code nur deshalb nicht einschleust, weil er ein paar Zeilen mehr schreiben müsste. ;) Naja, aber das ist ja nun doch eher off topic.
Diese extra Zeilen muss nicht der Angreifer schreiben, sondern derjenige der die Website schreibt.
allow_url_fopen kann also schon einen ordentlichen Beitrag zur Sicherheit leisten, jedoch wird das includen vom remote liegenden Files dadurch komplizierten, wenn es denn noetig ist.
Und selbst wenn allow_url_fopen off ist sollte man uebergebene Variablen die zum includen von Dateien genutzt werden pruefen, egal wie man nun includet, ob per include(), require() oder eben mittels fsockopen().

@Torsten:
Das ist natuerlich unguenstig, dass fsockopen() deaktiviert ist.
Wie sieht's denn mit allow_url_fopen aus? Aber ich denke mal, dass wenn fsockopen() schon deaktiviert ist, dass allow_url_fopen auch off ist.
Ausserdem sollte man anstelle von $HTTP_POST_VARS die kurzen Bezeichner wie $_POST waehlen.
Die langen Namen werden nur noch aus Gruenden der Abwaertskompatibilitaet mitgeschleppt, koennen aber per php.ini deaktiviert werden.
 
Zurück