PHP mail() localhost vs "echter" Server



  • Hallo @all,

    ich möchte aus einer Webseite bzw. genauer aus einem Kontaktformular eine E-Mail versenden. Dafür wollte ich die PHP-Funktion mail(...) verwenden.

    Nun habe ich das Problem, dass ich zum Testen XAMPP nutze (lokaler Server). Dort kann ich die mail()-Funktion leider nicht ohne weiteres nutzen (SMTP Einstellungen in der php.ini Datei usw. sind von Nöten). Jetzt bin ich etwas verunsichert, ob mein Ansatz überhaupt der richtige ist. Funktioniert diese mail()-Funktion lediglich auf dem lokalen Server nicht richtig oder ist das ein grundsätzliches Problem? Gibt es ggf. Alternativen?

    Danke und mfG

    shft

    PS: Ich bin eig ein C++-Developer und habe lediglich grundlegende (Studium) Webkenntnisse, habt also bitte erbarmen .


  • Mod

    Die Goto Library hier ist Swiftmailer.
    http://swiftmailer.org/



  • Shade Of Mine schrieb:

    Die Goto Library hier ist Swiftmailer.
    http://swiftmailer.org/

    PHPMailer / Zend-mail / SwiftMailer Remote Code Execution
    Posted Jan 3, 2017
    Authored by Dawid Golunski

    This proof of concept exploit aims to execute a reverse shell on the target in the context of the web server user via a vulnerable PHP email library.

    Soviel dazu.
    Wie es geht findet man dann schon im www.



  • Die mail()-Funktion in PHP verwendet idR. die SMTP-Einstellungen des Webservers. Dieser kann z. B. über ein Relay-Host gehen, kann aber natürlich auch selbst ein Mailserver sein. Die Frage, ob die mail()-Funktion sinnvoll ist - ungeachtet etwaiger Sicherheitslücken - lässt sich nicht pauschal beantworten. Es kommt darauf an, wie der Server konfiguriert ist.

    PHP bietet hier viele Möglichkeiten. Der Einfachheit halber würde ich bei einem Kontaktformular die Eingaben des Anwenders "einfach" filtern und unschädlich machen (z. B. diverse Sonderzeichen ersetzen).


  • Mod

    Die einzig richtige Antwort ist Swiftmail. Alles andere ist Blödsinn.

    Der Absender ist sowieso IMMER eine vordefinierte Email Adresse. Der Webserver darf ja gar nicht als Jemand anderer Emails versenden.



  • Shade Of Mine schrieb:

    Die einzig richtige Antwort ist Swiftmail. Alles andere ist Blödsinn.

    Der Absender ist sowieso IMMER eine vordefinierte Email Adresse. Der Webserver darf ja gar nicht als Jemand anderer Emails versenden.

    Ich wäre vorsichtig mit Aussagen, wie: "Alles andere ist Blödsinn". Und dass ein Server nicht als eine fremde Identität senden "darf", stimmt auch nicht. Es ist gerade bei verteilten Systemen durchaus normal, dass mehrere Server mit derselben Identität versenden. Darüber hinaus - selbst wenn sie es nicht dürfen -, ist es möglich. Und da kommen wir in zwei Bereiche: Spam-Mailer und lausig konfigurierte, verteilte Systeme, wo sich nicht darum bemüht wird, zu versuchen zu legitimisieren, dass mehrere Server mit derselben Identität versenden "dürfen".

    Aber all das hat wenig mit der eigentlichen Frage hier zu tun. Ich denke, der Fragesteller sollte seine XAMPP-Umgebung noch um SMTP-Konfiguration erweitern und dann richtig testen, ob alles zu seiner Zufriedenheit ist.


  • Mod

    heini schrieb:

    Und dass ein Server nicht als eine fremde Identität senden "darf", stimmt auch nicht.

    Doch.

    Dass mehrere Server die selbe Identitäten bzw. eine überschneidende Menge an Identitäten haben widerspricht meiner Aussage nicht.

    Aber das alles ist egal. Ich habe die korrekte Lösung genannt.


Log in to reply