Swift-Gallery

evaki

Quoteheißt aber nicht, das es so bleiben muß
Weshalb Du ja was neues machst, und ich "nur" versuche - man vergesse nicht, daß ich Laie bin - das 2006er-Modul an die aktuelle Umgebung anzupassen. Wobei dann immer wieder so'n büsschen Lerneffekt dabei ist. Programmieren überlaß ich sinnvollerweise denen die's können.
(Das hatte ich mal gaaaanz früher, auf 'ner komplett anderen Schiene, weshalb das Mitdenken an einigen Stellen noch fruchtbar ist. Das isses dann aber auch schon.)
MfG. Evaki

Gast

nur mal theoretisch  - $REQUEST ist beides, GET und POST. Bekannt ist die Funktion der beiden Variablen, es wird die Galerie-ID und der Startwert übergeben, jeweils eine Zahl. Wir wissen weiterhin, das dies nur per GET vom Original-Script kommen kann, also macht man die POST-Tür schon mal zu, indem man kein $REQUEST nimmt.
Ohne die Festlegung auf numerisch kann jeder Wert gesendet werden, also auch eine SQL-Injection, ein Javascript usw. Diese würde aber nicht gehen ohne Buchstaben und/oder Sonderzeichen. Auf Anhieb kenn ich da keine, die so funktionieren würde.
Natürlich ließe sich auch der obige Code noch weiter optimieren, in dem man z.b. die in Frage kommenden Gallery-ID und die Range der möglichen Startwerte ausliest, dann dürfte als Beispiel gallery_id nur die Werte 1,2,4 und 5 haben (weil ich nur diese Galerien angelegt habe), nicht etwa 3 und auch nicht 6 und Start dann nur 1,11,21, 31 usw, nicht aber 32 oder 38.
Und kommt ein Wert falsch an, weil bewußt versucht, etwas anderes als das Erlaubte zu versuchen,  oder fehlerhaft übermittelt, am Schluß dann die Absicherung auf die Default_Gallery-ID und den Startwert 0 bzw 1

Aber wie du oben schon sagtest, ist seit 2006 so und vom Grundprinzip arbeiten alle Module mit Seiten-Pagination ähnlich - heißt aber nicht, das es so bleiben muß  ;-)

evaki

#32
@jacobi22
Dein Beispiel kam gerade recht, als ich merkte, daß ich direkt bei der gallery_id ansetzen muß,
  - (Schlußfolgerung aus dem "ich probier das mal mit Filtern"-Schnellschuß) -
Schön, daß ich mich nun mit den Unterschieden von $_REQUEST,  $_GET und $_POST beschäftigen darf, statt Schoppen zu gehen  :roll:
Das Leben könnte soooo schön sein.

Da kommt noch was: Sehe soeben, daß -ich habs über request gemacht, - die XSS + injection Meldungen ausblieben. Das wichtigste scheint an dieser Stelle wohl die Verknüpfung/Bedingung (AND is_numeric) zu sein (da jaulte der Scanner) Falls die Galerie jetzt noch immer funktioniert,  könnte es das gewesen sein. Nochmal 'nen kompletten Durchlauf machen.

MfG. Evaki

evaki

#31
QuoteDieses ist nach Speichern nicht mehr ausgewählt, weshalb nochmaliges Speichern wegen zB Änderung des Titels, ein leeres Verzeichnis speichert.
Genau das war mMn schon in der Vorlage so.
Wenn man aber das zum Galerienamen gehörende Verzeichnis anwählt, und dann den Titel ändert, scheint es zu funktionieren, wenn ich recht erinnere. Ist natürlich doof, wenn man dafür erst ins FE gucken muß. Das war aber genau das, was mir schon früh auffiel.

Da ich nun den Sicherheitsschei... an der Backe habe, geht das erstmal vor.
"htmlspecialchars" war ein Schnellschuß, da der mir anscheinend wg. der Konvertierung die Syntax zerhaut. Ich weiß genau, warum ich mir das php-Zeugs im "normalen" Leben nicht antue.
Mit'm Hammer und Nägel kann man ein ganzes Haus zusammenbauen. (ich weiß, mit php auch  :-D :-D :-D )


dbs

Deine Lösung bezog sich aber nicht auf mein Problem, oder?
Da wäre die modify.php der richtige Ort, denn es geht ja um das ausgewählte Verzeichnis. Dieses ist nach Speichern nicht mehr ausgewählt, weshalb nochmaliges Speichern wegen zB Änderung des Titels, ein leeres Verzeichnis speichert. Hab ich wohl schlecht ausgedrückt und war vlt. auch vorher schon so.
[url="https://onkel-franky.de"]https://onkel-franky.de[/url]

evaki

