Advanced search  

News:

cpg1.5.48 Security release - upgrade mandatory!
The Coppermine development team is releasing a security update for Coppermine in order to counter a recently discovered vulnerability. It is important that all users who run version cpg1.5.46 or older update to this latest version as soon as possible.
[more]

Pages: 1 [2]   Go Down

Author Topic: Coppermine verändert Dateinamen auf dem Server?  (Read 33344 times)

0 Members and 1 Guest are viewing this topic.

Αndré

  • Administrator
  • Coppermine addict
  • ****
  • Country: de
  • Offline Offline
  • Gender: Male
  • Posts: 15764
Re: Coppermine verändert Dateinamen auf dem Server?
« Reply #20 on: November 12, 2010, 12:15:32 pm »

"The topic or board you are looking for appears to be either missing or off limits to you."  8)
Sorry, ich dachte das war im Bug-Board, was jeder einsehe kann/können sollte.


Da kommen zig User mit irrwitzigen Dateinamen an
Das gleiche passiert leider auch beim FTP-Upload, weshalb ein generelles Zurückfahren nicht in Frage kommt. Allerdings könnte man der Funktion replace_forbidden einen Parameter spendieren, den der Batch-Upload übergibt, damit man unterscheiden kann wie die Dateien gerade eingefügt werden (HTTP/Batch). Ich habe den Code gerade nicht im Kopf, daher bin ich mir nicht sicher, ob das möglich ist. Andererseits könnte man die Transliteration etc. ja nur generell abstellen, was ich für nicht gut halte.

Um es festzuhalten: eine (versteckte) Option die es ermöglicht selbst zu bestimmen, ob Dateinamen beim Batch-Add (und nur dort) von "bösen" Zeichen bereinigt werden halte ich für durchaus angebracht.
Logged

Αndré

  • Administrator
  • Coppermine addict
  • ****
  • Country: de
  • Offline Offline
  • Gender: Male
  • Posts: 15764
Re: Coppermine verändert Dateinamen auf dem Server?
« Reply #21 on: November 19, 2010, 01:50:33 pm »

Das ganze ist komplexer als zunächst angenommen. Es kommt noch hinzu, dass man Dateien umbenennen kann. Auch hier greift dieselbe Funktion, was in deinem Fall wiederum zu unerwünschten Ergebnissen führen könnte. Diese ganzen Abfragen fest einzubauen und mit versteckten Konfigurationswerten auszuwerten ist meiner Meinung nach nicht der richtige Weg.

Ein neuer Plugin-Hook ist denke ich mal der beste Weg. Dann kann jeder mit einem Plugin die Abfragen so gestalten, dass er zufrieden ist. Hier ein Entwurf, wie ich gedenke dies umzusetzen:
Code: [Select]
    $condition = array (
        'transliteration' => true,
        'special_chars' => true
    );
    $condition = CPGPluginAPI::filter('replace_forbidden_conditions', $condition);

    /**
     * Transliteration
     */
    if ($condition['transliteration']) {
        require_once('include/transliteration.inc.php');
        $return = transliteration_process($return, '_');
    }

    /**
     * Replace special chars
     */
    if ($condition['special_chars']) {
        $return = str_replace('%', '', rawurlencode($return));
    }

In deinem Plugin kannst du dann z.B. überprüfen, ob es sich gerade um einen Batch-Upload handelt. Sieht dann in etwa so aus:
Code: [Select]
function plugin_code($condition) {
    // Batch-add
    if (defined('ADDPIC_PHP') || defined('SEARCHNEW_PHP')) {
        //$condition['transliteration'] = false;
        $condition['special_chars'] = false;
    }
    return $condition;
}
Logged

lamama

  • Moderator
  • Coppermine frequent poster
  • ****
  • Offline Offline
  • Gender: Male
  • Posts: 404
Re: Coppermine verändert Dateinamen auf dem Server?
« Reply #22 on: November 20, 2010, 12:26:24 am »

Mich irritiert ...

Quote
In deinem Plugin

