Seite 1 von 1

PHP "Out" Skript

Verfasst: Do 07.Jun, 2007 18:17
von KeineAhnung
Ich suche ein Skript, das so aussehen sollte:

out.php?http://oxpus.de/

Und, wenn ich das dann öffne soll da stehen:

Sie verlassen deineseite.de.

balbalbla

Klicke hier um auf die verlinkte Seite zu gelangen.

Und das man anstatt http://oxpus.de/ jede andere URL einfügen kann.

Verfasst: Do 07.Jun, 2007 20:34
von Giga4000
Versuch mal dieses Skript. Ist ungetestet, sollte aber funktionieren.
Die Weiterleitung funktioniert so: weiterleitung.php?url=http://www.oxpus.de
Feedback wär nett ;)

Verfasst: Fr 08.Jun, 2007 13:19
von KeineAhnung
geht perfekt, thx, nur ist das ohne das url= möglich, also direkt nach dem ? ???

Verfasst: Fr 08.Jun, 2007 13:59
von oxpus
Nur schwerlich, da man nur so einem Script mitteilen kann, welchen Parameter man überhaupt übergibt.
Allenfalls könnte ich mir das noch per RewriteRule in der .htaccess vorstellen...

Verfasst: Fr 08.Jun, 2007 14:56
von Giga4000
@KeineAhnung: Ich habe gerade noch einen kleinen "Fehler" in meinem Skript gefunden.

Ersetzte mal bitte die Zeile 4:

Code: Alles auswählen

$url = str_replace("\r\n", '', $_GET['url']);
mit:

Code: Alles auswählen

$url = htmlspecialchars($_GET['url']);
Ich hatte das ganze erst mit einen "reinen" PHP-Weiterleitung geschrieben und wollte damit verhindern, dass weitere Header-Einträge gemacht werden können (HTTP Response Splitting).

Verfasst: Fr 08.Jun, 2007 15:26
von KeineAhnung
[quote="oxpus";p="73645"]Nur schwerlich, da man nur so einem Script mitteilen kann, welchen Parameter man überhaupt übergibt.
Allenfalls könnte ich mir das noch per RewriteRule in der .htaccess vorstellen...[/quote]

und was müsste ich da dann reinschreiben ? ^^


@GIGA4000 Mach ich, aber was bringt das genau ^^

Verfasst: Fr 08.Jun, 2007 16:01
von oxpus

Code: Alles auswählen

RewriteEngine On 
RewriteRule ^/weiterleitung.php/(.*) /weiterleitung.php?url=$1 [L]
So in etwa.
Das würde Links wie

Code: Alles auswählen

weiterleitung.php/http://www.oxpus.de
eben mit dem Script weiterleiten, als wenn man direkt

Code: Alles auswählen

weiterleitung.php?url=http://www.oxpus.de
eingibt.

Zumindest in der Theorie und mal eben in den Raum geworfen...

Verfasst: Fr 08.Jun, 2007 16:37
von KeineAhnung
thx, aber ist es möglich wie bei großen anti refer seiten das nur per deineseite.de/?http://oxpus.de geht oder anstatt mit dme Slash ( / ) ein Fragezeichen steht, ja ich verlange viel ^^


EDIT: habe das mit der .htacces probiert, funktioniert irgendwei nicht ^^ da komtm dann

Keine URL ausgewählt!

P.s. wo gibts dne Mod damti man das ins phpBB einbinden kann ?

Verfasst: Fr 08.Jun, 2007 16:48
von oxpus

Code: Alles auswählen

RewriteRule ^/weiterleitung.php/\?(.*) /weiterleitung.php?url=$1 [L]
müsste dann so aussehen...

Verfasst: Fr 08.Jun, 2007 18:23
von KeineAhnung
[quote="oxpus";p="73655"]

Code: Alles auswählen

RewriteRule ^/weiterleitung.php/\?(.*) /weiterleitung.php?url=$1 [L]
müsste dann so aussehen...[/quote]

