WinFuture-Forum.de: [ajax] .php Vor Zugriff Schützen - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

[ajax] .php Vor Zugriff Schützen


#1 Mitglied ist offline   ps915 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.119
  • Beigetreten: 17. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 14. Dezember 2008 - 20:57

Hallo,
ich arbeite zurzeit etwas mit Ajax! Meine Frage ist:

Kann man die Dateien, die man per Ajax aufruft, vor direktem Zugriff schützen?

var url='ajax/vote.php?star_nr=' + star_nr + '&page=' + page;
request.open('GET', url, true);


Wie könnte ich nun die vote.php schützen, dass sie nur per Ajax ausrufbar ist, also nicht per Direktzugriff?

Gruß,
Toasterfraktion


0

Anzeige



#2 Mitglied ist offline   [Elite-|-Killer] 

  • Gruppe: aktive Mitglieder
  • Beiträge: 762
  • Beigetreten: 02. Oktober 05
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Passau

geschrieben 14. Dezember 2008 - 21:37

Eine Unique-ID per Get mitgeben, wobei sich mir der Sinn des ganzen nicht so recht erschließt, und ein Direktzugriff damit auch nicht zu 100% ausgeschlossen ist.
0

#3 Mitglied ist offline   b0toxXP 

  • Gruppe: aktive Mitglieder
  • Beiträge: 421
  • Beigetreten: 09. Mai 04
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Mainz/Neuruppin

geschrieben 14. Dezember 2008 - 22:03

Du könntest es so machen wie mit man es auch mit .htusers etc. Dateien machen sollte. Außerhalb des erreichbaren Bereiches deines Webspaces positionieren.

Bei mir wäre das z.B. oberhalb von htdocs/

Dort kannst du dann nur noch per Aufruf drauf zugreifen aber nicht mehr direkt über den Browser.

ODER du packst das ding einfach in ein Verzeichnis welches mittels .htaccess geschützt ist.

Gruß

B0toxXP
Windows Live Mail: 3 Einladungen
Windows Live Messenger: 26 Einladungen (wenn die denn noch gebraucht werden?!)
GoogleMail: 99 Einladungen
Mabber: 10 Einladungen
0

#4 Mitglied ist offline   [Elite-|-Killer] 

  • Gruppe: aktive Mitglieder
  • Beiträge: 762
  • Beigetreten: 02. Oktober 05
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Passau

geschrieben 14. Dezember 2008 - 23:47

Öhm, wenn das Ding durch htaccess geschützt ist kommst ja weder durch den Browser direkt noch per xmlHttpRequest dran?!
0

#5 Mitglied ist offline   ps915 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.119
  • Beigetreten: 17. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 14. Dezember 2008 - 23:59

ja, würde ich auch sagen, denn eigentlich ruft der js-code ja nur unsichtbar für den User die Datei auf, also ob man es direkt machen würde!

Kann man nicht irgendwie Sessions per ajax an die Datei senden?
0

#6 Mitglied ist offline   eNx 

  • Gruppe: Mitglieder
  • Beiträge: 5
  • Beigetreten: 24. Dezember 08
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Köln

geschrieben 24. Dezember 2008 - 23:56

Du fügst in deine ajax/vote.php ein:

CODE
<?
if( isset( $_SERVER['HTTP_X_REQUESTED_WITH'] ) && $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest')
{
echo 'valid ajax request';
}
else
{
die('forbidden');
}


Das sorgt dafür, dass wirklich nur ajax-calls durchkommen. :imao:
(ungetestet auf syntax-fehler etc :()
0

#7 Mitglied ist offline   ps915 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.119
  • Beigetreten: 17. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 25. Dezember 2008 - 00:58

Hey eNx, in $_SERVER['HTTP_X_REQUESTED_WITH'] ist nie ein Wert zu finden. Egal ob ich die .php direkt aufrufe oder per Ajax. Ich muss aber dazu sagen dass ich das mit XAMPP noch am laufen habe, das dürfte aber nicht der Fehler sein!?

Ich denke der Grund dass die Variable leer ist dass das Parameter garnicht übergeben wurde. Ich lege ja selber fest welche Daten per Post-Methode übergeben werden. Wenn Ajax aber die Variable "mitschickt" wäre es ja idel, bei mir ist das aber leider nicht der Fall.

Die .php weiß doch eigentlich nicht ob es nun ein Ajax oder ein Direktuigriff ist, oder?

Gruß und Frohe Weihnachten
Phil

EDIT:

Habe es gerade mit jQuery getestet, da geht es, warum aber nicht bei normalem Ajax-Code, also ohne Framework ?

Dieser Beitrag wurde von Toasterfraktion bearbeitet: 25. Dezember 2008 - 01:07

0

#8 Mitglied ist offline   eNx 

  • Gruppe: Mitglieder
  • Beiträge: 5
  • Beigetreten: 24. Dezember 08
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Köln

geschrieben 25. Dezember 2008 - 03:51

ähm, ja - mein Fehler :imao:
Ich bin davon ausgegangen, dass Du mit jQuery oä den ajax-call abschickst und habe den Ursprungscode wohl einfach überlesen.. Sorry!

Den Aufruf den Du im ersten Post beschrieben hast, ist ja kein direkter "AJAX"-Call, sondern vielmehr ein URL-Aufruf via JavaScript. (Vollkommen konform, aber dennoch eine einfach Abfrage - kein "XML-Request")

Ich empfehle dir so oder so, ein JS Framework genau dafür zu nutzen (Ob jetzt jQuery, Prototype, Y!Tools oä). Der Unterschied liegt wie meistens im Detail :)
Sogut wie jedes JS Framework liefert einen ordentlichen ajax-call ab. Und genau dann hast du auch die richtigen header-varibalen in php.

Dir auch Frohe Weihnachten :(
0

#9 Mitglied ist offline   ps915 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.119
  • Beigetreten: 17. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 25. Dezember 2008 - 11:10

@ eNx
Das trifft sich aber auch gut, hatte es mit einem eigenen Ajax Code getestet und es ist gar kein Problem auf jQuery umzusteigen was ich nun auch gemacht habe.

Bedanke mich trotzdem recht herzlich, hab nun endlich eine Möglichkeit die .phps zu schützen! :-)

Schöne Feiertage,
Toasterfraktion
0

#10 Mitglied ist offline   eNx 

  • Gruppe: Mitglieder
  • Beiträge: 5
  • Beigetreten: 24. Dezember 08
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Köln

geschrieben 26. Dezember 2008 - 17:33

Gerne, freut mich dass es klappt ;(

Dir auch noch schöne Feiertage!
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0