WebWork Magazin - Webseiten erstellen lassen, Online Medien, html

Webhoster, Webhosting Provider und Domain registrieren

Home | Registrieren | Einloggen | Suchen | Aktuelles | GSL-Webservice | Suleitec Webhosting
Reparatur-Forum | Elektro forum | Ersatzteilshop Haushalt und Elektronik



Im Homepage und Webhosting-Forum --- Nur bestimmte Variablen zulassen - Wie ??

Scripte und Programme für PHP, MYSQL. Diskussionen zur Programmierung im Web. Fragen zu CMS, Blogsoftware, Shops, Newsletter und vielen weiteren Scripten.

Forum » PHP & MySQL » Nur bestimmte Variablen zulassen - Wie ?? - 23 Nov 2024 Antworten
im Forum für Webhosting Homepage gefunden:
Nur bestimmte Variablen zulassen - Wie ??
TeX
Otto-Normal-Poster




Beiträge: 51

Dann machen wir es noch einfacher und benutzen $_SERVER['DOCUMENT_ROOT']; und lesen anhand von diesem Pfad das Verzeichnis aus?

1: 
2: 
3: 
4: 
5: 
6: 
7:
$_GET[var] ab den letzten / auslesen;
$verz="mein verzeichnis";
if(file_exists($_SERVER['DOCUMENT_ROOT'].$verz."/".$_GET[var].".php")){
  include($_SERVER['DOCUMENT_ROOT'].$verz."/".$_GET[var].".php");
}


Sollte doch passen denk ich.

---
Ankauf leere Toner | Ankauf leere Tonerkartuschen

  Profil   E-Mail   Website   Editieren   Zitieren
subjective
Forenheld




Beiträge: 844

Ich hatte bereits gesagt das man ../ in der GET-Variable verwenden kann. Ob der Document-Root da mit rein gesetzt wird, ist völlig irrelevant. Zumindest auf einem Windows-Server (wenn nicht sogar auf jeder Art von Servern) würde auch ..\ funktionieren.

Eventuell kann man das auch noch andere Zeichen aushebeln (ASCII 0 wäre ein Kandidat). Ich hatte bisher noch keinen Grund alle Varianten auszutesten, da ich ein solches Konstrukt (include über get-param) nie bauen würde.

*btw* Solltest du mal das Error-Reporting auf deinem Testserver auf E_ALL stellen.

---
Weaverslave

  Profil   Website   Editieren   Zitieren
dee123
Otto-Normal-Poster
Threadstarter




Beiträge: 63

Ich bin´s nochmal,
jetzt habt ihr es geschafft: ICH BIN NUN VÖLLIG DURCHEINANDER !!

@subjective: Verrate mir doch mal, wie Du deine Homepage denn aufgebaut hast, ohne includes zu verwenden. Oder hast du eine reine HTML-Seite?

und nochmal an alle anderen: Welches ist denn nun die wirklich sichere Variante?

versteh jetzt gar nix mehr

---
Meine alte Signatur gefiel mir nicht mehr. Darum hab ich jetzt eine neue.

  Profil   Website   Editieren   Zitieren
subjective
Forenheld




Beiträge: 844

Ich habe sehr wohl Includes. Jedoch keine dynamsichen Includes, welche durch Parameter bestimmt werden. Bei mir holen sich die Inhaltsseiten (index.php, talks.php, ...) die zentralen Daten aus Includes (header, footer, menü, ...). Also genau umgedreht. So lange man die Daten im Dateisystem ablegt, gibt es keinen Grund dieses nicht auch auszunutzen.

Dies war füher auch auf der Weaverslave-Seite so, jetzt läuft dort ein WebCMS. Dabei liegt die gesamte Logik (und keine Inhalte) in Klassen, welche nach Bedarf geladen werden - jedoch sind die Dateinamen der Includes fast immer fest im Code.

