Seitenzugriff verweigern
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
angezeigt bekommen
art
aufruf
code
denken
direkt aufrufen
dokument
echtes hindernis
fenster
lange nix
maus
pfad
problem
sandrock
session
sperren
umgehen
unterscheiden
weg
zugriff
-
Ich habe in manchen meinen Scripten mit ajax gearbeitet,
mein Problem ist jetzt, wie bekomm ich es hin das User bestimme Seiten die per Ajax eingebunden werden sollen nicht direkt aufrufen können sondern einen 403 oder so angezeigt bekommen.
Wenn ich es per htaccess schütze kann ich die Seiten auch per ajax nicht mehr aufrufen.
Und per phpself gehts auch nicht das das script nicht unterscheidet ob es per ajax oder direkt aufgerufen wurde.
Gibt es da eine gute Möglichkeit? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Loggen sich diese \"User\" mit PHP ein oder wie läuft das?
Wenn das so sein sollte, kannst du ein Script in dieser Art schreiben, das du dann mit Ajax aufrufst:
<?php if (/* User ist eingeloggt */) { echo \'Inhalt der Seite\'; } else { header(\'HTTP/1.0 403 Forbidden\'); echo \'Fehler 403\'; } ?>
Ansonsten solltest du mal etwas Code posten... -
eine unreine Lösung were es auch, die seite die du mit Ajax aufrufst mit einer
Get Variable aufzurufen(ww.xxx.de/index2.php?variable=wert)
wenn diese seite jetzt ohne diese Variable aufgerufen wird, kannst du die Seite sperren.
Wer also jetzt versucht die seite ohne die variable aufzurufen, kann ausgesperrt werden.
andere kannst mit php und der variable $PHP_SELF herausfinden welches dokument geöffnet ist.
Aber ob dir das weiterhelfen kann weiß ich nicht. Da ich lange nix mehr mit ajax gemacht habe.
Warum möchtest du eigentlich die Seite sperren die Aajax aufruft, was steht in dieser? wozu brauchst du die?
somit könnte man sich vllt noch etwas besser damit beschäftigen. -
Es ist definitiv nicht möglich, das zu unterscheiden. Ein Ajay-Aufruf ist exakt das gleiche, wie ein normaler HTTP-Query. Auch nicht mit Login-System und trallala. Sorg doch einfach dafür, dass es nichts bringt, die Seite nicht mit Ajax aufzurufen. Das ist so ziemlich die eingzige Chance, die du hast.
-
ja ok, thx, aber soweit war ich auch schon.
^^ Also es geht darum das ich möchte das ein script nur ausgeführt werden kann wenn man mit der Maus das Fenster berühert. Wenn man aber den Direktlink aufruft wird das script immer ausgeführt egal ob man jetzt das Fenster berührt hat oder nicht.
Bei $php_self spuck er mir immer den Pfad zum ajax dokument aus.
ich kann mir schon denken das es wege werden gibt das zu Umgehen aber das soll dem User nicht so leicht gemacht werden.
Gibt es vllt. eine Variable die wirklich das beinhaltet was in der Adressleiste steht oder so? -
Du könntest (theoretisch) so etwas machen wie ein Zufallswert, der von PHP generiert und bei jedem euen Aufruf neu ins Ajax-Skript integriert wird und immer per POST übertragen ewrden muss von Ajax. Das ganze vielleicht noch verschärfen, indem das PHP-Skript, was dann aufgerufen wird, einen neuen Wert generiert, der wiederum übertragen werden muss...
Also sozusagen:
Seite wird aufgerufen -> PHP setzt eine Variable als Zufallswert im Skript und speichert sie in der Session
Skript wird aufgeführt, PHP-Seite wird aufgerufen -> PHP setzt den Counter hoch (oder so) und liefert eine neue Zufallsvar, die wiederum in der Session gespeichert wird -> Ajax nimmt den Rückgabewert und speichert ihn in einer Variable für den nächsten Aufruf.
Aber wie gesagt, auch das ist alles andere als ein echtes Hindernis. -
ja ok, thx, aber soweit war ich auch schon.
^^ Also es geht darum das ich möchte das ein script nur ausgeführt werden kann wenn man mit der Maus das Fenster berühert. Wenn man aber den Direktlink aufruft wird das script immer ausgeführt egal ob man jetzt das Fenster berührt hat oder nicht.
Bei $php_self spuck er mir immer den Pfad zum ajax dokument aus.
ich kann mir schon denken das es wege werden gibt das zu Umgehen aber das soll dem User nicht so leicht gemacht werden.
Gibt es vllt. eine Variable die wirklich das beinhaltet was in der Adressleiste steht oder so?
Ich würde einfach eine Session verwenden. Wenn der User über die Seite reingeht, wo es erlaubt ist, wird die Session gesetzt, womöglich sogar erst, wenn er mit der Maus das Fenster berührt, das sollte ja mit Ajax auch kein Problem sein. Und erst wenn die Session gesetzt ist, kann das andere Script aufgerufen werden.
Sicherlich kann man das auch umgehen, wenn man erst manuell das Sessionscript aufruft, aber wenn das nirgens steht, wie es heißt, ist das schon sehr unständlich für den User. -
erstmal ein dickes thx an merovius und tct, ich denke so lässt sich das gut verwirklichen.
ich versuchs mal mit den Sessions, und zusätzlich kann ich ja den Dateipfad in verschiedenen Variablen splitten dann muss man den erstmal suchen ^^ -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage