Prüfen von wo (Domain) eine Funktion aufgerufen wird

tombe

Erfahrenes Mitglied
Hallo,

ich möchte einem bestimmten Personenkreis eine auf meiner Domain vorhandene Funktion zur Verfügung stellen. Hierbei soll aber beim Aufrufen der Funktion geprüft werden von welcher Domain aus der Aufruf erfolgt.

Sonst könnte ja einfach Person A hergehen und Person B sagen wie der Aufruf/die Funktion in die Seite eingebunden wird und derjenige könnte das bei sich auch einbauen.

Mit REFERER komme ich da ja nicht weiter, gibt es da irgendeine Lösung

Vorab schonmal Danke

Thomas
 
Die Frage ist, ruft der Server des Freundes die Funktion auf oder der Client?

Wenn es der Server ist, könntest du per [phpf]gethostbyaddr[/phpf] und der IP den Server verifizieren und den Zugriff erlauben.

Falls es der Client ist, wird es da kaum eine andere Möglichkeit geben, als mit Passwörters o. ä. zu arbeiten.
 
Hi Flex,

habe das jetzt mal probiert.

Habe auf "www.isen-gard.de" eine Seite zum testen angelegt und damit die Funktion aufgerufen.

Als Rückgabewert von gethostbyaddr erhalte ich jetzt "bigip-fo.rzone.de" !!

Im Prinzip scheint es ja zu funktionieren aber kann mir jetzt einer erklären was dieser Rückgabewert zu bedeuten hat. Ich dachte das ich jetzt den Domainnamen erhalte.
 
Wenn du den Referer benutzt dann hast du einen 0%igen Schutz.
1. Kann man Referer deaktivieren
2. Kann man Refefer manipulieren
3. Kann der Angreifer genauso wie deine Freunde auf die 1ste Seite gehen und von dort aus auf die Funktionsseite

Mach am besten ein Passwortgeschützten Bereich.
Wird das beste sein.

Wenn du von http://www.isen-gard.de aus einen Link auf deine Seite setzt, dann müsste er dir auf deiner Seite auch als Referer http://www.isen-gard.de angeben.
Das komische ist aber dass es die Domain bigip-fo.rzone.de nicht gibt.
Es gibt allerdings 303 Treffer bei Google in denen diese Domain in der Statistik bzw in den Logs stehen.

Rein theoretisch hast du als gethostbyipadrr http://www.isen-gard.de zu stehen.
Wenn du nun auf deiner Seite den Referer prüfst und der mit http://www.isen-gard.de übereinstimmt führst du die FUnktion aus ansonsten bringst du einen Fehler.
Aber wie gesagt es ist SEHR unsicher.

Du könntest schon mit ein paar Zeile Code das SCript 10x sicherer machen.
PHP:
if($_GET['secure']=="ultimativespasswort")
{
echo "Du kannst die Seite nutzen";
}
else
{
echo "Nix is";
exit;
}

MFG
Sandro
 
Hi Sandro,

einen Link kann ich nicht nehmen.
Das ganze soll so sein, das Du jetzt z.B. auf Deiner Homepage per

PHP:
include "www.meineseite.de/meinefunktion.php"
$wert = funktion(parameter1, parameter2)

die Funktion einbindest und aufrufst.

Ich will jetzt immer wenn die Funktion ausgeführt wird am Anfang prüfen ob Deine Domain die Berechtigung hat die Funktion auszuführen.
 
Achsooo...
Sag das doch gleich ;)

Das kannst du ganz easy mit define machen.

Beispiel:

In dem Script deiner Hompage einfügen:
PHP:
define('INSCRIPT', true);
include "www.meineseite.de/meinefunktion.php"
$wert = funktion(parameter1, parameter2)
und in die meinefunktion.php
PHP:
if(!defined("INSCRIPT"))die("falscher aufruf");
Wenn man lieber keine Fehlermeldung haben will, kann man auch autom. die index.php anzeigen
PHP:
if(!defined("INSCRIPT"))header("Location: index.php");

Wenn du fragen dazu hast dann frage ;)

MFG
Sandro
 
Also die Funktion [phpf]gethostbyaddr[/phpf] erwartet eine IP Adresse!

Falls du mit der Domain arbeiten willst, solltest du [phpf]gethostbyname[/phpf] benutzen, der schaut ob die Domain eine entsprechende IP Adresse hat. (Die du ja ggf. vorher mit einem Ping erfahren kannst)
 
Was mich interessieren würde, wenn ich von meinem Webspace aus die PHP-Datei eines anderen einbinde, dann kann ich doch nicht den Code bzw die Funktionen seines Scriptes nutzen oder?
Man includet doch nur die Ausgabe des PHPParsers bzw die Webseite die vom Webserver erzeugt wurde. Aber doch bestimmt nicht den Code der PHP.

MFG
Sandro
 
Ich weiß ja nicht, wie er es realisieren will, aber grundsätzlich wäre es möglich, den Request zu authentifizieren, danach ihm einen Codesnippet zuzuschieben, dass der Client per [phpf]eval[/phpf] ausführen kann.

Allerdings ist dann die Frage, was hindert den anderen daran, sich die Funktion direkt zu holen?
Bzw. wo der Sinn darin liegt ;)

Allerdings kann man mit PHP durchaus Client <-> Server Kommunikation ermöglichen, siehe das FaDzProjekt z. B.

Dann sollte man sich aber wirklich mit HTTP Authentifizierung auseinandersetzen und sich damit eine Lösung realisieren.
 
Ich weiß ja nicht, wie er es realisieren will, aber grundsätzlich wäre es möglich, den Request zu authentifizieren, danach ihm einen Codesnippet zuzuschieben, dass der Client per [phpf]eval[/phpf] ausführen kann.

Allerdings ist dann die Frage, was hindert den anderen daran, sich die Funktion direkt zu holen?
Bzw. wo der Sinn darin liegt ;)

Allerdings kann man mit PHP durchaus Client <-> Server Kommunikation ermöglichen, siehe das FaDzProjekt z. B.

Dann sollte man sich aber wirklich mit HTTP Authentifizierung auseinandersetzen und sich damit eine Lösung realisieren.

Danke für die Info.
Eigentlich ist es easy und selbsterklärend aber man muss erstmal drauf kommen.. :)


MFG
Sandro
 
Zurück