Michael Wölk: Gästebuch-Eintrag per E-Mail

Hallo,

Nachdem ich jetzt meinen Webspace wieder zum laufen gebracht habe, kam mir die idee einen GB-Eintrag per E-Mail zu realisieren.

So schwer dürfte das nicht sein.

1. jemand sendet eine email an das pop3 fach
   E-Mail -> POP3-Fach

2. Bei jedem Aufruf von index.php wird das POP3-Fach auf neue einträge gecheckt und trägt die emails in die Datenbank ein.
   POP-Fach -> DB

index.php liest die DB ein und gibt ein GB aus.
   DB -> HTTP

die frage ist nur:

  • wie lese ich die emails in eine variable oder so ein?

Mit freundlichen Grüssen
Michael Wölk

---------------------------------------------------------------------

Für alle die noch wissen wollen wies mir so geht nach der tollen aktion:

Beschissen!

2 Stunden Arbeit.
BackUp 8 EUR.

da sieht man mal was für Arschlöcher doch hier im forum rummachen. Klar wars mein fehler, aber warum muss dann so ein depp mir den ganzen websapce zerschiesen. Die .htaccess kam leider ein wenig zuspät aber trotzdem danke an diese Person! Das ist die einzige Person die wirklich verstand hat!

Der PHP-Tester war fürn Kumpel der das lernen wollte und ich hatte bedenken dass sowas jemand machen könnte, aber warum bin ich auch so blöd und teile den link vielen fremden menschen mit.

ich hab halt gedacht die selfhtml leutz machen sowas nicht und warnen mich vorher.

ich möchte den PHP-Tester trotzdem Online stellen, jedoch müsste ich dazu wissen welche begriffe ich sperren muss damit sowas nicht mehr vorkommt. oder ist komplett schwachsinn? ich denke mal wenn begriffe wie 'unlink' usw sperrt dann kann man den php tester wieder online stellen oder? zur sicherheit evtl. noch mit anmeldung. was haltet ihr davon.