... ein wenig. Von Plugin-Programmierung hab ich nun sowas von gar keine Ahnung.  ???

Das Plugin macht nix anderes, als beim Batch-Upload die Transliteration bzw. das Filtern auf SpecialChars aus- bzw. anzuschalten? Sind 5 Zeilen Code für nen Plugin nicht etwas wenig? ^^

Wenn Du an alle Betroffenen stellen das einbauen bzw. umbauen mußt wie in "Entwurf" dargestellt und dann den Umweg über ein Plugin gehst, wäre es nicht effektiver, die für's Plugin vorgesehene Funktion irgendwo in die functions.php.inc zu packen?
Logged

Αndré

  • Administrator
  • Coppermine addict
  • ****
  • Country: de
  • Offline Offline
  • Gender: Male
  • Posts: 15764
Re: Coppermine verändert Dateinamen auf dem Server?
« Reply #23 on: November 20, 2010, 08:41:36 am »

Wenn Du an alle Betroffenen stellen das einbauen bzw. umbauen mußt wie in "Entwurf" dargestellt und dann den Umweg über ein Plugin gehst, wäre es nicht effektiver, die für's Plugin vorgesehene Funktion irgendwo in die functions.php.inc zu packen?
Nein. Wie gesagt kann man theoretisch sehr feine Unterscheidungen treffen:
- Wer lädt hoch? (Admin/User, evtl. sogar für einige Benutzer aktivieren/deaktivieren; Batch-add/HTTP-Upload)
- Wer benennt die Datei um? (Admin/User, evtl. sogar für einige Benutzer aktivieren/deaktivieren)

Dies fest mit Konfigurationsvariablen und entsprechenden Abfragen zu verankern ist nicht sinnvoll (und darüber hinaus wahrscheinlich auch fehleranfällig, da ich ggf. irgendwas nicht beachtet habe).

Die Methode über den Plugin-Hook hat einen weiteren Vorteil für uns im Support. Im Debug-Output sehen wir, ob jemand den Hook benutzt hat und können daraus resultierende Fehler (verkorkste Dateinamen) leichter ausfindig machen. Darüber hinaus stößt das Thema "neuer Plugin Hook" auf wesentlich weniger Widerstand als eine neue Konfigurationsoption.

Ein Plugin muss nicht zwangsläufig aus mehreren 100 oder 1000 Zeilen Code bestehen. Es gibt tatsächlich mehrere Plugins die effektiv aus lediglich 5-10 Zeilen Code bestehen. Pluginprogrammierung ist keine Zauberei. Und in deinem Fall wahrscheinlich noch einfacher als mein Beispielcode.


Für wen und wann/wo soll denn das zusätzliche Umbenennen in deiner Galerie deaktiviert werden? Für den alle, immer? Nur für den Admin, immer? Nur für den Admin beim Batch-add, aber beim manuellen Umbenennen von Dateien nicht?
Logged

lamama

  • Moderator
  • Coppermine frequent poster
  • ****
  • Offline Offline
  • Gender: Male
  • Posts: 404
Re: Coppermine verändert Dateinamen auf dem Server?
« Reply #24 on: November 20, 2010, 11:47:55 pm »

Hört sich gut an :)
Logged

Αndré

  • Administrator
  • Coppermine addict
  • ****
  • Country: de
  • Offline Offline
  • Gender: Male
  • Posts: 15764
Re: Coppermine verändert Dateinamen auf dem Server?
« Reply #25 on: November 22, 2010, 03:06:55 pm »

Ist dann in cpg1.5.10 enthalten.
Logged

lamama

  • Moderator
  • Coppermine frequent poster
  • ****
  • Offline Offline
  • Gender: Male
  • Posts: 404
Re: Coppermine verändert Dateinamen auf dem Server?
« Reply #26 on: November 23, 2010, 01:39:06 pm »

Super! Vielen Dank!
Logged
Pages: 1 [2]   Go Up
 

Page created in 0.027 seconds with 20 queries.