Bei RewriteRules gehen nicht :(

Verfasst: Fr 08.Jun, 2007 19:23
von Giga4000
[quote="KeineAhnung";p="73649"]@GIGA4000 Mach ich, aber was bringt das genau ^^[/quote]

Das ganze dient der Sicherheit: Als erstes hatte ich die Weiterleitung mit PHP gemacht. Der Code dazu sah so aus:

Code: Alles auswählen

    header('HTTP/1.1 301 Moved Permanently');
    header('location: ' . $url);
Das Problem dabei ist, dass man mit %0D%0A in der Eingabe einen Zeilenumbruch erzeugen kann und somit einen weiteren HTTP-Header Eintrag machen kann. Um dies zu verhindern, hab ich mit str_replace("\r\n", '', $_GET['url']) die Zeilenumbrüche entfernt. Erst dann habe ich gesehen, dass du vor der Weiterleitung noch einen Text ausgeben möchtest, was aber mit einer "reinen" PHP-Weiterleitung nicht möglich ist, da nach einer Textausgabe kein weiterer Header mehr gesendet werden kann.

Deshalb ist die Weiterleitung zum Teil mit HTML gelöst. Hierbei gibt es allerdings ein anderes Sicherheitsrisiko und zwar, dass eingegebener HTML-Code nicht ausgeführt werden darf. Dies erreicht man mit der Funktion htmlspecialchars(). Wenn du das mal testen möchtest, kannst du die beiden Skripts ja mal wie folgt aufrufen:

Code: Alles auswählen

weiterleitung.php?url=http://" /></head><body><script type="text/javascript">alert('Erwischt ;\)')</script>
Ich denke, dann siehst du den Unterschied am besten ;)

Verfasst: Fr 08.Jun, 2007 20:29
von KeineAhnung
[quote="Giga4000";p="73658"][quote="KeineAhnung";p="73649"]@GIGA4000 Mach ich, aber was bringt das genau ^^[/quote]

Das ganze dient der Sicherheit: Als erstes hatte ich die Weiterleitung mit PHP gemacht. Der Code dazu sah so aus:

Code: Alles auswählen

    header('HTTP/1.1 301 Moved Permanently');
    header('location: ' . $url);
Das Problem dabei ist, dass man mit %0D%0A in der Eingabe einen Zeilenumbruch erzeugen kann und somit einen weiteren HTTP-Header Eintrag machen kann. Um dies zu verhindern, hab ich mit str_replace("\r\n", '', $_GET['url']) die Zeilenumbrüche entfernt. Erst dann habe ich gesehen, dass du vor der Weiterleitung noch einen Text ausgeben möchtest, was aber mit einer "reinen" PHP-Weiterleitung nicht möglich ist, da nach einer Textausgabe kein weiterer Header mehr gesendet werden kann.

Deshalb ist die Weiterleitung zum Teil mit HTML gelöst. Hierbei gibt es allerdings ein anderes Sicherheitsrisiko und zwar, dass eingegebener HTML-Code nicht ausgeführt werden darf. Dies erreicht man mit der Funktion htmlspecialchars(). Wenn du das mal testen möchtest, kannst du die beiden Skripts ja mal wie folgt aufrufen:

Code: Alles auswählen

weiterleitung.php?url=http://" /></head><body><script type="text/javascript">alert('Erwischt ;\)')</script>
Ich denke, dann siehst du den Unterschied am besten ;)[/quote]

achso ^^

