zugriff nur auf die index.php

Alles, was den Apache betrifft, kann hier besprochen werden.

zugriff nur auf die index.php

Postby thesecondjoker » 12. December 2005 00:43

hi,

ich habe eine dringende frage. als ich vor einigen monaten anfing mich mit dem apache zu beschäftigen habe ich es irgendwie hinbekommen, dass man nur die index.php aufrufen konnte, indem man die ip bzw. den localhost angibt, man konnte aber keine dateien direkt aufrufen, sondern nur über die website.
wenn ich das noch richtig in erinnerung habe, dann konnte ich das unter windows machen, indem ich bei <directoryindex ...> vor die zeile index ein - gesetzt habe, sodass die ganze zeile nicht funktioniert (korrigiert mich, falls ich falsch liege).

nun habe ich den server auf eine suse 9.3 realisiert und leider funktioniert das mit dem - nicht. ich bekomme dann beim neustart des apache eine fehlermeldung, dass die zeile bzw. das zeichen ungültig ist.

mein problem ist einfach, das meine login-abfrage quasi nutzlos ist, da man die seiten im verzeichnis htdocs alle direkt über die url aufrufen kann.

hat jemand ne idee? ich möchte ungern die variante mit dem abfrageprompt wählen, denn die benutzer verwalte ich über eine datenbank!

bin für jeden vorschlag dankbar!

gruß
thesecondjoker
thesecondjoker
 
Posts: 5
Joined: 12. December 2005 00:15

Postby KingCrunch » 12. December 2005 08:17

htaccess, Allheilmittel für sowas ;)

Code: Select all
<Files *>
Order Deny, Allow
Deny From All
Allow From None</Files>
<Files index.php>
Order Deny, Allow
Order Deny,Allow
Deny From None
Allow From All
</Files>

Im ersten Schritt verbietest du den Zugriff auf Alle Dateien, im zweiten erlaubst du den Zugriff auf index.php wieder.
Nicht jeder Fehler ist ein Bug ...
KingCrunch
 
Posts: 1724
Joined: 26. November 2005 19:25

Postby deepsurfer » 12. December 2005 13:50

KingCrunch wrote:htaccess, Allheilmittel für sowas ;)

Code: Select all
<Files *>
Order Deny, Allow
Deny From All
Allow From None</Files>
<Files index.php>
Order Deny, Allow
Order Deny,Allow
Deny From None
Allow From All
</Files>

Im ersten Schritt verbietest du den Zugriff auf Alle Dateien, im zweiten erlaubst du den Zugriff auf index.php wieder.


müsste nicht das erste "Allow From None" nicht
"Allow From localhost" heissen ?, denn sonst verbietet man doch auch den Server selber eine andere Datei aufzugreifen die mittels verweis im normalen Code aufgerufen wird.

Also so...
Code: Select all
<Files *>
Order Deny, Allow
Deny From All
Allow From localhost
</Files>
<Files index.php>
Order Deny, Allow
Order Deny,Allow
Deny From None
Allow From All
</Files>
chirio Deep
Wie sagte einst der MCP aus Tron auf dem Bildschirm zu schreiben Pflegte
" ... end of communication ... "
User avatar
deepsurfer
AF Moderator
 
Posts: 6440
Joined: 23. November 2004 10:44
Location: Cologne
Operating System: Win-XP / Win7 / Linux -Debian

Postby KingCrunch » 12. December 2005 14:51

Daüber wurde ich letztens erst hier in diesem Forum eingehend aufgeklärt: Wenn du Dateien nachlädst (inlcude, require,...), dann lädt (zB) PHP diese Dateien übers Dateisystem. Mit den Direktiven schränkst du nur die Dateien ein, auf die von aussen zugegriffen werden darf oder nicht darf.

Ich seh grad: Im zweiten Files-Block hab ich nen "Order .." zuviel drin.

Du kannst noch bestimmte Bilder (oder alle *.jpg,...) bzw .css freigeben.

Wenn du selbst an den Rechner sitzt und über den Browser darauf zugreifen willst, dies aber anderen nicht erlauben möchtest, dann kannst du "Allow from localhost" natürlich drin lassen.
Nicht jeder Fehler ist ein Bug ...
KingCrunch
 
Posts: 1724
Joined: 26. November 2005 19:25

Postby deepsurfer » 12. December 2005 18:13

thesecondjoker wie schauts aus ??
chirio Deep
Wie sagte einst der MCP aus Tron auf dem Bildschirm zu schreiben Pflegte
" ... end of communication ... "
User avatar
deepsurfer
AF Moderator
 
Posts: 6440
Joined: 23. November 2004 10:44
Location: Cologne
Operating System: Win-XP / Win7 / Linux -Debian

Postby thesecondjoker » 12. December 2005 22:45

hallo leutz,

vielen dank für euere hilfe...das hört sich bisher sehr gut an.

habe noch keine zeit gehabt, dass auszuprobieren, werde das aber wohl noch heute testen. melde mich dann auf jeden fall, ob das problem gelöst ist oder nicht.

gruß
thesecondjoker
thesecondjoker
 
Posts: 5
Joined: 12. December 2005 00:15

Postby thesecondjoker » 12. December 2005 23:29

hab das nun mal ausprobiert.

