PHP Dateien / Geschützte Bereiche

...komplette Frage anzeigen

2 Antworten

Eine weitere Alternative wäre, die Textdatei außerhalb des Webverzeichnisses zu speichern. Hier mal ein Beispielcode für eine rudimentäre Passwortabfrage und das Ausgeben der Textdatei bei korrektem Passwort:

<html lang="de">

    <head>
        <title>Nach Passworteingabe Datei einlesen</title>
    </head>

    <body>
        <?php
            # Prüfen, ob der OK Button angeklickt wurde
            if (isset($_POST["loginbutton"])) {
                # Prüfen, ob das eingegebene Passwort stimmt
                if ($_POST['pwfield'] == "password") {
                    # Außerhalb des Webverzeichnisses gespeicherte Datei einlesen und ausgeben
                    echo file_get_contents("/usr/share/bla.txt");
                }
            } else {
                # Login Formular anzeigen
        ?>
                <div align="center">
                    Passwort eingeben:</br></br>
                    <form accept-charset="utf-8" method="post" action="index.php">
                        <input type="password" name="pwfield" style="width:180px" maxlength="32" autofocus></br></br>
                        <input type="submit" value="OK" name="loginbutton">
                    </form>
                </div>
        <?php
            }
        ?>
    </body>

</html>
acdxx 29.11.2014, 14:07

Nachtrag: Aus Sicherheitsgründen für die Abfrage des eingegebenen Passworts lieber folgenden Code verwenden:

if (htmlspecialchars($_POST['pwfield']) == "password") {
0
grumbl 29.11.2014, 16:08

Wenn man jetzt Windows mit xampp hat oder z.B. einen Webserver gemietet ( kein v-Server nur einen mit Interface, ftp...) wo läge dort ein nicht erreichbares Verzeichnis

0
grumbl 29.11.2014, 17:39

bzw. wenn man da noch was reinschreiben will?

0
acdxx 29.11.2014, 17:42
@grumbl

Schreiben ginge mit file_put_contents(), aber wenn du nur Zugriff auf das Webverzeichnis hast, entfällt diese Alternative wohl.

0
  1. variante textdatei: mit der endung .php kann man das machen, ich hab so meine konfigurationsdateien (ini-files) verschleiert:

    ;-)<?php /*    (don't change this line!)  -- 1. zeile
    ; configuration for Time Maintenance        
    [client]
    header     = Time Maintenance
    ...
    ;  (don't change this line) */?>         -- letzte zeile

    durch den trick mit der 1. und letzten zeile bekommt der hacker (direkte ansteuerung durch url) nur ein smily zu sehen ;-), kannst du ja noch ausgestalten, bei mir ist das ; am anfang wichtig weil kommentareinleitung für ini-files. als php script ist das ganze ein /* kommentar */

  2. variante passwortschutz: in das entsprechende verzeichnis eine .htaccess datei anlegen. schau mal, ob das in der webseitenverwaltung unterstützt wird, das wäre am einfachsten. sonst google nach "htaccess password"

grumbl 29.11.2014, 13:51

und wie bekommt dann dan den Text aus der Mitte raus? kann man in php irgendwie von zeile 1-3 lesen?

0
maximilianus7 29.11.2014, 22:44
@grumbl

$lines = file("geheim.php");

for ( $i = 1; $i < count($lines) - 1; ++$i ) echo $lines[$i];   //z.b.

für 2. bis vorletze zeile

0

Was möchtest Du wissen?