Hello,

on 03/11/2006 04:12 PM Rasmus Lerdorf said the following:
>>> I am running php 4.x on a suse 9.x machine. There is a php script which
>>> resides
>>> on a webapp that is responsible for sending e-mail to myself in case of
>>> errors like db-errors or similar. Called error.php
>>> This script does include phpmailer and uses it to send the e-mails to
>>> me.
>>> Now I am receiving on the e-mail specified as TO: e-mails with different
>>> subject
>>> than specified and different text?! All english text with wired
>>> sentences, must be a bot or so. How is this possible? The subject line
>>> is fixed and right after that commend send is executed. So no idea how
>>> they do it and how I can prevent it. It looks like this:
>>> $mail->Subject = 'Fehlerbericht';
>>> $mail->Send();
>>> How is it possible that they change this subject line? I checked the
>>> server log and each time an e-mail has been sent to me of that kind
>>> there is a logentry in apache log that says that this script has been
>>> executed. So the e-mails definatelly come from that script?!
>>
>> If you are setting message headers with untrusted values that may
>> contain line breaks, that is your problem. Line breaks make mail systems
>> interpret the next line as a new header. That header may be used to
>> inject new recipients for instance using Bcc: .
>>
>> You can have line breaks in header but you need to escape them properly
>> so they are interpreted as continuation lines rather than new headers.
> 
> That is only true for the additional_headers (4th) argument to the mail
> function.  That argument is specifically for doing free-form headers, so
> as long as you only use the to, subject and message arguments to the
> mail function you are safe.

That is what I said, sending headers with untrusted values, so people
have to use the 4th argument to set for instance the From: header. This
From: header is often set to values set in forms to the e-mail address
and name of the person that is trying to contact the site people. That
is usually from where most the PHP mail form abuses come from.

As I said line breaks in the From: or other headers are not invalid.
Actually line breaks should be used to comply with RFC recommendations
and do not exceed the 78/998 line length limit. When these limits are
exceeded, messages may arrive corrupted.

The mail function is a better than nothing solution. It can still be
used but to send RFC compliant messages, often it is necessary to
correctly format message contents. That is why I always recommend this
or other class that takes care of those (many) details:

http://www.phpclasses.org/mimemessage


-- 

Regards,
Manuel Lemos

Metastorage - Data object relational mapping layer generator
http://www.metastorage.net/

PHP Classes - Free ready to use OOP components written in PHP
http://www.phpclasses.org/

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to