Datenschutz Impressum

NOF-Schule | Forum

zur Schule NOF-NetObjects-Tutorials von Tommy Herrmann


Dateilinks in DropDownliste
#1
Ich beschäftige mich gerade damit, eine Seite zu erstellen, mit der Mitglieder Beiträge mit TinyMCE für eine andere Seite erstellen können... Das funktioniert soweit auch (bisher) alles, wie es soll - Bin noch nicht fertig, aber ein Punkt nach dem anderen...

Große Hilfe war mir (wie fast immer) Tommys Tutorial

Jetzt bin ich aber an einem Punkt, wo ich  im Moment nicht weiterkomme und eure Hilfe brauche:

Auf http://hosting130165.a2e1c.netcup.net/admin.php werden alle TXT-Dateien aufgelistet und können in den Editor geladen werden:

PHP-Code:
[code]<?php
   
foreach(glob("./news/*.txt") as $filename)
 
  {
 
      echo '<br><a href="./admin.php?file=' $filename '">' '<b>' basename ($filename,'.txt') . '</b>' ' zum Ändern öffnen</a><br>';
 
  }
?>[/code] 
das funktioniert prima! - Soweit so gut... aber je mehr Dateien umso länger die Seite - das ist sehr besch... eiden!
Ich dachte da an ein DropDown-Feld...
PHP-Code:
[code]<form action="<?php echo $_SERVER['PHP_SELF']; ?>">
 <
label>Deine bestehende Beiträge
 <
select name="file">
 <?
php
   
foreach(glob("./news/*.txt") as $filename)
 
  {
 
      echo '<option><a href="./admin.php?file=' $filename '">' basename ($filename,'.txt') . '</a></option>';
 
  }
 
?>
 </select>
 </label>
        <input type="submit" name="load" value="Text laden" />
</form>[/code] 
Die Dateien werde auch hier alle aufgelistet... - Problem habe ich damit, daß ich die  korrekte Verlinkung zum Einlesen in den Editor nicht hinbekomme...
Korrekt: http://hosting130165.a2e1c.netcup.net/ad...170555.txt
Falsch: http://hosting130165.a2e1c.netcup.net/ad...Text+laden

Kann mir jemand helfen? - Was mache ich falsch?? - Was muss wie lauten???

LG Alex
Wer etwas erreichen will sucht Wege, wer etwas verhindern will sucht Gründe !
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
#2
Du bekommst bei der Verwendung der "Drop-Down List" über die URL nur file=20200920-115753.

->Den Rest musst Du dann hier
http://www.tommyherrmanndesign.com/nof/T...-00002.jpg
nur zufügen.

Also
file=20200920-115753
file=./news/20200920-133623.txt

<?php echo file_get_contents("./news/" . $_GET['Dateiname'] . ".txt"); ?>

Für's speichern muss dann der Name auch noch angepasst werden.

... das ganze ist schon fast 10 Jahre alt, KA ob das noch sicher ist!
Ggf. hat Tommy da was von Werner was besser passt und aktuell ist.
->Überleg erst mal ob Du das tatsächlich verwenden willst dann guck ich noch mal drüber wo überall Änderungen gemacht werden müssen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
#3
Das Problem hast du richtig analysiert Smiling
Nur... ich nutze NOF nicht mehr (EOL)

Wie kann ich das frei programmiert korrigieren?
Es muss doch irgendwie möglich sein, den ausgewählen Eintrag in eine URL-Maske zu kriegen, a la

<button> <a href="./admin.php?file=./text/ . $optioneintrag . .txt">Text laden</a> </button>
Allein die richtige Lösung fehlt mir - das krieg ich im Moment vor verzweiflung irgendwie nicht hin...

LG Alex

- edit -

Ja willich / soll so... das wird später noch gefiltert und gesichert...
Es geht jetzt hier nur um das korrekte aufrufen, damit die Datei geöffnet und eingelesen werden kann.
Ich glaue, ich hab da was im Hirn geblitzdingst... ich versuch mal was...
Wer etwas erreichen will sucht Wege, wer etwas verhindern will sucht Gründe !
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
#4
Ich würde options wie hier verwenden:
https://www.w3schools.com/tags/tryit.asp...tml_option

D.h. es werden über die URL nur die reinen Dateinamen ohne Endung übergeben.

In der admin.php Seite wird dann der Dateiname um den Pfad und die Endung ergänzt und der wird dann weiter verwendet.

$Dateiname = "./news/" . $_GET['Dateiname'] . ".txt";

Guck Dir doch mal das vom Werner an:
https://werner-zenk.de/archiv/mysql_nachrichten.php

Nicht vergessen, wer auf die admin Seite darf darf alles!
https://de.wikipedia.org/wiki/Directory_Traversal

Jetzt sieht's besser aus, vorher konnte man vermutlich eine neue .php Datei mit beliebigen Inhalt anlegen oder eine .htaccess auch ändern wenn man das in der URL passend eingetippt hat.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
#5
Juhu... mein Bitzdings im Gehirn war richtig - jetzt funktionierts, wie gewollt...

Allerdings war die Schwachstelle  ein paar Zeilen tiefer in der Zeile, wo der Dateiinhalt durch $newsData zerlegt und gefüllt wird.

Für die Datei(Link)-Auflistung muss es heißen
$newsData = file($_GET['file']);
weil hier der gesamte Pfad (file=) aus der URL als ganzes entnommen wird.

Beim DropDown ist es aber ja nur der Dateiname (mit Absicht) ohne Endung...
Also muss file= statisch ergänzt & hinzugefügt werden - sprich so umgeschrieben werden:
$newsData = file("./news/" . $_GET['file'] . ".txt");
Der Rest in der URL (nach &) kann ja bzw. wird verworfen. - Das werde ich noch säubern (und mehr).
Wer etwas erreichen will sucht Wege, wer etwas verhindern will sucht Gründe !
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
#6
(24.09.2020, 19:07)Klaus2 schrieb: Jetzt sieht's besser aus, vorher konnte man vermutlich eine neue .php Datei mit beliebigen Inhalt anlegen oder eine .htaccess auch ändern wenn man das in der URL passend eingetippt hat.

Anlegen nicht und ändern nur, wenn die Datei mit dem genauen Pfad bekannt wäre, aber ich bin ja och nicht fertig...
Noch ist alles offen, weil es mir jetzt erstmal um die Funkrtionen geht.
Es soll in den internen Mitgliederbereich rein... da werden noch Sessionvariablen hinzukommen und einiges filtern und die Seite wird durch den LogIn entsprechend geschützt werden.

Ich danke dir... du hast mir den richtigen Weg gezeigt und ich konnte zur Lösung finden Smiling

LG Alex
Wer etwas erreichen will sucht Wege, wer etwas verhindern will sucht Gründe !
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren




Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
nach oben An den Anfang der Seite scrollen
NetObjects Fusion Infos, Downloads und Updates Diese Website wird durch Bot-Trap vor Spam geschützt!