Quotenatsort() blieben ja auch ungelesen
Nein, da irrst Du. Lokal ist das hier drin, aber mehrfach nicht übernommen worden.
Soweit ich erinnere, gab es eine Fehlermeldung wg. Klammer, wobei dann versehentlich nicht nur die Klammer weg war. Passierte komischerweise heute schon wieder.  Kommt am Ende aber wieder rein !

So, nun mach ich erstmal Pause.

Gast

hab eigentlich nicht mehr vor, mich da rein zu hängen und die Tips um natsort() blieben ja auch ungelesen

übergeben wird per Get die Gallery-ID und der Start-wert - beides hat Null Absicherung aktuell (hab gestern das letzte Mal in eure scripte geschaut)

aus dem Code der Vers.2.0.0.dev1, die grad im Test bei ein paar Leuten ist. Der Code müßte dann auf die Varablenamen der alten Swiftversion angepasst werden

if (isset($_GET['gallery_id']) AND is_numeric($_GET['gallery_id'])) {
        
$iGalleryId = (int)$_GET['gallery_id'];
    } else {
        
$iGalleryId $aTwigdata['settings']['default_gallery'];
    }

    
    if (isset(
$_GET['start']) AND is_numeric($_GET['start'])) {
        
$iStart = (int)$_GET['start'];
    } else {
        
$iStart 0;
    }

evaki

#27
Hab dat Dingens anscheinend gefunden.
view.php
    <?php
if ($number_of_galleries>1) {
$i=0;
foreach($db_array as $gall) {
echo("<a href=\"?gallery_id={$gall['gallery_id']}\">{$gall['name']}</a>");
$i++;
if ($i<$number_of_galleries) echo(" - ");
}
}
?>


Das (echo("<a href=\"?gallery_id   ) muß nach erstem Eindruck wohl mit "htmlspecialchars" gesichert werden.
Hat jemand färtisch, bevor ich färtisch?


Jo >>>>>>> Ich habe anscheinend färtisch

MfG. Evaki

dbs

QuoteAnscheinend ist das Teil noch nie auf Sicherheit getestet worden
Da solltest du dich an unseren Sicherheitsbeauftragten evaki wenden. Aber der macht eigentlich was er will.  8-)
[url="https://onkel-franky.de"]https://onkel-franky.de[/url]

evaki

Falls nix besonderes mehr kommen sollte - hab' ich selbst noch 'ne Überraschung.
Anscheinend ist das Teil noch nie auf Sicherheit getestet worden, nun schon.
Mal schauen, ob ich dafür 'nen Fix hinbekomme. Falls nicht, werde ich 'nen DEV drum bitten.
Was nun konkret vorliegt, wird natürlich erst nach 'nem Fix bekannt gegeben.

Aber keine Panik bitte, wenn von 2006 bis heute nichts Aufregendes passiert ist...
MfG. Evaki

evaki

#24
QuoteNochmaliges Speichern meint zB wenn der Galerie Titel geändert wird.
Das habe ich aktuell zumindest nicht mehr gemacht, ::hu::
Meine mich aber zu erinnern, daß auch schon vorher.....
Da es nicht wirklich etwas kaputt macht, könnte man es so lassen - wenn schon auch vorher...
Manche Sachen entdeckt man erst, wenn man dran rumfummelt -ähm...
Die "eigentlichen" Funktionen - bis auf count() und ein zusätzlicher Tabelleneintrag - wurden nicht angetastet! Alles andere über "feindliche Übernahme" geregelt, also bestehende Variable in eine neue kopiert/übernommen, und damit eigenständig weitergearbeitet/ergänzt.

Hoffentlich wird jetzt kein Rattenschwanz draus.

Vielleicht kann BBS2 mal den Vergleich OLD/NEU starten.
MfG. Evaki

dbs

QuoteDu meinst im BE? Falls ja, hätte es m.E. sich schon in der 0.6 so verhalten.
In einer Vorversion fiel mir das nicht auf. Aber ich würde da nicht drauf wetten.

QuoteAber ansonsten funktionieren die Galerien? (Bei mir zumindest schon  :-D )
Quote from: dbsMoin, hab 2 Galerien erstellt. Fehlermeldungen vorn oder hinten nicht zu sehen. Galerien funktionieren.
;)

Nochmaliges Speichern meint zB wenn der Galerie Titel geändert wird.
[url="https://onkel-franky.de"]https://onkel-franky.de[/url]

evaki

#22
QuoteAber der Pfad bleibt nicht erhalten
Du meinst im BE? Falls ja, hätte es m.E. sich schon in der 0.6 so verhalten. Das wäre dann etwas für die Coder, zu schauen ob das so überhaupt programmiert wurde. Hatte ich schon unter anderen Topic mal erwähnt - glaub ich wenigstens...
Aber ansonsten funktionieren die Galerien? (Bei mir zumindest schon  :-D )

