WebsiteBaker Support (2.12.x) > Modules
Swift-Gallery
dbs:
--- Quote ---Es gibt aber noch ein dringliches Anliegen.
Hat man das (egal ob altes oder neues ) Modul und noch keine Gallerie installiert , werden bei Eingabe von z.B. http://localhost/4-seite.php?gallery_id=1 die Dateien in root (localhost/) gelistet. Sowas meldet kein Scanner
--- End quote ---
Hatte ich auch schon mal auf Seite 1 erwähnt:
--- Quote ---Habe in der Adresszeile mal eine gallery_id eingegeben, die es nicht gibt. Da zeigt er statt einer Galerie die URL zum WB upgrade-script.
--- End quote ---
edit: jacobi hatte dafür ja einen Lösungsansatz glaube. Wenn ID nicht vorhanden, schicke zur ersten vorhandenen o.ä..
evaki:
Falls das im Zusammenhang mit der XSS/SQL inject.-Prävention stand, gucke ich mir das nochmal an.
Unter diesem Aspekt hatte ich es zu diesem Zeitpunkt nicht gesehen.
ps. Jetzt hamwer hier bei uns auch 'ne Bezeichnung für das Codeschnippeln gefunden:
"Betreutes Basteln"
MfG. Evaki
jacobi22:
ich verstehe zwar den Sinn dieser Aktion hier nicht mehr, aber egal
--- Quote ---Hat man das (egal ob altes oder neues ) Modul und noch keine Gallerie installiert , werden bei Eingabe von z.B. http://localhost/4-seite.php?gallery_id=1 die Dateien in root (localhost/) gelistet
--- End quote ---
Zur Erklärung (sämtlicher Code basiert auf vers 0.7.2
view php
--- Code: ---$get_content = $database->query("SELECT path,name,description FROM ".TABLE_PREFIX."mod_swift WHERE gallery_id = '".$_REQUEST['gallery_id']."'");
$this_gallery=$get_content->fetchRow();
$gallery_id=$_REQUEST['gallery_id'];
$gallery='/'.$this_gallery['path'];
--- End code ---
$gallery wäre der Pfad. Wurde er gesetzt, steht mindestens /media drin, ansonsten mindestens ein / - damit in keinem Fall leer und dieser Code hier wäre wirkungslos
--- Code: --- if (!empty($gallery)) {
echo '';
}
else {
$gallery = ' ';
}
--- End code ---
ein paar Zeilen tiefer
--- Code: ---$gallery_path=WB_PATH.$gallery;
--- End code ---
$gallery ist nun leer bzw ein /, es bleibt also das Rootverzeichnis über und die nachfolgende Abfrage ist ebenfalls gültig, da der Pfad zum Root ja existiert
--- Code: ---if( is_dir( $gallery_path ) ) {
--- End code ---
wenn du das verhindern willst, gäbe es zahlreiche Möglichkeiten, eine wäre z.b. diese Zeile hier als Ergebnis aus obiger Abfrage (immernoch mit REQUEST :-o )
--- Code: ---$gallery_id=$_REQUEST['gallery_id'];
--- End code ---
Verwendest du hier statt der übergebenen ID die aus dem Abfrageergebnis, könnte man die weiteren Dinge an diese ID koppeln, z.b. Abfragen, ob ein numerischer Wert und ob er größer Null ist
Eine andere Möglichkeit wäre es, alle weiteren Anfragen an das Ergebnis der Zählung etwas weiter oben zu koppeln, dann kommst du aber in die gleiche Falle bei einer ungültigen ID, also wenn wohl Galerien angelegt wurden, die übermittelte ID aber nicht dabei ist
bei mir läuft der Spass so
--- Code: ---$sql = 'SELECT * FROM `'.TABLE_PREFIX.'mod_swift` '
. 'WHERE `section_id` = '.$iSectionId.' '
. 'AND `gallery_id` = '.$iGalleryId.' '
. 'AND `active` = 1 '
. '';
if (($oGalleryItem = $oDb->query($sql))) {
$iLastGalleryId = 0;
while($aGalleryItem = $oGalleryItem->fetchRow(MYSQLI_ASSOC)) {
--- End code ---
der Wichtige Punkt ist die 3. Zeile von unten - auf "deutsch": es geht nur weiter im Code, wenn obige Abfrage ein gültiges Ergebnis liefert. Innerhalb dieses If erfolgt meine komplette Output-Generierung. Wäre das Ergebnis hier ein false (also nix), wird ein leerer Array übergeben - ist somit die sicherste Methode
evaki:
--- Quote ---ich verstehe zwar den Sinn dieser Aktion hier nicht mehr, aber egal
--- End quote ---
Jetzt sind wir genau an dem Punkt wo wir wiederholt waren.
Da wirkst Du nur noch demotivierend auf Menschen, die sich mit WB und Code beschäftigen wollen.
Ich selbst mach das nicht zur persönlichen Freude, wie bekannt, sondern weil ich entsprechende Anfragen bekam.
Das war von meiner Seite das letzte Engagement.
Anfragen und Antworten reiche ich ab sofort nur noch ans Forum weiter, und ansonsten halte ich mich raus. Möglich auch, daß sich jemand aus der Gruppe einen Account holt.
MfG. Evaki
evaki:
Ganz vergessen. "Natürlich trotzdem einen großen Dank für die Erläuterungen" (Y)
Soweit ich erinnere, war
--- Code: ---if (!empty($gallery)) {
echo '';
}
else {
$gallery = ' ';
}
--- End code ---
nur dazu gedacht, einer der ersten php-Warnungen zu beseitigen, also zu sonst nix. Zu diesem Zeitpunkt dachte noch niemand an den folgenden Rattenschwanz.
MfG. Evaki
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version