das klappt aber nicht! ich geb mal nähere daten an!

also soweit ich das noch in erinnerung habe, muss die .htaccess doch in mein documentroot...das habe ich gemacht.

in meinem documentroot befindet sich die index.php und viele weitere ordner, z.b. die ordner src, inc, gfx etc.
alle documente und dateien befinden sich in diesen unterordnern, außer der index.php

    /htdocs
      index.php
      gfx
        test.jpg
        test2.jpg
      inc
        fonts.css
        function.inc
      src
        os.txt
        sonstiges.txt

so sieht quasi mein stamm aus. ich vermute, dass das ganze nicht mehr funktioniert, wenn ich die entsprechenden dateien noch in unterordnern habe.
vielleicht ist meine htaccess auch einfach nur falsch...;-)

kann mir bitte mal jemand anhand dieser daten eine komplette htaccess schreiben?
also nochmal, man soll nur auf die index.php zugreifen können, aber auf keine datei innerhalb der unterordner oder auf die unterordner selbst, sodass man quasi nur über den http://hostname oder ip-weg gehen kann und nicht mir direkten pfaden.

gruß
thj
thesecondjoker
 
Posts: 5
Joined: 12. December 2005 00:15

Postby thesecondjoker » 13. December 2005 01:14

bin ein bissl weiter gekommen....

hatte in der httpd.conf noch

AllowOveride None

stehen. dies habe ich auf All geändert, anschließend griff er auf die htaccess erst zu.
dann funktionierte das ganze zunächst wieder nicht, weil ich wie oben beschrieben, zwischen deny, und allow ein leerzeichen hatte, also

Order Deny, Allow

das wollte er also auch schon mal nicht. aber scheinbar ist das nicht so richtig kaskadierend, wie es ja sein müsste, also dass er die letzte einstellung, die gemacht wurde übernimmt, in diesem fall, nachdem alle files geblockt werden für jeden, wieder die index.php freigeben für alle.

hieran bin ich nun hängen geblieben.

meine htaccess sieht momentan so aus

Code: Select all
<files *>
order deny,allow
deny from all
allow from none
</files>
<files index.php>
order deny,allow
deny from none
allow from all
</files>


aber das funtzt net!

bitte wieder mal um hilfe!

gruß
tsj
thesecondjoker
 
Posts: 5
Joined: 12. December 2005 00:15

Postby KingCrunch » 16. December 2005 13:25

Bin mir nicht eindeutig sicher, ob der Apache da unterscheidet, aber: Groß-/Kleinschreibung?
Code: Select all
<files *>
Order Deny,Allow
Deny From All
Allow From None
</files>
<files index.php>
Order Deny,Allow
Deny From None
Allow From All
</files>
Probeweise (Xampp Win?) mal statt "files *" "files *.*" verwenden.
Nicht jeder Fehler ist ein Bug ...
KingCrunch
 
Posts: 1724
Joined: 26. November 2005 19:25

Postby Hanjo » 07. January 2006 01:00

Ich schieb das mal nach oben...

Ich habe das gleich Problem, es scheint jedoch, dass
Code: Select all
<Files *>
Order Deny,Allow
Deny From All
Allow From None
</Files>
eine höhere Priorität als
Code: Select all
<Files "index.php">
Order Deny,Allow
Deny From None
Allow From All
</Files>
bekommt. Hat noch jemand eine Idee *hoff*

thx
Hanjo
Hanjo
 
Posts: 18
Joined: 30. November 2003 11:01

Postby Wiedmann » 07. January 2006 01:04

Bevor wir zu einer Lösung gehen... das muss aber eine nackte Homepage sein, wo nicht mal Bilder mit eingebunden sind?
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Hanjo » 07. January 2006 01:05

Hehe, is ein Skript zum SMS versenden, da verzichte ich auf solche Gimmicks :-P
Hanjo
 
Posts: 18
Joined: 30. November 2003 11:01

Postby Wiedmann » 07. January 2006 01:19

Könnte man z.B. so machen:
Code: Select all
Order allow,deny
<Files "index.php">
    Allow from all
</FilesMatch>
Deny from all
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Hanjo » 07. January 2006 10:57

Klappt leider auch nicht:
Serverfehler!

Die Anfrage kann nicht beantwortet werden, da im Server ein interner Fehler aufgetreten ist. Der Server ist entweder überlastet oder ein Fehler in einem CGI-Skript ist aufgetreten.

Sofern Sie dies für eine Fehlfunktion des Servers halten, informieren Sie bitte den Webmaster hierüber.

Error 500
hanjo.is-a-geek.net
07.01.2006 10:51:37
Apache/2.0.55 (Win32) mod_autoindex_color mod_ssl/2.0.55 OpenSSL/0.9.8a PHP/5.0.5 mod_perl/2.0.1 Perl/v5.8.7


Naja... die übliche Fehlermeldung eben...
Hanjo
 
Posts: 18
Joined: 30. November 2003 11:01

Postby KingCrunch » 07. January 2006 12:23

"index.php" ohne Anführungszeichen?
Nicht jeder Fehler ist ein Bug ...
KingCrunch
 
Posts: 1724
Joined: 26. November 2005 19:25

Next

Return to Apache

Who is online

Users browsing this forum: No registered users and 4 guests