Schutz vor unberechtigtem Dateizugriff (mod_xfiles)

Fragen zur Implementierung und/oder Anpassung von ConPresso 4 werden in diesem Forum diskutiert.
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7361
Registriert: 01.01.1970 01:00
Hat sich bedankt: 110 Mal
Danksagung erhalten: 933 Mal
Kontaktdaten:

Beitrag von MarkusR »

dutch hat geschrieben:Aktuell habe ich das Problem, dass ein PDF, das in einem geschlossenen Bereich verlinkt ist, auch über Google gefunden wird... was den Kunden natürlich nicht erfreut :(
Das kann eigentlich gar nicht sein.
Denn Google findet nichts, wozu es keinen Link gibt. Sonst müssten ja Trilliarden mögliche Dateinamen ausprobiert werden.
Vermutlich war die Rubrik eine Zeitlang nicht geschlossen, es gibt einen alternativen Zugriff oder es hat jemand einen Link verbreitet.
Mit dem separaten Verzeichnis meinte ich eigentlich natürlich auch ein geschütztes, in das man die uploads lädt, die in geschlossenen Bereichen verlinkt sind.
Dir ist aber klar, dass ein Verzeichnisschutz mit einer .htaccess realisiert wird?
Das bedeutet also, dass ich auf sehr vielen Standard-Servern keine wirklich sicheren geschlossenen Bereiche anlegen kann?
Eher sehr wenig Standard-Server, da mod_rewrite eigentlich zum Standard gehört. Es sind eher lausige Hosting-Pakete, wo das eben nicht unterstützt wird, um die Kunden auf die teureren Pakete zu treiben. Hoster sind ja nicht doof :wink:

Ich weiß übrigens nicht, wie sich das aktivierte PATHINFO auf die Funktion von mod_rewrite auswirkt.

Ich glaube übrigens nicht, dass die gepostete .htaccess funktionerien kann, da sie eine Endlosschleife produziert, da auch der Zugriff auf cms/_data/download.php umgeleitet wird auf cms/_data/download.php?filename=download.php, der dann wieder umgeleitet wird, der dann wieder umgeleitet wird, der dann wieder umgeleitet wird, der dann wieder umgeleitet wird, der dann wieder umgeleitet wird, der dann wieder umgeleitet wird, der dann wieder umgeleitet wird, der dann wieder umgeleitet wird, der dann wieder umgeleitet wird, der dann wieder umgeleitet wird, der dann wieder umgeleitet wird, der dann wieder umgeleitet wird, der dann wieder umgeleitet wird...
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7361
Registriert: 01.01.1970 01:00
Hat sich bedankt: 110 Mal
Danksagung erhalten: 933 Mal
Kontaktdaten:

Beitrag von MarkusR »

Ich glaube übrigens eher an einen Denkfehler des Webmasters, da ich einfach mal ohne Username und Passwort auf Login geklickt habe und dann das angehängte Bild sehe... mit jeder Menge Links, die ich anklicken kann, da hilft das Meldungsfenster auch nicht...

Hast Du ggf. eine andere Rubrik eingebunden und die ist nicht geschlossen?
Was ist der Inhalt von <div id="contentRechts"> </div> ???
Dateianhänge
mcf.jpg
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
dutch
ConPresso-Experte
Beiträge: 547
Registriert: 04.07.2007 17:12
Hat sich bedankt: 27 Mal
Danksagung erhalten: 7 Mal

Beitrag von dutch »

Hallo Markus,

ja, in die geschlossene Rubrik ist eine zweite geschlossene Rubrik eingebunden. Aber wie ich sehe, an deinem Screenshot, ist die nicht wirklich geschlossen :(
Habe ich da was falsch gemacht bei der Einbindung?

Code: Alles auswählen

<?php 
                // Rubriek Documents kolom rechts
                // Die Parameter
                $rubrikid = 17; // der ID der Rubrik
                $artikelanzahl = 50; // maximale Anzahl der auszugebenden Artikel
                $sortierung = 'sort_id DESC'; // Art der Artikelsortierung
                            
                            
                // ab hier nix mehr ändern
                if (!defined('CPO')) exit;
                            
                $query = "SELECT rubric_id, commentary, verfallsdatum, templates_id, nr, idx, email, autor, pub_datum, titel, initial, freigabe, changer FROM " . CPO_NEWS . " WHERE " . ( $cpoSystem['release'] ? "artikel_archiv<2 AND freigabe=" . STATE_RELEASED : "artikel_archiv<1 AND freigabe!=" . STATE_BLOCKED ) . " AND pub_datum<='" . date('Y-m-d H:i:s', time()) . "' AND verfallsdatum>='".date('Y-m-d H:i:s', time())."' AND rubric_id='".$rubrikid."' ORDER BY ".$sortierung." LIMIT 0," . $artikelanzahl . " ";
                $db = new DB;
                $db->query($query);
                            
                while($db->next_record()) {
                            
                    $db_template      = $db->v('templates_id');
                    $db_nr            = $db->v('nr');
                    $db_idx           = $db->v('idx');
                    $db_email         = $db->v('email');
                    $db_autor         = $db->v('autor');
                    $db_changer       = $db->v('changer');
                    $db_pub_datum     = $db->v('pub_datum');
                    $db_verfallsdatum = $db->v('verfallsdatum');
                    $db_commentary    = $db->v('commentary');
                    $db_titel         = $db->v('titel');
                    $db_initial       = $db->v('initial');
                    $db_freigabe      = $db->v('freigabe');
                    $db_rubric_id     = $db->v('rubric_id');
                    require(CPO_BASEDIR.'_include/select_template.php');
                
                }
            ?>
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7361
Registriert: 01.01.1970 01:00
Hat sich bedankt: 110 Mal
Danksagung erhalten: 933 Mal
Kontaktdaten:

Beitrag von MarkusR »

Den Code hast Du aus einem Thread bei dem im dritten Beitrag folgendes steht:
die Codezeilen kümmern sich nicht um die Einstellungen im Backend und geben das aus, was ausgegeben werden soll, d.h. auch geschlossene Rubriken werden ausgegeben.
Wenn Du diesen Code benutzen willst, dann sollte er nicht in Header oder Footer stehen sondern in einer Kopie vom _rubrik-Verzeichnis in der index.php (frühestens(!) nach dem include von secure.php). Das Verzeichnis muss dann zum Rubrikverzeichnis gemacht werden.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
dutch
ConPresso-Experte
Beiträge: 547
Registriert: 04.07.2007 17:12
Hat sich bedankt: 27 Mal
Danksagung erhalten: 7 Mal

Beitrag von dutch »

Hallo Markus,

danke für den Hinweis!
Dann kann ich auf dem Weg wohl auch keine personalisierten Rubriken einbinden, oder würde das gehen?

Gruß,
dutch
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7361
Registriert: 01.01.1970 01:00
Hat sich bedankt: 110 Mal
Danksagung erhalten: 933 Mal
Kontaktdaten:

Beitrag von MarkusR »

Grundsätzlich lassen sich genau aus dem von Dir demonstrierten Grund mit ConPresso-Bordmitteln (index_php.php und index.js) niemals geschlossene oder personalsierte Rubriken einbinden!

Das Script liest ja einfach nur aus, welche Artikel einer oder mehrerer Rubriken freigegeben sind und gibt sie aus.

Du könntest, wenn JEDER eingeloggte User die Daten sehen darf vor den Code

Code: Alles auswählen

if (!empty($_SESSION['SID_log_login_id'])) {
und dahinter setzen.

Oder Du benutzt den LoggedInUser-Platzhalter im Template
http://www.conpresso4.de/_rubric/detail ... des&nr=500
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
dutch
ConPresso-Experte
Beiträge: 547
Registriert: 04.07.2007 17:12
Hat sich bedankt: 27 Mal
Danksagung erhalten: 7 Mal

Beitrag von dutch »

Danke!
Das hat funktioniert.
Habe die eingebundene geschlossene Rubrik mit

Code: Alles auswählen

if (!empty($_SESSION['SID_log_login_id'])) {
include-code geschlossene Rubrik
}
erfolgreich "versteckt" :wink:

Vielen Dank, Markus!
Habe mal wieder einiges dazu gelernt!

Noch eine abschließende Frage:
Können mit dieser Lösung auch die Suchmaschinen die eingebundene geschlossene Rubrik nicht mehr finden? Oder bleibt das dann immer noch ein Schwachpunkt?

Gruß,
dutch
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7361
Registriert: 01.01.1970 01:00
Hat sich bedankt: 110 Mal
Danksagung erhalten: 933 Mal
Kontaktdaten:

Beitrag von MarkusR »

Suchmaschinen können, insofern sie keine andere Version der Seite geliefert bekommen, nur das sehen, was Du auch im Quelltext der Seite sehen kannst.

Allerdings würde ich mich doch darum kümmern den Dateischutz (.htaccess) zum Laufen zu bringen, da nun ja schon alle Links weltweit bekannt sind.

Im Zweifelsfalle auf ein vernünftiges Paket upgraden oder Hoster wechseln.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
dutch
ConPresso-Experte
Beiträge: 547
Registriert: 04.07.2007 17:12
Hat sich bedankt: 27 Mal
Danksagung erhalten: 7 Mal

Beitrag von dutch »

Tja, das werde ich dann mal mit dem Kunden besprechen müssen. Leider bringen die ihre Hosting-Pakete meistens schon mit...

Vielen Dank für die Hilfe!

Gruß,
dutch
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7361
Registriert: 01.01.1970 01:00
Hat sich bedankt: 110 Mal
Danksagung erhalten: 933 Mal
Kontaktdaten:

Beitrag von MarkusR »

Lass sie ganz einfach mal alle Dateien vom Server löschen, alle Namen ändern, diese dann alle neu hochladen und alle Links neu setzen.

Oder nenne ihnen einen Preis für diese stupide Arbeit, falls Du Argumente brauchst...
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
dutch
ConPresso-Experte
Beiträge: 547
Registriert: 04.07.2007 17:12
Hat sich bedankt: 27 Mal
Danksagung erhalten: 7 Mal

Beitrag von dutch »

Werde ich machen ;)
dutch
ConPresso-Experte
Beiträge: 547
Registriert: 04.07.2007 17:12
Hat sich bedankt: 27 Mal
Danksagung erhalten: 7 Mal

Beitrag von dutch »

Hallo Markus,

noch einmal zur .htaccess:
Die habe ich jetzt nochmal auf einem dritten webspace getestet.
Auch dort wurde mir vom technischen support des Providers bestätigt, dass mod_rewrite in allen Unterverzeichnissen unterstützt wird. Der Support hat sich die .htaccess sogar angeschaut und sah keine Probleme.
Trotzdem funktioniert auch hier die Umleitung nicht. Wird einfach ignoriert und die Dateien lassen sich aus _data direkt aufrufen...

Mache ich noch was falsch oder kann da noch irgendwo was stecken (vielleicht in der download.php) was nicht (mehr) kompatibel ist mit der aktuellen PHP Version oder so...? ... ich stelle einfach mal grobe Vermutungen an... ;)

Gruß,
dutch
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7361
Registriert: 01.01.1970 01:00
Hat sich bedankt: 110 Mal
Danksagung erhalten: 933 Mal
Kontaktdaten:

Beitrag von MarkusR »

Ich kann Dir kaum sagen, was Du falsch machst, wenn Du nicht sagst, was Du alles gemacht hast.

http://www.mcfworld.com/cms/_data/logo.gif
kann ich aufrufen

Beim Aufruf von
http://www.mcfworld.com/
oder
http://www.mcfworld.com/cms/_rubric
erhalte ich aber
The requested URL /download.php was not found on this server.
Nur Durch explizite Angabe von index.php komme ich auf die eigentliche Seite.

Die von mir gelieferte .htaccess gehört ins Verzeichnis _data und sonst nirgends, denn nur dort soll sie Dateien schützen!

Zugegebenermaßen müsste die download.php mal PHP5.4 und CPO 4.1.6 angepasst werden, aber bis dahin sollte einfach nur NICHTS passieren.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
dutch
ConPresso-Experte
Beiträge: 547
Registriert: 04.07.2007 17:12
Hat sich bedankt: 27 Mal
Danksagung erhalten: 7 Mal

Beitrag von dutch »

Mit "NICHTS passieren" meinst du, die Dateien in _data sollten eben nicht geöffnet werden können, oder?

Alle drei Dateien aus deinem zip liegen (schon von Anfang an) in _data.
Eine geschlossene Rubrik wäre z.B. www.mcfworld.com/cms/documents (falls das irgendwie relevant ist)
Was müsstest du noch mehr wissen?

Gruß,
dutch
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7361
Registriert: 01.01.1970 01:00
Hat sich bedankt: 110 Mal
Danksagung erhalten: 933 Mal
Kontaktdaten:

Beitrag von MarkusR »

Der Aufruf von http://www.mcfworld.com/ sagt mir aber, dass da irgendwas im root liegt, was auf eine download.php umleitet!!!

Noch was:
Es werden nur Dateien und Bilder geschützt, die einer geschlossenen Rubrik zugeordnet sind. Es geht also nicht darum, wo sie verwendet werden sondern ob sie einer geschlossenen Rubrik zugeordnet sind.
Mit "NICHTS passieren" meinst du, die Dateien in _data sollten eben nicht geöffnet werden können, oder?
Weißer Bildschirm.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Antworten