kostenloser Webspace werbefrei: lima-city


Seitenzugriff verweigern

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    thecity

    Kostenloser Webspace von thecity

    thecity hat kostenlosen Webspace.

    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?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. sandrock-jonas

    Kostenloser Webspace von sandrock-jonas

    sandrock-jonas hat kostenlosen Webspace.

    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...
  4. g*****y

    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.
  5. t*****b

    @gblacky: Sehr sicher, ein Blick in das JavaScript und schon hat man Zugriff auf die Seite. Er braucht das logischerweise für Seiten, für die nur eingeloggte User Zugriff haben sollen.

    Man löst das genauso wie von sandrock-jonas geschildert.
  6. m******s

    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.
  7. Autor dieses Themas

    thecity

    Kostenloser Webspace von thecity

    thecity hat kostenlosen Webspace.

    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?
  8. m******s

    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.

  9. 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.
  10. Autor dieses Themas

    thecity

    Kostenloser Webspace von thecity

    thecity hat kostenlosen Webspace.

    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 ^^
  11. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!