keine htm per urleingabe aufrufen...

Metallica

Lounge-Member
hi leuts,

ich hab 'ne sonderbare (wie immer;)), aber für mich SEHR WICHTIGE frage:

ich will verhindern, dass der user zB eine swf oder htm aus einem meiner unterverzeichnisse per url-eingabe aufrufen kann.
soll heißen: wenn er zB im browser www.mydomain.com/dir1/my.swf eingibt, dann soll 'ne fehlermeldung kommen (zB access denied oder so).
ABER - und jetzt kommts - wenn er direkt auf www.mydomain.com den link zu my.swf anklickt, dann solls aber funktionieren.

wie kann ich das bewerkstelligen?

ps:das ich den pfad mit der htaccess sperren kann, ist mir klar.
aber dann funtzt der link direkt von meiner startseite weg auch nicht, ABER von da weg soll's ja funken.
 
Zuletzt bearbeitet:
ok, aber dann gibt der user halt www.domain.com/swf.php?file=intro ein und bekommt die swf??

oder meinst du mit der htaccess generell das ganze dir sperren (dann kann der user eingeben was er will) und über den link auf der startseite rufe ich dann die swf.php auf?

übrigens: das ist ja arg, das htaccess php nicht blockt. sicherheitslücke OLE!:eek:
 
Metallica schrieb:
übrigens: das ist ja arg, das htaccess php nicht blockt. sicherheitslücke OLE!:eek:
htaccess ist eine Datei, die der Webserver interpretiert (Webserver != PHP Interpreter)
Mit PHP ist es ja auch möglich /etc/passwd auszulesen, eine noch viel größere Sicherheitslücke!

Wenn Du mit Deinem Skript erreichen willst, daß die SWF oder was auch immer nicht mehr heruntergeladen werden kann, dann vergiß es! es gibt nur eine funktionierende Möglichkeit dies zu erreichen: Stell es nicht auf einen Webserver!! Obwohl es Ansätze gibt dieses auch zu umgehen..... :D
Du kannst allerdings verhindern, daß der Benutzer Deine Verzeichnisstruktur erkennen kann, oder er mitbekommt, wie die Originaldateien heißen. Wenn Du geschickt programmierst kannst Du lediglich eine einzige, zentrale PHP Datei nach "außen" freischalten, die, mit unterschiedlichen Parametern aufgerufen, einmal HTML, einmal SWFs und einmaöl Bilder zurückliefert. Ist halt ein bißchen Aufwand in die Planung zu stecken, damit das machbar wird.
 
@Albu
na toll ist das. ich steh total auf PHP und hab auch alles damit gemacht. aber dass man zB die pw-datei auslesen kann is 'ne KATASTROPHE! das so'nen angriff/request von außen der provider nicht verhindern kann, verstehe ich allerdings nicht ganz.

zum meinem problem:
"nicht auf den webserver laden..." => wenn das die einzige lösung ist, dann ist das erschütternd.
alles umprogrammieren, damit man den pfad nicht erkennt wäre 'ne möglichkeit. kannst du mir hierfür ma ein kurzes bsp. posten? hab null vorstellung!
 
Metallica schrieb:
@Albu
na toll ist das. ich steh total auf PHP und hab auch alles damit gemacht. aber dass man zB die pw-datei auslesen kann is 'ne KATASTROPHE! das so'nen angriff/request von außen der provider nicht verhindern kann, verstehe ich allerdings nicht ganz.
wenn jemand dateien auslesen kann, hast du einen argen bug in deinem code!

zu deinem grundproblem: du willst, dass besucher deiner page den film anschauen aber nicht herunterladen können (wie denn das??) oder du willst, dass sie den film sehen, aber die verzeichnisstruktur nicht?? was von dem willst du?
 
was hat das mit 'nem argen bug in meinem code zu tun wenn die htaccess php-requests "durchläßt"?

zum meinem problem/was ich erreichen will:
es geht um ein kleines (unkommerzielles) flash-spiel dass ich für meine community gemacht hab.
der user kommt auf meine index.htm und klickt dort das game an. bevor es startet, gibt's ein kleines eingabefeld (is 'ne andere swf), in dass er seine startpunkte eingeben muss. danach wird die variable von flash an php übergeben. php schreibt den wert in eine start.php die wiederum das game aufruft. und die fla lädt sich dann mit dem startwert via LoadVariables.
das problem:
wenn jetzt der nächste user kommt, und den pfad zur game.swf/htm eingibt, dann startet sein spiel mit dem startwert vom vorigen user und genau das will ich verhindern.

ich will den user quasi "dazu zwingen", dann er das game immer nur beginnen kann wenn er über den link auf der index.htm (der zum startformular führt) kommt.

sodala, ich hoffe, es war verständlich!?
 