QuoteNochmaliges Speichern würde also das vorher gewählte Verzeichnis entfernen.
Hat mich auch irritiert wg. Reihenfolge. Wenn, dann immer neue Galerie und dann Vergabe. Mußte mal durchprobieren. So ganz konsequent in der Handhabung scheint das nicht an jeder Stelle durchdacht zu sein, oder es ist noch'n Fehler offen  - neu oder durchgeschleppt -   :evil:

MfG. Evaki

dbs

Moin, hab 2 Galerien erstellt. Fehlermeldungen vorn oder hinten nicht zu sehen. Galerien funktionieren.
Aber der Pfad bleibt nicht erhalten, nach Speichern ist er leer. Nochmaliges Speichern würde also das vorher gewählte Verzeichnis entfernen.
[url="https://onkel-franky.de"]https://onkel-franky.de[/url]

evaki

#20
Die  swift_gallery_v0.7. 1-dev hat gegenüber den bisherigen Fixes noch einen korrigierten Tabelleneintrag, der den fehlerhaften Zustand nach Installation/Unnamed Gallery betrifft.
(Das betraf das an anderer Stelle erwähnte Verhalten bei Ersterstellung einer Galerie, was mich irritierte.)
Sieht so aus, als wenn der Fehler schon länger durchgeschleppt wurde, was ja nicht so selten vorkommt.

Man könnte das default Verzeichnis /media auch auf /media/swift ändern. Wäre "eleganter", weil leer. Kann ja ein Nachfolger machen, falls gewünscht...
MfG. Evaki

evaki

Anbei für'n Test das komplette Modul: swift_gallery_v0.7.1-dev

Wäre nicht schlecht, wenn ich damit dann "durch wäre".
Unter sql strict wurde das Modul  von mir übrigens nicht getestet.
MfG. Evaki

evaki

gehst du in view.php
zeile: echo $SWIFTTEXT['PATH'].': ',$gallery_url;
echo "<br>";
machst du
//echo $SWIFTTEXT['PATH'].': ',$gallery_url;
//echo "<br>";

färtisch

MfG. Evaki

bbs2

Hallo,

ich haben heute eine neue Swift-Gallery eingestellt. Diese läuft testweise mit der neuesten view_09dev und der
save-Version vom 9.3.2019 (1a)
Im frontend und backend zeigt sich bis jetzt kein Fehler. Siehe:

https://bbsiikl.de/pages/schulleben/unterrichtsprojekt-gemeinsam-lernen/bildergalerie-gemeinsam-lernen.php?gallery_id=91&start=10

Schön wäre es, wenn die Pfadangabe je nach Wunsch deaktiviert werden könnte.

Viele Grüße

Heinz Werner

Gast

Ich stell das hier mal rein...

Auf Basis der letzt bekannten Module-Version SwiftGallery v0.6 hab ich das Modul mal neu aufgesetzt. Minimum WB-Version ist WB 2.12.0, eine zweite Version, die ebenfalls fertig ist, setzt auf die demnächst erscheinende WB 2.12.2 auf. Diese bietet u.a. andere Möglichkeiten im Dateihandling innerhalb der neuen Module.
Da diese WB-Version aber noch nicht offiziell ist, mußte ich hier noch einmal rückbauen. Die Nachfolgeversionen werden aber als Minimum WB 2.12.2 haben.
Bei den PHP-Versionen habe ich bis PHP 5.6.1 getestet, aufwärts bis PHP 7.3.1

Idee des Moduls
Mit diesem Modul können Verzeichnisse unter /media ausgelesen werden. Die ermittelten Grafiken werden in einer Galerie dargestellt, das jeweils erste Bild als großes Bild, alle weiteren als Thumbnails je nach CSS daneben oder darunter. Die Bildgrößen vom Hauptbild und den Thumbnails ist definierbar, ebenso die Anzahl der Bilder pro Seite. Möglich ist ein Galerie-Name und eine Galeriebeschreibung. Beides kann über die Moduleinstellungen ein- und ausgeschaltet werden.
Das Modul benutzt keine Third-Party-Scripte wie z.b. JQuery-Effekte

Unterschiede zur Vorgänger-Version 0.6:
- Positionen der Galerien in der Reihenfolge veränderbar - damit wäre die Menü-Darstellung weiterer Galerien in dieser Sektion veränderbar
- Möglichkeit zum Anlegen einer Bildtitelliste (kann auch als kurze Bildbeschreibung verwendet werden). Die Beschreibung erscheint im title-Attribute des großen Bildes
- Galerien können aktiv/inaktiv geschaltet werden
- das Modul legt beim Install einen Ordner "swift" unter media an, in dem neue Bilder abgelegt werden können, einen Zwang zur Nutzung gibt es aber nicht
- bei der Galeriebeschreibung wird ein Wysiwyg-Editor eingesetzt
- die Standard-Galerie kann in der Übersicht und auch in den Moduleinstellungen geändert werden

