Hi, ich möchte ein paar Formular-Eingaben per Email senden(am besten server-seitig, also ohne SMTP) und suche ein minimal-Beispiel, wo z.B. die Eingaben gefiltert werden, damit da keiner irgendwelchen Mist anstellt. Nun habe ich gelesen, dass mail() angeblich nicht mehr zeitgemäß wäre und man besser auf eine sendmail-Klasse oder ähnliches zurückgreifen sollte. Stimmt das? Und hat jemand hier ein zuverlässig funktionierendes Beispiel, wie man 3 oder 4 Formularfelder sicher per Email senden kann? Das wäre echt sehr nett... LG, Johann
Johann schrieb: > also ohne SMTP Das heißt dein Mailserver ist ein lokaler auf dem auch der Webserver liegt? > Nun habe ich gelesen, dass mail() angeblich nicht mehr zeitgemäß wäre Naja, besseres gibt es immer aber für > 3 oder 4 Formularfelder Per mail senden ist es allemal ausreichend WENN dein Provider die Funktion erlaubt, das könnte nämlich eher ein Problem sein. > sicher per Email Mail ist per-se ein "unsicheres" Verfahren, also ggf. mal die Anforderungen an "sicher" definieren.
:
Bearbeitet durch User
PHP-Mailer gibts wie Sand am Meer. Auch gibts simpel aufrufbare "fertige" Funktionen, die ein POST-Argument (z.B. den Inhalt eines Textarea) per SMTP versenden. Die Gefahr, ausführbaren Code untergeschoben zu bekommen kann man mit sog. Escape- bzw. Filter-Routinen (gehören zum Sprachumfang) unterbinden. An SMTP führt bei Mail Nichts vorbei. Alternativ dazu könntest du die Einträge direkt in eine eigene Datenbank (z.B. MySQL) einlaufen lassen, dann musst du aber selber regelmäßig nachsehen.
Hallo, also Mail ohne SMTP versenden funktioniert wunderbar. Ich habe mir mal mit einem Testscript und dem mail()-Befehl eine Mail zugesendet, ganz ohne SMTP-Parameter. Sicherheit definiere ich so, dass mein Script nicht zum Versenden von Spam an beliebige Empfänger umfunktioniert werden kann, oder das mir Robots hunderte von Emails mit irgendwelchem Müll senden. Da es sich um Formulare mit variablem Inhalt(Text und Zahlen) handelt und ich kein Hacker bin, suche ich ein "erprobtes" Script, man muss ja das Rad nicht immer neu erfinden und wer weiß, ob ich alles bedenke, was diesen kranken Typen einfällt... Gruß, Johann
Johann schrieb: > sicher per Email Es gibt KEIN "sicher". Es gibt immer einen der schlauer ist und deine Sicherheitsmaßnahmen austricksen kann. beispiel (unabhängig von sprache und anwendung): du willst verhindern das jemand den tag "<script>" einschleusen kann. Also filterst du den tag einfach raus... Was machst du wenn ich jetzt aber "<scr<script>ipt>" schreibe? Den vollständigen tag findest du und filterst ihn raus, dadurch setzt du aber den anderen tag zusammen... Jetzt denkst du dir: Naja, filter ich halt mehr mals. Wie oft willst du denn filtern? 10 mal? 100 mal? 1000 mal? Dann frag dich an der stelle wie das auf die laufzeit geht. genauso esc-sequenzen. was machst du wenn die sachen in hex-codierung oder sonstwie eingegeben werden? Natürlich bringt php einige funktionen mit um den meisten kram zu filtern oder zu entschärfen. Aber auch diese Funktionen kann man austricksen, weil es immer einen gibt der besser ist. Es gibt KEIN "sicher", von dem Gedanken kannst du dich gepflegt verabschieden. All input ist evil, until proven otherwise! Johann schrieb: > also ohne SMTP Colle idee, wenn du noch erklären magst wie das funktionieren soll... SMTP ist DAS Protokoll um Mails zu versenden! POP3, IMAP, SMAP sind dazu da, um auf die Mails auf dem Mailserver zuzugreifen, aber nicht um die Mails zu versenden.
Kaj schrieb: > Was machst du wenn ich jetzt aber "<scr<script>ipt>" schreibe? Den > vollständigen tag findest du und filterst ihn raus, dadurch setzt du > aber den anderen tag zusammen... Durch "<scr<script>ipt>" ersetzen. Wie jeder andere auch.
>Colle idee, wenn du noch erklären magst wie das funktionieren soll... >SMTP ist DAS Protokoll um Mails zu versenden! Jetzt stell dich bitte mal nicht extra dumm...es sollte klar sein, dass ich damit nur sagen wollte, dass ich mich im Script nicht um irgendwelche RFCs bzw. Protokolle kümmern muss(SMTP-Server, Benutzername, Passwort, Port, Authentifizierung...), sondern dass ich einfach nur mail() benutze und PHP bzw. sendmail sich um den Rest kümmern. Genauso ist mir klar, dass es keine absolute Sicherheit gibt. Aber wenn ich schon filter, dann am besten gegen eine WhiteList. Ich würde also konsequent nur Zeichen zulassen, die ich vorher als gut definiert habe. Also a-z, A-Z, 0-9 und eventuell noch . , - Alles andere, also z.B. \ < > würden da konsequent rausfliegen! Wenn html zu unsicher ist, wird die Mail eben als PlainText versendet.
Johann schrieb: > Sicherheit definiere ich so, dass mein Script nicht zum Versenden von > Spam an beliebige Empfänger umfunktioniert werden kann Das hängt ja von dir ab, wenn du dort einen festen String einträgst kann da schon nix passieren. Johann schrieb: > oder das mir Robots hunderte von Emails mit irgendwelchem Müll senden Naja, meist machen die sich nicht für eine einzelne Seite die mühe, wenn du das wirklich ausschließen willst, und der Meinung bist, dass deine User dann dein Formular noch nutzen kannst du ein Captcha einrichten.
Läubi .. schrieb: > Naja, meist machen die sich nicht für eine einzelne Seite die mühe, wenn > du das wirklich ausschließen willst, und der Meinung bist, dass deine > User dann dein Formular noch nutzen kannst du ein Captcha einrichten. Dann aber bitte ein ordentliches und nicht den selbstgemachten Murks den man oft sieht, der für Robots leichter zu lösen ist als für Menschen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.