Zuletzt bearbeitet:
hmm, du könntest mit flash eine random-id erzeugen und in der start.php in der session speichern. wenn jemand die swf-datei aufruft und start.php geladen wird, aber die bemerkt, dass die id fehlt, gibt sie etwas aus, was wiederum flash dazu bringt, einen redirect zu machen. (hui ist das ein satz:D)
 
Metallica schrieb:
was hat das mit 'nem argen bug in meinem code zu tun wenn die htaccess php-requests "durchläßt"?

nochmal deutlicher: htaccess hält absolut dicht!! Eine PHP Datei die von htaccess geschützt ist kannst Du auch nicht im Browser aufrufen, egal was Du versuchst!
Allerdings kann PHP auf das Dateisystem zugreifen und somit den htaccess Schutz umgehen, der ja nur gegen Browserzugriff sichert.

Metallica schrieb:
zum meinem problem/was ich erreichen will:
es geht um ein kleines (unkommerzielles) flash-spiel dass ich für meine community gemacht hab.
der user kommt auf meine index.htm und klickt dort das game an. bevor es startet, gibt's ein kleines eingabefeld (is 'ne andere swf), in dass er seine startpunkte eingeben muss. danach wird die variable von flash an php übergeben. php schreibt den wert in eine start.php die wiederum das game aufruft. und die fla lädt sich dann mit dem startwert via LoadVariables.
das problem:
wenn jetzt der nächste user kommt, und den pfad zur game.swf/htm eingibt, dann startet sein spiel mit dem startwert vom vorigen user und genau das will ich verhindern.

ich will den user quasi "dazu zwingen", dann er das game immer nur beginnen kann wenn er über den link auf der index.htm (der zum startformular führt) kommt.
Anstatt den User über so einen unsicheren Mechanismus zu schicken, solltest Du es lieber ordentlich programmieren, dann kannst Du Dir diese Krücke schenken!
Also wenn der User über ein Formular einen Startwert eingeben muß, dann würd ich das entweder in die Spiel SWF integrieren oder von der Eingabe SWF das Spiel nachladen, so daß hier eine direkte Übergabe nach erfolgtem Ladevorgang möglich wird.
Also vergiß den LoadVariables Kram mal schleunigst und machs ordentlich! ;)
 
@rasputin
geht so nicht weil ja die random-id in der start.php drinnen stehen bleibt. da müßte nach jedem start des games die random-id aus der start.php rausgelöscht werden aber ob das funtzt bezweifle ich.

@albu
du hast vollkommen recht und es ist mir auch völlig klar, dass alles kein problem wäre wenn es ein swf wäre. das übergeben und rausschicken von var's stellt ja immer die sicherheitslücke dar.
warum ich's nicht so machen kann ist schnell erklärt: ich verlinke vom startformular (wo der user den startwert eingibt) noch auf 'ne andere site (wegen speicherplatzproblemen auf lycos) und handle dort alles (weil ich dort 'ne DB hab wo auch alles geloggt wird). soll heißen: von dieser anderen site wird die start.php beschrieben und das fla.game auf meiner eigentlich site gestartet.
ich hab mir echt schon den kopf zerbrochen, weiß aber nicht wie ich das noch anders lösen könnte!
 
ja??

So ganz hab ich das zwar nicht verstanden, aber wenn auf dem eigentlichen Spieleserver eine DB vorhanden ist, und Du ehh nur dorthin verlinst, dann kannst Du doch auch gleich die komplette Flash Geschichte dort hosten. Dadurch hast Du keine Problem mit Flashs Sandbox und Du kannst die Parameterübergabe am Client vornehmen, wo sie hingehört. Notfalls könntest Du es auch über eine Session machen, aber das würde mehr Aufwand verursachen, als sich mal eben schlau zu machen, wie das in Flash lösbar ist und es dann einzubauen.
Was anderes ist es natürlich, wenn die Leute sich sowieso einloggen sollen und erst dann spielen dürften.
 
hmmm, also einloggen tut und braucht sich niemand. bin ja kein webshop oder so!

an der verlinkungs-sache kann ich nix ändern. ein kumpel hat mich damals mit der DB auf einem server "eingeschleust". das war eine einmalige sache. jetzt hab ich das so wie ich's damals wollte und mehr geht nicht.

konkret: an der verlinkung und am handling ist da nix mehr zu machen.
das problem: nachdem der user einen startwert eingeben muss und ich den in der DB logge, ist es unumgänglich, dass ich in flash mit loadVariables arbeite und für die funktionalität php verwende.
alles im swf handeln hört sich gut an, aber wie soll ich vom swf aus in die DB schreiben, etc. da brauch ich eben php. und in dem moment wo variablen zwischen php/sql und flash hin und hergeschickt werden, ist mir klar, dass es unsicher ist. aber wie gesagt - ich weiß ECHT keine andere lösung!
 
Zurück
Oben