Es gibt wenige Ausnahmen in denen der Dateiname des Includes eine Variable ist. In diesen Fällen wird der Inhalt der Variable jedoch nicht über einen Parameter, sondern über Daten auf dem Server bestimmt. So bestimmt die Datenbankkonfiguration, welche Datenbankklasse (mysql, pgsql, sqlite) geladen wird. Die zweite Ausnahme sind Plugins für das CMS. Ähnlich wie bei deiner aktuellen Lösung wird hier eine Dateiliste erstellt. Sie landet dann jedoch in der Datenbank.

---
Weaverslave

  Profil   Website   Editieren   Zitieren
dee123
Otto-Normal-Poster
Threadstarter




Beiträge: 63

@subjective:
Ich habs verstanden. Jedoch wäre es ein enormer Aufwand für mich, meine Seite komplett umzustricken.
Wenn ich nochmal auf die "Whitelist" zu sprechen kommen darf: Wäre es also sinnvoll, eine z.B. MySQL-Tabelle anzulegen, die in der ersten Spalte den Dateinamen ( home.php, umfragen. html, info.pdf,..........) und in der zweiten Spalte z.B. eine MD5-Verschlüsselung des Dateinamens enthält?
Somit würde ich die übergebene var in Form:
1:
index.php?site=3245klnsdfl345nlksdjwe45 ( frei erfunden natürlich)
übergeben, das dann mit den Werten der 2.Spalte vergleichen und dann die Datei der ersten Spalte includieren.
Ist das sicher? oder gibt es da auch noch Lücken?
Dank Dir schonmal


---
Meine alte Signatur gefiel mir nicht mehr. Darum hab ich jetzt eine neue.

  Profil   Website   Editieren   Zitieren
languitar
Foren-Team




Beiträge: 2795

Naja, das macht den Aufruf für den Besucher noch furchtbarer und die andere Variante von dir ist hinreichend. Es würde vielleicht schneller gehen, wenn du die List der Dateien eifnach in einer textdatei oder halt in MySQL speichern würdest und hieraus in das Array lesen würdest, weil dann keine langsamen Operationen im Dateisystem gemacht werden müssen.

  Profil   Editieren   Zitieren
TeX
Otto-Normal-Poster




Beiträge: 51

dee123 schrieb am 11.11.2005 13:39
@subjective:
Ich habs verstanden. Jedoch wäre es ein enormer Aufwand für mich, meine Seite komplett umzustricken.
Wenn ich nochmal auf die "Whitelist" zu sprechen kommen darf: Wäre es also sinnvoll, eine z.B. MySQL-Tabelle anzulegen, die in der ersten Spalte den Dateinamen ( home.php, umfragen. html, info.pdf,..........) und in der zweiten Spalte z.B. eine MD5-Verschlüsselung des Dateinamens enthält?
Somit würde ich die übergebene var in Form:
1:
index.php?site=3245klnsdfl345nlksdjwe45 ( frei erfunden natürlich)
übergeben, das dann mit den Werten der 2.Spalte vergleichen und dann die Datei der ersten Spalte includieren.
Ist das sicher? oder gibt es da auch noch Lücken?
Dank Dir schonmal


Jop sollte sicher sein, weil die Verarbeitung nun nichts anderes ist als "statisch". Das gleiche wär wie in meiner index:

1: 
2: 
3: 
4: 
5: 
6: 
7:
if($_GET[var]=="md5-string"){
  include("datei.php");
}elseif($_GET[var]=="md5-string"){
  include("datei2.php");
} u.s.w.


Nun brauchste in Deinem Fall aber nen Script das die Liste aktuell hält, o. machst es von Hand.

Hab das aber nun dynamisch gelöst und zwar ne Funktion erstellt das alles wegschnippelt was kein Buchstabe ist (geht von hinten nach vorn die Var durch). Desweiteren hab ich extra noch nen Array mit den Bösen zeichen erstellt also / und \ u.s.w., alles das wird entfernt und somit sollte das wenig Probs bereiten.

---
Ankauf leere Toner | Ankauf leere Tonerkartuschen

Diese Nachricht wurde geändert von: TeX
  Profil   E-Mail   Website   Editieren   Zitieren