---------------------------------------------------------------------

  1. Hi,

    • wie lese ich die emails in eine variable oder so ein?

    Mailzugriffe sind (sinnigerweise, ähem) in den imap_*-Funktionen gekapselt.

    Für alle die noch wissen wollen wies mir so geht nach der tollen aktion:

    Versteh mich bitte nicht falsch, aber: Wovon redest Du?

    ich hab halt gedacht die selfhtml leutz machen sowas nicht und warnen mich vorher.

    Die "SelfHTML-Leutz" sind Leute wie Du und ich und das sCr1pT-k1dDi3 von nebenan. Dieses Forum ist öffentlich.

    ich möchte den PHP-Tester trotzdem Online stellen, jedoch müsste ich dazu wissen welche begriffe ich sperren muss damit sowas nicht mehr vorkommt. oder ist komplett schwachsinn? ich denke mal wenn begriffe wie 'unlink' usw sperrt dann kann man den php tester wieder online stellen oder?

    Eine Whitelist ist besser als eine Blacklist. Definiere, was _erlaubt_ ist, nicht, was _nicht_ erlaubt ist.

    Cheatah

    --
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hi,

      Für alle die noch wissen wollen wies mir so geht nach der tollen aktion:
      Versteh mich bitte nicht falsch, aber: Wovon redest Du?

      [pref:t=48684&m=265531]

      cu,
      Andreas

      --
      Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
      http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
      1. Hi

        aua, was hat er denn da gemacht? Was für ein phptester? Und warum bin ich gerade gestern abend im Kino gewesen? :(

        Gruß Christoph

        --
        Ich bin ein spezialisz!
        (Zitat von VENGA JO)
        sh:) fo:) rl:° br:& ie:| mo:) va:) fl:) ss:| ls:< js:|
        Die Erklärung zum Selfcode findest du hier: http://emmanuel.dammerer.at/selfcode.html
        Einen Decoder für den Selfcode findest du hier: http://peter.in-berlin.de/projekte/selfcode
        1. phptester fand ich auch nicht schlecht - würd ich nur ungeschützt niemals hinstellen!!

          auf alle fälle htaccess.

          und stimmt - whitelist ist zwar viel arbeit - ist aber sicherer!!

          cu

          1. wäre denn die blacklist so schwer zu machen.

            vom überprüfen her wäre eine BL einfacher da ich den string nur auf die BadWords überprüfen müsste. per eregi
            eine WL erscheint mir sogar extrem schwer zu machen.

            Mit freundlichen Grüssen
            Michael Wölk

            1. Guude!

              wäre denn die blacklist so schwer zu machen.

              Ja! Bei Dir und Deinem Skript wird es immer irgendeine Gemeinheit geben, die Du noch nicht kennst, oder kannst Du mit Sicherheit behaupten, dass Du _alle_ "bad words" kennst?
              Der andere Weg mit der WL ist zwar wesentlich aufwändiger, aber nur so kannst Du gewährleisten, dass nur das durchführbar ist, was Du kennst und von dem Du weißt, dass sich damit kein Schaden anrichten lässt...

              LG ausm Hesseland
              Lemmy

            2. Hi,

              wäre denn die blacklist so schwer zu machen.

              Das prinzipielle Problem einer Blacklist gegenüber einer Whitelist ist,
              daß das Vergessen eines Eintrags in der Blacklist schwere Schäden zur Folge haben kann,
              das Vergessen eines Eintrags in der Whitelist nur zu einer verringerten Funktionalität führt.

              Insofern ist also eine Whitelist vorzuziehen.

              Stell Dir mal vor, Du hast es mit Deiner Blacklist tatsächlich geschafft, alle Sicherheitslöcher zu stopfen.
              Jetzt spielt der Provider ne neue PHP-Version auf.
              Saudummerweise steht jetzt eine neue Funktion, die Deinem Webspace Schaden zufügen kann, nicht auf Deiner blacklist, weil Du von dieser neuen Funktion nichts wußtest...

              Bei der Whitelist hingegen wirkt sich die neue PHP-Version nicht aus - es können halt die ungefährlichen neuen Features nicht verwendet werden...

              cu,
              Andreas

              --
              Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
              http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
              1. Hallo!

                Insofern ist also eine Whitelist vorzuziehen.

                Blacklist bringt gar nichts wenn man sich nicht 100%ig auskennt und wenn dem so wäre würde man so eine Frage nicht stellen, eine Whitelist ist sicher besser, aber wie stellt Ihr euch das vor? Entweder man schreibt den PHP-Parser nach so dass man nur Funktionnamen in die Whitelist schreiben braucht, aber das ist sicher nicht ganz so einfach. Wenn man den kompletten Code nur parst, was macht Ihr dann mit sowas:

                echo 'mit shell_exec, eval, etc. kann man böse Dinge anrichten...';

                willst Du alle Wörter die ausgegeben werden könnten auf eine Whitelist schreiben?

                Und @Michael:

                Die erste Antwort auf Dein Posting war: [pref:t=48684&m=265538]

                "lulu: (PHP) nimm das Script schnell runter

                Huhu

                kann mir darüber jemand schaden auf dem server anrichten?

                Ja. Das ist virtueller Suicid was Du da machst !!!!
                (Ausnahmsweise prelle ich hier mal ;-) )

                Viele Grüße

                lulu"

                Was verstehst Du denn sonst unter "Warnung"?
                Jedenfalls ist und bleibt so ein Scirpt eine wirklich wahnsinnige Sicherheitslücke, egal wie Du es drehst oder wendest. Solange Du fremden Code auf Deinem Rechner ausführen lässt kannst Du Dir nie 100%ig sicher sein ob nicht doch jemand einen Weg findet Deine Sicherheitsmechanismen zu umgehen.

                Wenn Du es denn unbedingt machen willst, dann schütze das Verzeichnis so gut es geht, am besten mit HTTP-Auth. _und_ SSL. Und die Zugangsdaten gibst Du dann nur den Personen denen Du 100%ig vertraust. Nur wenn sich irgendwann mal einer davon über Dich ärgert, und sich eher als Du an dieses Script erinnert, wirst Du wieder freudige Überraschungen erleben! Und bedenke, wenn Dir jemand wirklich schaden will hilft Dir auch das Backup nicht zwangsweise zurück zu Deinen Daten, oder er sorgt dafür das Dein Provider Dich 8-kantig rausschmeißt, oder...
                Das was Du auf Deinem Server erlebt hast war IMHO nur Spielerei.

                Grüße
                Andreas

                1. Hi,

                  Insofern ist also eine Whitelist vorzuziehen.
                  Blacklist bringt gar nichts wenn man sich nicht 100%ig auskennt und wenn dem so wäre würde man so eine Frage nicht stellen, eine Whitelist ist sicher besser, aber wie stellt Ihr euch das vor? Entweder man schreibt den PHP-Parser nach so dass man nur Funktionnamen in die Whitelist schreiben braucht, aber das ist sicher nicht ganz so einfach. Wenn man den kompletten Code nur parst, was macht Ihr dann mit sowas:
                  echo 'mit shell_exec, eval, etc. kann man böse Dinge anrichten...';
                  willst Du alle Wörter die ausgegeben werden könnten auf eine Whitelist schreiben?

                  Nein - wenn man PHP parst, parst man natürlich Stringliterale als Stringliterale. Und nicht als ausführbaren Code.

                  cu,
                  Andreas

                  --
                  Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
                  http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
        2. hi,

          aua, was hat er denn da gemacht? Was für ein phptester?

          anscheinend ein formular mit textfeld, und ein script, welches dann jeglichen übergebenen code ausgeführt hat...

          Und warum bin ich gerade gestern abend im Kino gewesen? :(

          ja, ich ärgere mich auch, dass ich das nicht miterleben konnte :-)

          gruss,
          wahsaga

    2. Hi,

      Eine Whitelist ist besser als eine Blacklist. Definiere, was _erlaubt_ ist, nicht, was _nicht_ erlaubt ist.

      fuer solche Aussagen sollte man Dir ein Denkmal setzen. - Wertvollstes Input!   :-)

      Gruss,
      Lude

  2. hi,

    Für alle die noch wissen wollen wies mir so geht nach der tollen aktion:

    Beschissen!

    2 Stunden Arbeit.
    BackUp 8 EUR.

    da sieht man mal was für Arschlöcher doch hier im forum rummachen.

    ich habe meine geldbörse mit 1000 euro auf die parkbank gelegt, bin weggegangen und hab's dann überall herumerzählt.
    als ich wiederkam, war das geld nicht mehr da.
    alles arschl*****...

    sorry, aber so viel naivität verdient einfach einen denkzettel.

    ich war zwar bei dieser aktion nicht dabei, weil ich zum zeitpunkt deiner genialen aktion nicht im forum war, aber so eine aufforderung hätte auch ich nicht ausgeschlagen.
    man muss zwar nicht unbedingt etwas irreparabel beschädigen, aber zumindest ein wenig arbeit beim wieder herstellen hätte ich dir in dieser situation ebenfalls beschert.

    aus fehlern lernen tut manchmal weh. dafür ist die wahrscheinlichkeit, dass man eben diesen fehler kein zweites mal macht, danach um so grösser...

    gruss,
    wahsaga

    1. ich habe meine geldbörse mit 1000 euro auf die parkbank gelegt, bin weggegangen und hab's dann überall herumerzählt.
      als ich wiederkam, war das geld nicht mehr da.
      alles arschl*****...

      sorry, aber so viel naivität verdient einfach einen denkzettel.

      Das ist es doch gerade. WAS bringt das den leuten meinen webspace zu löschen? verdient ham die nix!

      Mit freundlichen Grüssen
      Michael Wölk

      1. Hallo Michael,

        sorry, aber so viel naivität verdient einfach einen denkzettel.
        Das ist es doch gerade. WAS bringt das den leuten meinen webspace zu löschen? verdient ham die nix!

        Du stellst die falsche Frage! Was hat es dir gebracht? Du hast gelernt, und zwar richtig. Wenn dir hier im Forum 2 oder 3 Leute gesagt hätten das es gefährlich ist aber Niemand es dir praktisch gezeigt hätte konnte man heute noch auf den Server zugreifen. Denn du hättest dein Selbstmord Programm immer noch am laufen.

        Das ist die gleiche wie mit Kindern und Feuer, man kann ihnen Tausend mal sagen das es weh tut, erst wenn sich das erste mal verbrannt haben werden sie es lernen. Also sei dankbar das man dir weh getan hat. Obwohl es wie es scheint hat es noch nicht weh genug getan, sonst würdest du nicht darüber nachdenken wie man die Sache sicher machen kann.

        Gruß
          Christian

  3. Hallo!

    Nachdem ich jetzt meinen Webspace wieder zum laufen gebracht habe, kam mir die idee einen GB-Eintrag per E-Mail zu realisieren.

    Warum per E-Mail?

    Normalerweise macht man das wohl so: Du hast ein Formular auf Deiner Seite. Das füllt jemand aus und klickt "Submit". Dann wird es von einem Script (z.B. Perl oder PHP) in Empfang genommen, was die Einträge auswertet, in die Datenbank oder eine Datei speichert und dann das Gästebuch anzeigt...

    Gruß, Achim

    1. Guude!

      Warum per E-Mail?

      Normalerweise macht man das wohl so: Du hast ein Formular auf Deiner Seite. Das füllt jemand aus und klickt "Submit". Dann wird es von einem Script (z.B. Perl oder PHP) in Empfang genommen, was die Einträge auswertet, in die Datenbank oder eine Datei speichert und dann das Gästebuch anzeigt...

      Zusätzlich lässt man sich dann noch vom GB-Skript eine Mail mit dem Eintrag schicken. Der Effekt wäre der gleiche und Du hast Dir jede Menge Arbeit gespart.

      LG ausm Hesseland
      Lemmy

  4. Moin!

    ich möchte den PHP-Tester trotzdem Online stellen, jedoch müsste ich dazu wissen welche begriffe ich sperren muss damit sowas nicht mehr vorkommt. oder ist komplett schwachsinn? ich denke mal wenn begriffe wie 'unlink' usw sperrt dann kann man den php tester wieder online stellen oder? zur sicherheit evtl. noch mit anmeldung. was haltet ihr davon.

    Das ist wieder virtueller Selbstmord.

    Es gibt in meinen Augen _KEINE_ Möglichkeit, weder über Whitelist noch über Blacklist, eine beliebige Codeausführung irgendwie abzusichern.

    Warum? Weil es absolut unmöglich sein dürfte, wirklich zu filtern, und trotzdem noch irgendwelchen Code zur Ausführung zu erlauben. Was hälst du beispielsweise davon, statt den Code direkt in die Testdatei reinzuschreiben, sie erstmal codiert reinzuschreiben und dann in eine Datei entpacken zu lassen.

    Ok, dann sperrst du Dateioperationen. Nützt dir aber nicht zwingend etwas, weil es außer fopen() natürlich noch exec() etc. gibt, die externe Befehle ausführen.

    Also sperrst du diese Befehle. Dann findet mit Sicherheit ein schlauer Mensch Möglichkeiten, noch mit anderen Befehlen Dateien auf deinem Server anzulegen, dort hinein Code zu schieben, und ihn dann auszuführen.

    Oder es wird einfach mit include() oder require() von externen Quellen aus Code eingebunden. Ok, dann sperrst du diese beiden Befehle eben auch.

    Ist aber auch kein Problem, dann wird der Code eben mit eval() ausgeführt.

    Du kannst niemals wirklich sicher sein, dass der eingegebene Code nicht gegen dich verwendet werden kann. Genau deshalb ist es ja extrem wichtig, dass man sich _keinerlei_ fremden Code einfängt.

    Und ehrlich gesagt: Wenn der Kumpel in der Lage ist, PHP zu programmieren, warum ist er dann zu blöde, sich mal eben einen Apache mit PHP und MySQL aus dem Netz zu ziehen und lokal zu installieren? Warum zum Teufel muß er das unbedingt bei dir online testen?

    Ok, den Denkzettel hast du gekriegt, die Gefährlichkeit von fremdem Code zu spüren gekriegt, und vertraue mir bitte, wenn ich dir sage, dass du nicht effektiv filtern kannst. Lass deine Idee ganz einfach fallen - ist auf die Dauer billiger und weniger zeitaufwendig.

    - Sven Rautenberg

    --
    ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|
  5. Lieber Kamikaze-Michael!

    Das Skript soll für deinen Freund sein, wenn ich dich richtig verstanden habe? Wofür dann der Aufstand mit B/WL - reicht es nicht sicherzustellen, dass nur dein Freund Code testen kann, zB mit nem kleinen Login oder sowas? Dein Freund ist dir sicherlich dankbar, dass du ihm diesen unglbaublichen PHP-Tester programmiert hast und hat sicher kein Interesse daran, deinen Webspace auseinander zu nehmen!

    cu

    Robin

  6. Hallo Michael,

    ich hab bei dem Kamikaze-Eintrag schon vor mich rumgegrinst, mal abgesehen von den ach so bösen Arschlöchern hier im Forum, will ich doch auch mal prellen und auch nen Tipp geben. Für meine Begriffe bist Du einfach nur blauäugig und verdammt gut weggekommen. Mal abgesehen von der Idee, dir mal ein paar MB zu schenken, die immer und immer wieder ausgeliefert werden, womit man Dir wohl locker ein paar GB Traffic hätte schenken können. Was sagt Dein Provider zu der Aktion? Komplett offener Server über mehrere Stunden. Sei froh, dass da nichts am Server passiert ist. Wenn Du auf einer shared machine bist, kannsu mit 100% CPU Last locker flockig eine dicke Rechnung vom Provider bekommen, und auf der bleibst Du nach dem Script sitzen. Sowas ungeschützt zu machen, ist arg mutig. Und ich denk, ist schon arg, sich hinterher auch noch aufzuregen. ;)

    Das Grundprinzip zu Deiner Frage hat Puretec mal in den FAQs gehabt für eine automatische News-Seite. Schau Dir genau an, was da passiert und NUR, wenn Du den Code verstehst, solltest Du ihn einsetzen. Dass die Lösung für ein Gästebuch höchst befremdlich ist, haben Dir andere schon gesagt. ;)

    http://faq.puretec.de/skripte/php/12.html

    Gruss, Thoralf

    --
    Sic Luceat Lux!