Das längste Thema

  • Naja, mehr als 1 Minute googeln kostet sie das aber auch nicht.

    wohin denkst Du, dich werden Teenies auch anstarren wie ein Mondkalb;

    deren IT-Wissen beschränkt sich auf Facebook, YouTube und WhatsApp :D


    und man tauscht keine Nummern aus,

    sondern WhatsApp werden heutzutage ausgetauscht;:D


    und wennst noch mehr angestarrt werden willst wie ein Mondkalb dann

    stelle die Frage nach der Farbe von Kühen¹ od. nach einem IBAN² :D


    ¹ Kühe sind lila, Milka ist der hinreichende Beweis:P

    ² die Wahrscheinlichkeit dass sie hier Papas Kreditkartennummer ausplaudern ist durchaus gegeben;)

    Grüße / Greetings

    Walter H.


    RS, VPS, Webhosting - was man halt so braucht;)

  • Ich war heute fleißig und habe mir endlich mal ein post-install bash-Skript für die immer wiederkehrenden Arbeiten auf den Servern erstellt. :)

    Hat ne Weile gedauert, aber in Zukunft spart mir das Zeit und vor allem nervtötendes Getippe von altbekanntem.;)

    Jetzt ist noch Finetuning angesagt. :)

  • aRaphael ansible soll ja für genau diese Einsatzzwecke super sein, da schon mal reingeguckt?


    Aber ich selbst handhabe es auch so, habe meine ganzen kleinen Helferlein-Scripte in Bash, die mir gut Arbeit abnehmen...aber auf der Todo steht schon ewig, dass ich mir mal ansible näher anschauen sollte. Und ich mach das auch. Wirklich! Irgendwann... ^^

  • PHP
    preg_replace('/[^a-zA-Z0-9\-]/', '', $_GET["var"]);

    Könnte ich jetzt noch auf irgendeine Weiße trotzdem Schadcode in ?var einschleusen oder ist dies nicht mehr möglich?

    ja ist immer noch möglich,

    weil aus Sicht des Programmes schreibst Du den korrigierten Input wohin?


    wieso beendest Du das Skript nicht einfach mit der einfachen Logik?


    Code
    if ( preg_match( "/^[0-9A-Za-z\-]*$/", $_GET['var'] ) == 1 );
    else
    {
      ... // error page
      exit;
    }
    ... // next instruction

    Grüße / Greetings

    Walter H.


    RS, VPS, Webhosting - was man halt so braucht;)

  • Ich habe kein Zugriff auf das Script. Ich weiß nur das die GET-Parameter auf diese Weise geprüft werden.

    das da prüft aber nix

    Code
    preg_replace('/[^a-zA-Z0-9\-]/', '', $_GET["var"]);

    sondern vielmehr

    Code
    $value = preg_replace('/[^a-zA-Z0-9\-]/', '', $_GET["var"]);

    steht dann in der Variable $value genau das um die anderen Sachen (invertierte Regexp '^') reduzierte drin,

    was aber kompletter Unfug ist;

    Beispiel:

    lt. dieser Regexp will man ausschließlich auf Buchstaben (groß und klein), Ziffern und '-' filtern;

    und demnach ist dann z.B. die Eingabe von /?var=+FA-46 gültig,

    weil ja nur das '+' weggefiltert wird, // $value = 'FA-46'

    an Stelle es komplett f. ungültig zu erklären (das macht meine Variante);

    Grüße / Greetings

    Walter H.


    RS, VPS, Webhosting - was man halt so braucht;)

  • Ähm, '^' ist das Metazeichen für "Anfang der Zeile" und nicht invertieren oder?

    Nein, innerhalb einer Klasse ([]) ist es das, wenn es an erster Stelle steht.


    Da sagt es Folgendes aus: Alles, außer die angegebenen Zeichen.

    "Wer nur noch Enten sieht, hat die Kontrolle über seine Server verloren." (Netzentenfund)

  • PHP
    preg_replace('/[^a-zA-Z0-9\-]/', '', $_GET["var"]);

    Könnte ich jetzt noch auf irgendeine Weiße trotzdem Schadcode in ?var einschleusen oder ist dies nicht mehr möglich?

    Ich habe kein Zugriff auf das Script. Ich weiß nur das die GET-Parameter auf diese Weise geprüft werden. Deshalb wäre es interessant zu wissen welche Möglichkeiten zum Umgehen der Eingaben zur Verfügung stehen.

    Ähm, '^' ist das Metazeichen für "Anfang der Zeile" und nicht invertieren oder?

    Nein, innerhalb einer Klasse ([]) ist es das, wenn es an erster Stelle steht.

    Da sagt es Folgendes aus: Alles, außer die angegebenen Zeichen.

    Linktip: Das kann man sich auch schnell online erklären lassen: https://regex101.com (das leere Eingabefeld "Substitution" entspricht genau dem zweiten Parameter in der Quellcodezeile; man beachte hier ggf. auch die fehlende "Escape-Sequenz" \- ? -) :


    regex101_com.png

    VServer IOPS Comparison Sheet: https://docs.google.com/spreadsheets/d/1w38zM0Bwbd4VdDCQoi1buo2I-zpwg8e0wVzFGSPh3iE/edit?usp=sharing

  • aber bitte "IT-Wissen" ich verbessere jeden der sagt, "Die Jugend kennt sich mit der neuen Technik besser aus" halte ich für sowas von falsch. Die können es mir bedinnen, kennen sich aber null damit aus.

    Erinnert mich an meine Jugend und Satellitenempfangsanlagen. Ach was hab ich da herumprobiert, bis ich irgendwann einen Schimmer einer Ahnung hatte. Den Tip gebe ich jedem mit: Man muss stets neugierig sein und wissbegierig bleiben, dann hat man jeden Tag Neues zu entdecken.

  • aRaphael ansible soll ja für genau diese Einsatzzwecke super sein, da schon mal reingeguckt?


    Aber ich selbst handhabe es auch so, habe meine ganzen kleinen Helferlein-Scripte in Bash, die mir gut Arbeit abnehmen...aber auf der Todo steht schon ewig, dass ich mir mal ansible näher anschauen sollte. Und ich mach das auch. Wirklich! Irgendwann... ^^

    never change a running system ?

    ich installiere und administrieren alle meine server ausschließlich mit bash scripten. jede neue Software die ich installiere lege ich anschließend direkt als install_<name>.sh ab inkl. Konfiguration. Seien es nur 3 Zeilen für nen neues repo und nen apt command, bzw. nen kurzer edit der config via sed.


    das spart am Ende Zeit und Geduld. So kann ich dann auf neuen Servern direkt mit einem install Script alle anderen externen scripte sourcen. z.B. initial + fail2ban + telegraf + Docker + Mailcow +msmtp + nginx als reverse proxy konfiguriert. Sämtliche settings liegen in der jeweiligen config (./install <host.cfg>)


    das geht mit andible sicher genau so gut, wenn nicht sogar besser, bzw. inkl. test ob alles durch ist... aber für die Hand voll von Servern... reicht mir bash ?

    Meine Produkte: definitiv zu viele, RS, VPS, Domains, Webhosting, ...

  • Nachtrag: Nicht zu vergessen ist der Einwurf von mainziman, nach dem – sofern der Aufruf von preg_replace nicht aus dem Kontext gerissen ist – der Wert des URL-Parameters "var" überhaupt nicht verändert wird (siehe dieses Beispiel, bei dem man sich den Wert von $zeichenkette ausgeben lassen kann).

    PHP
    preg_replace('/[^a-zA-Z0-9\-]/', '', $_GET["var"]);

    Könnte ich jetzt noch auf irgendeine Weiße trotzdem Schadcode in ?var einschleusen oder ist dies nicht mehr möglich?

    das da prüft aber nix

    Code
    preg_replace('/[^a-zA-Z0-9\-]/', '', $_GET["var"]);

    sondern vielmehr

    Code
    $value = preg_replace('/[^a-zA-Z0-9\-]/', '', $_GET["var"]);

    VServer IOPS Comparison Sheet: https://docs.google.com/spreadsheets/d/1w38zM0Bwbd4VdDCQoi1buo2I-zpwg8e0wVzFGSPh3iE/edit?usp=sharing

  • m_ueberallZusatz wenn man preg_replace an Stelle von preg_match verwendet, dann sollte es schon so gemacht werden ...

    PHP
    if ( preg_replace('/[^a-zA-Z0-9\-]/', '', $_GET["var"]) == $_GET["var"] );
    else
    {
      ... // errorpage
      exit;
    }

    weil dass ich nach dieser "Unprüfung" das $_GET["var"]  konsequent nirgends mehr verwendet wird,

    glaub'ich nicht, dazu kenn ich meine Pappenheimer nur zu gut;

    Grüße / Greetings

    Walter H.


    RS, VPS, Webhosting - was man halt so braucht;)