raiserle
Mausakrobat




Beiträge: 172

das mit der sql und dem md5-schlüssel hatte ich schon mal weiter forn erwähnt...
und was soll für die besucher da so schwer sein.....
ihm ist doch egal auf was er da rumklick, oder was in der uri steht.. er muss es ja nicht
verstehen, warum, wieso sich der link zusammensetzt.

...

1: 
2: 
3: 
4: 
5:


---
Irren is Menschlich

Wer andern eine Grube gräbt,
sollte darüber nachdenken,
ob sie tief genug ist!!!!

Kameradschaft ist, wenn der
Kamerad schafft !!!!

Diese Nachricht wurde geändert von: raiserle
  Profil   Editieren   Zitieren
subjective
Forenheld




Beiträge: 844

Das ist so nicht ganz richtig. Solange er nur rumklickt ist die URL relativ egal. Sobald er die URL weitergibt, oder sich daran "erinnern" möchte, sieht die Sache schon ganz anders aus.

---
Weaverslave

  Profil   Website   Editieren   Zitieren
raiserle
Mausakrobat




Beiträge: 172

....
naja, so sehe ich das zwar nicht,a ber du hast in dem sinne ja recht...
aber in dem fall, könnte er entweder die url komplett unter favoriten legen,
oder
er weis halt den link
...

wenn das der fall ist, wird ja nix included
da müsste er halt den fehler abfangen und header("location: .....");
benutzen, das könnter auch verwenden, wenn einer nen reg=(md5, der nicht in mysql ist)
benutzen...


---
Irren is Menschlich

Wer andern eine Grube gräbt,
sollte darüber nachdenken,
ob sie tief genug ist!!!!

Kameradschaft ist, wenn der
Kamerad schafft !!!!

  Profil   Editieren   Zitieren
subjective
Forenheld




Beiträge: 844

Ich habe die Erfahrung gemacht das eine "hübsche" URL sowohl für Kunden wie auch Besucher sehr wichtig ist. Wir haben da bei unserem CMS inzwischen recht viel Arbeit investiert und die Kunden honorieren sie.

---
Weaverslave

  Profil   Website   Editieren   Zitieren
Seite 1 | 2 | 3  

Antworten
Forum » PHP & MySQL » Nur bestimmte Variablen zulassen - Wie ??

Aktuelle Beiträge zur Hilfe im Forum für Homepage - Nur bestimmte Variablen zulassen - Wie ?? im Forum Homepage Hosting AntwortenLetztes Posting
Cybersicherheit für Unternehmen
in "PHP & MySQL"
3 18.11.2024 14:05 von Gaswer
Wirtschaftslage in der Ukraine
in "PHP & MySQL"
3 22.10.2024 15:04 von Gaswer
Rangliste (Ohne Mysql) (Kompliziertes Ordner System)
in "PHP & MySQL"
3 19.07.2021 06:00 von newtopblog
kleines problem mit phpadmin
in "PHP & MySQL"
5 11.04.2021 22:22 von Zavylon
Counter mit PHP
in "PHP & MySQL"
4 22.03.2021 16:29 von Robeni
Fehlermeldung beim Importieren der Datenbank in phpmyadmin
in "PHP & MySQL"
0 02.08.2019 22:14 von iFuchs
CMS für Online Shop
in "PHP & MySQL"
18 26.05.2019 13:29 von raiserle
Regestrierungproblem
in "PHP & MySQL"
3 28.11.2018 13:20 von norbertofahey
PHP Datum ausgeben?
in "PHP & MySQL"
1 19.10.2018 10:04 von Klaus1973
PHP befehl ausführen
in "PHP & MySQL"
11 16.08.2018 09:08 von Klaus1973
Visual Composer selber programmieren?
in "PHP & MySQL"
0 22.01.2017 23:45 von Redji



Besucher : 8127852    Heute : 247     Gestern : 761     Online : 157     23.11.2024    10:29      1 Besucher in den letzten 60 Sekunden        
alle 60.00 Sekunden ein neuer Besucher
Nach oben