PHP htaccess schützt nicht richtig

Pfandfinder

Lieutenant
Registriert
Nov. 2020
Beiträge
643
ich habe einen admin-Bereich auf meiner website der mit htaccess geschützt ist. ich kann mit einem Zugriff auf php/delete.php?id=X Daten löschen. soeben ist mir aufgefallen beim Testen, dass die daten direkt gelöscht werden beim Aufruf, obwohl die Anmeldemaske erscheint und ich mich noch gar nicht angemeldet habe. wie kann das sein ? kann man das mit PHP irgendwie prüfen und abfangen ?
 
das sollte der wichtige teil sein

Code:
<Directory />
        Options FollowSymLinks
        AllowOverride None
        Require all denied
</Directory>

<Directory /usr/share>
        AllowOverride None
        Require all granted
</Directory>

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

#<Directory /srv/>
#       Options Indexes FollowSymLinks
#       AllowOverride None
#       Require all granted
#</Directory>




# AccessFileName: The name of the file to look for in each directory
# for additional configuration directives.  See also the AllowOverride
# directive.
#
AccessFileName .htaccess

#
# The following lines prevent .htaccess and .htpasswd files from being
# viewed by Web clients.
#
<FilesMatch "^\.ht">
        Require all denied
</FilesMatch>
 
Das Problem ist
AllowOverride None

Die .htaccess ist hier das Override.
 
  • Gefällt mir
Reaktionen: madmax2010 und Helge01
Genau, AllowOverride All
Deine VirtualHost wäre noch interessant, da man auch dort das festlegen kann.
 
das ändert nichts...
Ergänzung ()

Code:
<VirtualHost *:80>
        # The ServerName directive sets the request scheme, hostname and port that
        # the server uses to identify itself. This is used when creating
        # redirection URLs. In the context of virtual hosts, the ServerName
        # specifies what hostname must appear in the request's Host: header to
        # match this virtual host. For the default virtual host (this file) this
        # value is not decisive as it is used as a last resort host regardless.
        # However, you must set it for any further virtual host explicitly.
        #ServerName www.example.com

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www

        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
        # error, crit, alert, emerg.
        # It is also possible to configure the loglevel for particular
        # modules, e.g.
        #LogLevel info ssl:warn

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        # For most configuration files from conf-available/, which are
        # enabled or disabled at a global level, it is possible to
        # include a line for only one particular virtual host. For example the
        # following line enables the CGI configuration for this host only
        # after it has been globally disabled with "a2disconf".
        #Include conf-available/serve-cgi-bin.conf
</VirtualHost>
 
Zuletzt bearbeitet:
Doofe Frage, aber Ruf mal den Link zum Löschen im neuen Tab auf. Ist da dann auch noch die Anmeldemaske von der .htaccess und wird der Eintrag gelöscht?

Sollte die Anmeldemaske nicht erscheinen, musst du die .htaccess auch in den Unterordner packen.
die schützt lediglich die Dateien die auf der selben Ebene liegen.
 
naja ich öffne einen browser wo ich noch nie angemeldet war mit dem link auf die PHP und da wird es ja direkt gelöscht....
Ergänzung ()

Haggis schrieb:
In welchem Pfad liegt denn die PHP-Datei?
wie meinst du ?
 
/admin/

da ist eine index.php

dann in php/delete.php ist die delete.php

Code:
<Files index*>
AuthType Basic
AuthName "Admin Center"
AuthUserFile /var/customers/webs/customer3/admin/.htpasswd
require valid-user
</Files>
 
also:
/admin/.htaccess
/admin/index.php
/admin/php/delete.php

Richtig?

Ich glaube das Problem ist die .htaccess mit der ersten Zeile wo nur die index.php geschützt ist. (index*)
 
  • Gefällt mir
Reaktionen: Pfandfinder
Wenn im Zweifel: Dinge, die nicht öffentlich erreichbar sein müssen, die kann man
a- per Dateisystembereichtigung "unzugreifbar" machen; und/oder
b- aus dem virtuellen Verzeichnis rausnehmen und durch die Webanwendung referenzieren.

Eine dicke fette Webanwendung kann schon mal nur ein paar kB im virtuellen Pfad haben, da hat der Inhalt desselben nix mit dem Umfang der Anwendung zu tun.
 
Zurück
Oben