aber ich habe immernoch das RewriteRule problem :(

Verfasst: Fr 08.Jun, 2007 20:53
von oxpus
Funktioniert es nicht oder kommt was anderes dabei raus?
Hast Du denn auch im Webserver das Modul mod_rewrite aktiv?

Verfasst: Fr 08.Jun, 2007 21:58
von KeineAhnung
[quote="oxpus";p="73661"]Funktioniert es nicht oder kommt was anderes dabei raus?
Hast Du denn auch im Webserver das Modul mod_rewrite aktiv?[/quote]

1. funktioniert garnicht
2. rewrite rule ist aktiv, habe ja dne SEO Url Mod installiert, der braucht das auch.

Verfasst: Fr 08.Jun, 2007 22:11
von oxpus
Und so:

Code: Alles auswählen

RewriteEngine On 
RewriteRule ^weiterleitung\.php\/\?(.*) weiterleitung.php?url=$1 [L]
?

Verfasst: Sa 09.Jun, 2007 13:21
von KeineAhnung
[quote="oxpus";p="73666"]Und so:

Code: Alles auswählen

RewriteEngine On 
RewriteRule ^weiterleitung\.php\/\?(.*) weiterleitung.php?url=$1 [L]
?[/quote]

geht immer noch nicht :(

Verfasst: Sa 09.Jun, 2007 14:45
von oxpus
Naja, LOL, eigentlich braucht man das auch so nicht, schau selber:

Code: Alles auswählen

<?php
if (isset($_GET))
{
	$redirect = array_keys($_GET);
	$url = str_replace("_", ".", $redirect[0]);

	if (substr($url, 0, 7) == 'http://')
	{
		$output = '<html>';
		$output .= '<head>';
		$output .= '<meta http-equiv="refresh" content="5; url=' . $url . '" />';
		$output .= '</head>';
		$output .= '<body>';
		$output .= 'Sie werden in 5 Sekunden zu <a href="' . $url . '">' . $url . '</a> weitergeleitet!';
		$output .= '</body>';
		$output .= '</html>';
		echo $output;
	}
	else
	{
		die ('Die URL muss mit http:// beginnen!');
	}
}
else
{
	die ('Keine URL ausgewählt!');
}
?>
Diese weiterleitung.php kann genau mit Links wie http://www.oxpus.de/weiterleitung.php/? ... .domain.de umgehen und das ohne .htaccess und RewriteRule ;)

Verfasst: Sa 09.Jun, 2007 14:57
von KeineAhnung
[quote="oxpus";p="73674"]Naja, LOL, eigentlich braucht man das auch so nicht, schau selber:

Code: Alles auswählen

<?php
if (isset($_GET))
{
	$redirect = array_keys($_GET);
	$url = str_replace("_", ".", $redirect[0]);

	if (substr($url, 0, 7) == 'http://')
	{
		$output = '<html>';
		$output .= '<head>';
		$output .= '<meta http-equiv="refresh" content="5; url=' . $url . '" />';
		$output .= '</head>';
		$output .= '<body>';
		$output .= 'Sie werden in 5 Sekunden zu <a href="' . $url . '">' . $url . '</a> weitergeleitet!';
		$output .= '</body>';
		$output .= '</html>';
		echo $output;
	}
	else
	{
		die ('Die URL muss mit http:// beginnen!');
	}
}
else
{
	die ('Keine URL ausgewählt!');
}
?>
Diese weiterleitung.php kann genau mit Links wie http://www.oxpus.de/weiterleitung.php/? ... .domain.de umgehen und das ohne .htaccess und RewriteRule ;)[/quote]

geht perfekt, thx.

Welchen Mod muss ich einbauen damit das mit dem phpBB klappt und dme PDF Mod (also das die Links dadrüber geöffnet werden) ?

Verfasst: Sa 09.Jun, 2007 20:45
von oxpus
Welchen Mod muss ich einbauen damit das mit dem phpBB klappt und dme PDF Mod (also das die Links dadrüber geöffnet werden)
???

Verfasst: Sa 09.Jun, 2007 23:11
von KeineAhnung
[quote="oxpus";p="73683"]
Welchen Mod muss ich einbauen damit das mit dem phpBB klappt und dme PDF Mod (also das die Links dadrüber geöffnet werden)
???[/quote]

diesen mod für "anonym.to" anonymisieren.

Verfasst: So 10.Jun, 2007 10:47
von oxpus
Ich kenne keinen solchen MOD. Was macht der genau?

Verfasst: So 10.Jun, 2007 10:51
von AmigaLink
Schau mal hier Karsten. Den Service meint er bestimmt.
Einen MOD dafür kenne ich auch nicht, aber ich habe vor langer Zeit irgendwo mal ein Snippet gesehen das alle URLs über anonym.to schickt.

Verfasst: So 10.Jun, 2007 12:49
von KeineAhnung
[quote="AmigaLink";p="73691"]Schau mal hier Karsten. Den Service meint er bestimmt.
Einen MOD dafür kenne ich auch nicht, aber ich habe vor langer Zeit irgendwo mal ein Snippet gesehen das alle URLs über anonym.to schickt.[/quote]


genau das meine ich, aber ich finde es ncith mehr, wer es findet, bitte hier posten !

Verfasst: So 10.Jun, 2007 14:48
von oxpus
Sowas ist mir auch unbekannt.

Verfasst: So 10.Jun, 2007 16:39
von KeineAhnung
[quote="oxpus";p="73700"]Sowas ist mir auch unbekannt.[/quote]

ahb ihn gefunden, dne meinte ich : http://www.phpbb.com/community/viewtopi ... 346&hilit=

da setzt ich statt anonym.to mein script ein ^^

EDIT: Wie kann ich dafür sorgen, dass das auch im PDF mod funktioniert ?