Die neue Moduleversion ist kompatibel zur Ausgangs-Version 0.6. Die vorhandenen Einstellungen werden übernommen

Zum Bild-Titel noch:
in den Gallery-Einstellungen gibt es ein Textfeld - pro Zeile ein Eintrag. Das Textfeld bezieht sich auf alle Bilder im gewählten Verzeichnis, also 100 Bilder = 100 mögliche Zeilen. Eine Leerzeile macht den Titel für dieses Bild leer - Ist dieser Bildtitel leer oder wurde überhaupt keiner angegeben, erscheint der Dateiname

Ein paar Bilder
Modulübersicht - Backend -> https://i.gyazo.com/511e2040a37e6f116e313ebd853eface.png
Galerie bearbeiten -> https://i.gyazo.com/baee10304b5d080e9dfa3f0b034dbc00.png
Galerie Einstellungen -> https://i.gyazo.com/cd5c6fef52ce1a7c2ca7ca9278b82dae.png
Frontend-Ausgabe -> https://i.gyazo.com/3408b8f31edf45f3e22d76aa0e881b9e.png

Wie gehts weiter?
Das Modul läuft z.Z. noch in ein paar privaten Test's auf verschiedenen Servern. Vergessen hab ich wohl die Absicherung auf Grafiken, war im alten Modul auch nicht drin, ist aber schnell gemacht. Nach Abschluß meiner Testerei geht es noch an ein paar andere Tester und je nach Rückmeldungen werde ich es dann zeitnah hier veröffentlichen. Wer Interesse hat, kann sich ja per PN melden. Ich bin mir zwar sicher, das alles so läuft, wie erwartet und habe mittlerweile auch schon diverse und auch komplexe Uprades gefahren, empfehle aber dennoch für den Test eine nicht öffentliche Version und keine Produktiv-Seite

Wie auch das Vorgänger-Modul, verwendet die neue Version keinerlei Fremdscripte, z.b. für JQuery-Effekte. Es kann aber, das nötige Wissen vorausgesetzt, mit wenig Aufwand und auch überschreibungssicher bei Upgrades mit wenig Aufwand erweitert werden, z.b. mit einer Colorbox.

Für Anregungen, Erweiterungsvorschläge etc ruhig auch eine PN nutzen

bbs2

Hallo,

der Hinweis im Forum auf den möglichen Fehler mit der Variable $start war wohl richtig.
Mit der festen Belegung $start=0 scheint es zu funktionieren.
Ich habe alle swift-Galleries im frontend aufgerufen. Die error-log bleibt bis jetzt leer.

Vielleicht hat jemand im Forum Interesse, das Modul, evtl. die Version Swift2, 0.66, auf den heutigen Stand zu ertüchtigen.
Meine php-Kenntnisse reichen dazu leider nicht aus. Das Modul wäre es wert.

Viele Grüße
Heinz

evaki

Und "PHP Fehlerberichte: Development" unter Optionen eingestellt?
Falls ja, mal die Galerie im Frontend aufrufen, und dann im error-log reinschauen.


ps.Ich muß jetzt erstmal an den Backofen: Käse mit Preiselbeeren in Blätterteig. Sind schön anzusehen und schmecken!

Sehe gerade, daß jacobi22 online ist. Der kann Dir dazu viel mehr sagen als ich.
MfG. Evaki

bbs2


evaki

#12
Was ist denn nun installiert, v0.6 oder v0.6.6.0?
Und "PHP Fehlerberichte: Development" unter Optionen eingestellt?
MfG. Evaki

bbs2

Danke für die viele Hinweise.

Ich habe mal die Variabel $start generell auf 0 gesetzt.
$start=0;
Ob dies in allen Nutzungsumgebungen funktioniert kann ich leider nicht beurteilen.
Bisher läuft es bei mir fehlerfrei.

Gruß
Heinz


evaki

#10
@bbs2
Der Link zeigt auf v0.6.6.0,
$module_name "Swift Gallery 2"
$module_directory   = "swift2";
Ist also eine andere Baustelle.

Betreff v0.6
Mit ein paar Korrekturen sind Fehlermeldungen wie "Parameter must be an array or an object that implements Countable" unter php7.2 nicht mehr zu sehen.

Ob unter v7.3 Lauffähig wurde noch nicht getestet.
Es gäbe auch noch Änderungen Funktionen betreffend zu tätigen. (Z.B. sectionID wegen mehreren Modulen auf einer Seite)
Da das Teil bis dato bei "uns" funktioniert, kommt der nächste Aufschrei evtl. mit dem Wechsel zur nächsten PHP-Version.