Ankündigung

Einklappen
Keine Ankündigung bisher.

mail() - Sicherheit

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • mail() - Sicherheit

    hab leider kaum zeit,aber ein patch gemacht ca. so:

    PHP-Code:
    $to preg('/[^A-Za-Z_\d]/gis',''$to);  // punkt und @ zeichen fehlt noch
    mail($to,.....); 
    damit sollten die sicherheitslücken gedeckt sein oder?
    lasse ja nichts zu ausser A-z + Zahl und @ sowie .
    www.scriptforums.com - Foren für Skripts
    www.ragonvote.net - Kostenlose Umfragen
    www.ragonsoft.com - PHP und Android Apps (z. B. Knoten Video Guide)

  • #2
    Hier zu posten und auf Antwort zu warten kostet dich jetzt weniger Zeit, als das einfach mal mit einem entsprechenden String zu testen?
    [I]You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.[/I]

    Kommentar


    • #3
      Du könntest auch einfach direkt validieren ob es sich um eine syntaktisch korrekte E-Mail Adresse handelt ?

      PHP: filter_var - Manual
      oder Google ...
      Signatur:
      PHP-Code:
      $s '0048656c6c6f20576f726c64';
      while(
      $i=substr($s=substr($s,2),0,2))echo"&#x00$i;"

      Kommentar


      • #4
        Zitat von chorn Beitrag anzeigen
        Hier zu posten und auf Antwort zu warten kostet dich jetzt weniger Zeit, als das einfach mal mit einem entsprechenden String zu testen?
        kann ich machen, nur bin ich kein Hacker. hab gelesen dass man zb "BBC:" reinschreiben kann USW. wird bei mir zu "BBC" gibt's sonst noch lücken od. Angriffs-Möglichkeiten? das ding muss einfach sicher sein auf der Mail() Zeile.
        www.scriptforums.com - Foren für Skripts
        www.ragonvote.net - Kostenlose Umfragen
        www.ragonsoft.com - PHP und Android Apps (z. B. Knoten Video Guide)

        Kommentar


        • #5
          Hinweis:
          [!] Bitte verwende nicht mail() sondern eine entsprechende Mailer Klasse! Viele Probleme lassen sich dadurch beheben.
          Hier findest du einen Überblick von robo47 zu verschiedenen Mailer Klassen: Mail() ist tot, es lebe mail()


          Dann hast du auch kein Problem mehr mit der Validierung.

          Kommentar


          • #6
            Für die mail()-Frage haben wir übrigens mittlerweile ein Zaunpfahl-Posting: http://www.php.de/beitragsarchiv/642...lebe-mail.html
            Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

            Kommentar


            • #7
              Zitat von Flor1an Beitrag anzeigen
              Hinweis:
              [i][!] Bitte verwende nicht mail() sondern eine entsprechende Mailer Klasse! Viele Probleme lassen sich dadurch beheb
              erstmal danke. Für den Tipp. das ganze ist für ein kommerzielles Projekt, bzw.
              muss ich wohl doch mail nehmen, mir geht's auch um eigene Lizenz, Sicherheit Und Verträglichkeit. ist Mail, so wie ich es nutze sicher?
              www.scriptforums.com - Foren für Skripts
              www.ragonvote.net - Kostenlose Umfragen
              www.ragonsoft.com - PHP und Android Apps (z. B. Knoten Video Guide)

              Kommentar


              • #8
                Du kannst ja trotzdem zB die Zend Mail Klasse benutzen. (steht unter der BSD Lizenz)

                Kommentar


                • #9
                  Was verstehst du unter sicher? Das niemand damit etwas anstellen kann? Keine Ahnung, das kommt auch ganz drauf an wie dein Skript drum herum aussieht.

                  Sicher im Sinne von "die Email kommt sicher an und landet nicht im Spam"? Dann definitiv nein. Denn da musst du noch entsprechende Header richtig setzen etc, etc, etc.

                  Auch wenn du ein kommerzielles Projekt schreibt kannst du eine Mailerklasse verwenden. Schau dir doch mal deren Lizenzen an, die erlauben dir teilweise das ganze auch in einem kommerziellen Projekt zu nutzen.

                  Kommentar


                  • #10
                    Zitat von Flor1an Beitrag anzeigen
                    Was verstehst du unter sicher? Das niemand damit etwas anstellen kann?
                    Genau, das...

                    Zitat von Flor1an Beitrag anzeigen
                    Sicher im Sinne von "die Email kommt sicher an und landet nicht im Spam"? Dann definitiv nein. Denn da musst du noch entsprechende Header richtig setzen etc, etc, etc.
                    Auch wünschenswert.
                    Ich sende nur reine TXT-Mails. (HTML-Mails sind nicht die prio bei mir.)


                    Schau dir doch mal deren Lizenzen an, die erlauben dir teilweise das ganze auch in einem kommerziellen Projekt zu nutzen.
                    Hab ich gemacht...
                    Zendkäme noch ehesten in Frage da BSD)
                    pear
                    (zwingt einen sein projekt selber unter eine der lizenzen zustellen? nein danke...)

                    Am Schluss gefällts mir aber nicht ein ganzes framework, das ich gar nicht brauche zu nutzen.

                    Wie bekomm ich zend zum laufen, so dass es nur die mail funktionalität enthält?



                    PHP-Code:
                    <?
                        defined('PROTECT') or die('');


                        $txt='';
                        foreach($_POST as $key => $value)
                        {
                            if($value != "" && $key != "Betreff" ) { $txt = $txt."$key: \n$value<br>\n";}
                        }


                         $sysmail = 'meinemail_adresse@domain.com';
                        $ziel =  email($_POST['email']);
                        
                        //admin
                        mail($sysmail,$_POST['Betreff'],$txt, "Content-Type: text/html\nFROM: $sysmail\n" );
                        //kd
                        mail($ziel,'Vielen Dank für Ihre Nachricht','Ihre Nachricht wird usw..',"Content-Type: text/html\nFROM: $sysmail\n" );

                        echo 'Vielen Dank für Ihre Nachricht';



                        function email($tmp) { return preg_replace("/[^A-Za-z_\d\-\.\@]/gis", '', $tmp); } //Zwecksverständnis
                    ?>
                    www.scriptforums.com - Foren für Skripts
                    www.ragonvote.net - Kostenlose Umfragen
                    www.ragonsoft.com - PHP und Android Apps (z. B. Knoten Video Guide)

                    Kommentar


                    • #11
                      Bei der Lizenz von Pear geht es glaub ich nur darum dass du den PEAR Code zum einen mit deren Copyright belassen sollst und falls du Änderungen an deren Code machst muss dieser Code unter der selben Lizenz veröffentlicht werden. Somit dürfte halt jemand deine Modifizierte Version von Pear Mail nutzen. In kommerziellen Produkten darfst du aber PEAR natürlich verwenden!

                      Kommentar


                      • #12
                        Was du ev. noch missverstanden hast => du musst kein ganzes Framework benutzen.

                        zB bei Zend ist es auch möglich, einzelne Komponenten wie zB die Mailklasse zu benutzen (wobei man laut meinem letzten Stand trotzdem auf die nötigen Klassen achten muss)

                        Kommentar

                        Lädt...
                        X