Mächtigkeit von PHP mail() begrenzen

Apache, Lighttpd, nginx, Cherokee
Post Reply
sapheriel
Posts: 9
Joined: 2005-01-28 11:34
 

Mächtigkeit von PHP mail() begrenzen

Post by sapheriel »

ich habe auf meinem server postfix mit virtuellen domainunterstützung über mysql eingerichtet. normalerweise sollten php scripte etc. nur dann mails versenden können in dem sie eine lokale smtp verbindung zu postfix aufbauen und sich mit benutzname und passwort authentifizieren.

ich habe jetzt aber bemerkt das sich ein script (post.php aus dem mambo open source paket) der mail() funktion von php bedient um mails lokal (ich nehme an über das sendmail kommando, aber ich kenn mich da nicht so gut aus) mit den rechten des webservers zu verschicken. ich möchte die mail fähigkeiten der lokalen user (also in diesem fall "www") aber nicht beschneiden damit fehlermeldungen auch weiterhin zuverlässig ankommen.

das problem ist, dass ich bei den so gesendeten mails nicht nachvollziehen kann von wem sie kommen. im maillog steht dann nur:
Feb 20 10:12:10 thargor postfix/pickup[2424]: 2E1DB8D40EA: uid=XXX from=<www>
Feb 20 10:12:10 thargor postfix/cleanup[2580]: 2E1DB8D40EA: message-id=<20050220091209.2E1DB8D40EA@domain.tld>
Feb 20 10:12:10 thargor postfix/qmgr[1233]: 2E1DB8D40EA: from=<www@domain.tld>, size=1585, nrcpt=1 (queue active)
Feb 20 10:12:10 thargor postfix/smtp[2585]: 2E1DB8D40EA: to=<XXX@web.de>, relay=mx-ha01.web.de[217.72.192.149], de
lay=1, status=sent (250 OK id=1D2n7l-0003CN-00)
Feb 20 10:12:10 thargor postfix/qmgr[1233]: 2E1DB8D40EA: removed
und damit lässt sich schlecht was anfangen. außerdem öffnet das spammern theoretisch tür und tor. auch kunden denen ich keine mail funktionalität anbiete können mail so viel sie wollen.

meine frage ist wo ich am besten ansetze um die sache abzusichern. php, postfix oder sogar apache?
duergner
Posts: 923
Joined: 2003-08-20 11:30
Location: Pittsburgh, PA, USA
 

Re: Mächtigkeit von PHP mail() begrenzen

Post by duergner »

IMHO machst du das am besten in PHP.
User avatar
Joe User
Project Manager
Project Manager
Posts: 11191
Joined: 2003-02-27 01:00
Location: Hamburg
Contact:
 

Re: Mächtigkeit von PHP mail() begrenzen

Post by Joe User »

PHP-CGI statt mod_php nutzen und/oder den fünften Parameter von mail(), beziehungsweise die zuständige Option in der php.ini (PHP5), entsprechend setzen.
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
alexander newald
Posts: 1117
Joined: 2002-09-27 00:54
Location: Hannover
Contact:
 

Re: Mächtigkeit von PHP mail() begrenzen

Post by alexander newald »

oder php als cgi und suexec
wirsing
Posts: 604
Joined: 2002-11-20 21:32
Location: Vaihingen und Karlsruhe
 

Re: Mächtigkeit von PHP mail() begrenzen

Post by wirsing »

Drei Stichworte:
  • Apache-Konfigurationsanweisung php_value oder nach Geschmack auch php_admin_value
  • PHP-Konfigurationsvariable sendmail_path
  • sendmail-Option -f
Alles zusammenmischen, gut durchrühren und du kannst die Mails zumindest zurückverfolgen.
sapheriel
Posts: 9
Joined: 2005-01-28 11:34
 

Re: Mächtigkeit von PHP mail() begrenzen

Post by sapheriel »

ich nehme an dass heißt ich soll für jeden virtuellen host einen sendmail path mit eindeutiger absender adresse definieren. klingt gut, danke.

ich frage mich allerdings warum es keinen einfacheren weg gibt die funktion durch eine smtp variante zu ersetzen oder zumindest du deaktivieren. die sicherheitsprobleme die daraus entstehen sind zumindest mir (relativ unerfahrenen admin) offensichtlich.
wirsing
Posts: 604
Joined: 2002-11-20 21:32
Location: Vaihingen und Karlsruhe
 

Re: Mächtigkeit von PHP mail() begrenzen

Post by wirsing »

Sapheriel wrote:[...]die funktion durch eine smtp variante zu ersetzen
So funktioniert das unter Windows, weil man da kein sendmail hat. Wenn du allerdings lokal einen MTA laufen hast, ist es Unsinn, noch eine zusätzliche TCP-Verbindung aufzubauen.
Sapheriel wrote:oder zumindest du deaktivieren.[...]
Geht auch. Es gibt eine PHP-Konfigurationsvariable, afair disabled_functions, mit der du das einstellen kannst - wenn du dir wirklich sicher bist, dass du das willst.
sapheriel
Posts: 9
Joined: 2005-01-28 11:34
 

Re: Mächtigkeit von PHP mail() begrenzen

Post by sapheriel »

wirsing wrote:
Sapheriel wrote:[...]die funktion durch eine smtp variante zu ersetzen
So funktioniert das unter Windows, weil man da kein sendmail hat. Wenn du allerdings lokal einen MTA laufen hast, ist es Unsinn, noch eine zusätzliche TCP-Verbindung aufzubauen.
aber anders lässt sich authentifizierung nicht umsetzen, oder doch?
wirsing
Posts: 604
Joined: 2002-11-20 21:32
Location: Vaihingen und Karlsruhe
 

Re: Mächtigkeit von PHP mail() begrenzen

Post by wirsing »

Du hast mit der -f-Option ja bereits eine Form von Authentifizierung, und mail() ist eine oft genutzte und wichtige Funktion von PHP.
Es gibt allerdings auch PEAR-Module zum Versand von Email über SMTP mit Authentifizierung - da stellt sich allerdings die Frage, wie man das in bestehende Skripte einbaut.
User avatar
Joe User
Project Manager
Project Manager
Posts: 11191
Joined: 2003-02-27 01:00
Location: Hamburg
Contact:
 

Re: Mächtigkeit von PHP mail() begrenzen

Post by Joe User »

PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
Post Reply