PDA

Bekijk Volledige Versie : php e-mail formulier kopie aan verstuurder



Koster, H
12/02/07, 09:28
Hallo ng,

Ik heb een contactformulier php-scriptje draaien op
http://www.interinfra.nl/contact.php Dit scriptje is een variatie op
http://www.phphulp.nl/php/scripts/2/12/

Er worden op die phphulp-site een aantal hints gegeven maar de antwoorden
zijn niet echt compleet; misschien weet iemand hier raad. Ik wil namelijk
de verstuurder een kopietje van zijn formulier sturen en heb daartoe de
volgende regel toegevoegd:
mail($mail, $onderwerp, $inhoud_mail, "From: Henk <$mail_ontv>"); Welnu
dit werkt wel in een andere site, maar op de bovenste link niet. Ik kom op
internet diverse oplossingen tegen en ze wijzen meestal richting de
veligheidsinstellingen, zoals de register_globals en de .htaccess. De host
zegt echter van niet en meent dat ik het script moet aanpassen... ik zou
zo gauw niet weten hoe.

En mijn 2e vraag is of iemand een betere site weet waar php scriptjes op
staan (zet ik die bij mijn links)

Bedankt alvast,

--
groet,
Henk Koster jr.
http://www.interinfra.nl/opensource.htm
http://www.xs4all.nl/~qqoopp/kennemlinks.htm

Erick T. Barkhuis
12/02/07, 09:28
Koster, H:
> Ik wil namelijk de verstuurder een kopietje van zijn formulier sturen
> en heb daartoe de volgende regel toegevoegd:
> mail($mail, $onderwerp, $inhoud_mail, "From: Henk <$mail_ontv>"); Welnu
> dit werkt wel in een andere site, maar op de bovenste link niet.

Krijg je een foutmelding, gebeurt er iets onverwachts, verbrandt de
monitor,.... Wat gebeurt er wel?

Het zou helpen als je drie dingen doet:
- vermeld wat de inhoud is van die variabelen op het moment dat het
'mis' gaat
- vermeld wat er misgaat
- plaats een phpinfo() op je server, en vermeld de locatie




--
Erick

Ronald Klip
12/02/07, 09:28
Op Sun, 11 Feb 2007 00:09:33 +0100 schreef Koster, H
<interinfra.haalweg@localhost.localdomain>:

> Hallo ng,

Hallo Koster, H,

> Ik heb een contactformulier php-scriptje draaien op
> http://www.interinfra.nl/contact.php Dit scriptje is een variatie op
> http://www.phphulp.nl/php/scripts/2/12/
>
> Er worden op die phphulp-site een aantal hints gegeven maar de antwoorden
> zijn niet echt compleet; misschien weet iemand hier raad. Ik wil namelijk
> de verstuurder een kopietje van zijn formulier sturen en heb daartoe de
> volgende regel toegevoegd:
> mail($mail, $onderwerp, $inhoud_mail, "From: Henk <$mail_ontv>"); Welnu
> dit werkt wel in een andere site, maar op de bovenste link niet.

Dat zal hoogstwaarschijnlijk te maken hebben met de instellingen van
register_globals. Zie http://nl2.php.net/register_globals . Vervang in
bovenstaande scriptregel $mail door $_POST['mail'], en kijk eens of het
dan werkt.

--
groet, Ronald

Koster, H
12/02/07, 09:28
Op Sun, 11 Feb 2007 12:46:31 +0100, schreef Ronald Klip:

knip
> Dat zal hoogstwaarschijnlijk te maken hebben met de instellingen van
> register_globals. Zie http://nl2.php.net/register_globals . Vervang in
> bovenstaande scriptregel $mail door $_POST['mail'], en kijk eens of het
> dan werkt.

Nee, dat werkt ook niet, had dat al geprobeerd. Voor de goeie orde, de
regel
mail($mail_ontv, $_POST['onderwerp'], $inhoud_mail, $headers);
in het script werkt gewoon en verstuurt een mailtje naar mij toe.

Ik wil dus graag ook de afzender een kopietje van dat mailtje sturen,
maar dat luky dus niet met
mail($_POST['mail'], $onderwerp, $inhoud_mail, "From: Henk
<$mail_ontv>");

Als het niet opgelost kan worden met script dan had ik de indruk dat
je dan gewoon moet vragen aan je host of hij instellingen uit de safe mode
haalt, maar ik geloof niet dat dat gebeuren gaat.... :-(

--
groet,
Henk Koster jr.
http://www.interinfra.nl/opensource.htm
http://www.xs4all.nl/~qqoopp/kennemlinks.htm

Koster, H
12/02/07, 09:28
Op Sun, 11 Feb 2007 09:35:12 +0100, schreef Erick T. Barkhuis:

>
> Krijg je een foutmelding, gebeurt er iets onverwachts, verbrandt de
> monitor,.... Wat gebeurt er wel?

Het gewenste 'mailtje aan de verstuurder' komt niet aan.

> Het zou helpen als je drie dingen doet:
> - vermeld wat de inhoud is van die variabelen op het moment dat het
> 'mis' gaat

o.k. kom ik later op, voor nu is het van belang dat het scriptregeltje
verder wel goed is, maar dat het op de ene webserver wel lijkt te werken
en op de andere niet.

> - vermeld wat er misgaat
> - plaats een phpinfo() op je server, en vermeld de locatie

Wat is dat?

--
groet,
Henk Koster jr.
http://www.interinfra.nl/opensource.htm
http://www.xs4all.nl/~qqoopp/kennemlinks.htm

Erick T. Barkhuis
12/02/07, 09:28
Koster, H:
> Op Sun, 11 Feb 2007 09:35:12 +0100, schreef Erick T. Barkhuis:
>
> >
> > Krijg je een foutmelding, gebeurt er iets onverwachts, verbrandt de
> > monitor,.... Wat gebeurt er wel?
>
> Het gewenste 'mailtje aan de verstuurder' komt niet aan.

Wordt het wel verzonden?

> > Het zou helpen als je drie dingen doet:
> > - vermeld wat de inhoud is van die variabelen op het moment dat het
> > 'mis' gaat
>
> o.k. kom ik later op, voor nu is het van belang dat het scriptregeltje
> verder wel goed is, maar dat het op de ene webserver wel lijkt te werken
> en op de andere niet.

Dan kun je gaan kijken wat de verschillen zijn, bijvoorbeeld door:

> > - plaats een phpinfo() op je server, en vermeld de locatie
>
> Wat is dat?

De locatie is de benaderbare plek. Doorgaans geef je die aan met behulp
van een webadres in de vorm http://domeinnaam/phpinfo-document.php


--
Erick

Koster, H
12/02/07, 09:28
Op Sun, 11 Feb 2007 17:14:33 +0100, schreef Erick T. Barkhuis:

>> > Krijg je een foutmelding, gebeurt er iets onverwachts, verbrandt de
>> > monitor,.... Wat gebeurt er wel?
>>
>> Het gewenste 'mailtje aan de verstuurder' komt niet aan.
>
> Wordt het wel verzonden?

Ja en ik kom net tot de ontdekking dat het niet aankomt op mijn test
hotmail, maar als ik een fatsoenlijk adres invul gaat het wel goed!! grmbl
!@$&!!!
sorry voor de moeite. Ik kijk zowiezo nog even naar die phpinfo. Bedankt
in ieder geval.

--
groet,
Henk Koster jr.
http://www.interinfra.nl/opensource.htm
http://www.xs4all.nl/~qqoopp/kennemlinks.htm

Arjen
18/02/07, 09:45
Koster, H schreef:

> Op Sun, 11 Feb 2007 12:46:31 +0100, schreef Ronald Klip:
>
> knip
>> Dat zal hoogstwaarschijnlijk te maken hebben met de instellingen van
>> register_globals. Zie http://nl2.php.net/register_globals . Vervang in
>> bovenstaande scriptregel $mail door $_POST['mail'], en kijk eens of het
>> dan werkt.
>
> Nee, dat werkt ook niet, had dat al geprobeerd. Voor de goeie orde, de
> regel
> mail($mail_ontv, $_POST['onderwerp'], $inhoud_mail, $headers);
> in het script werkt gewoon en verstuurt een mailtje naar mij toe.
>
> Ik wil dus graag ook de afzender een kopietje van dat mailtje sturen,
> maar dat luky dus niet met
> mail($_POST['mail'], $onderwerp, $inhoud_mail, "From: Henk
> <$mail_ontv>");

En jummie zegt de spammer .. daar hebben we er weer eentje :-)

Je mag echt je mailfunctie niet zo openzetten en zeker niet als je er
ook nog eens een url bij post. Google maar even op mail injection oid.

Ps er zijn hele goede mail classes te vinden die het eea voor je beveiligen.

--
Arjen
http://www.hondenpage.com

Koster, H
18/02/07, 09:45
Op Sat, 17 Feb 2007 20:21:54 +0100, schreef Arjen:

>> mail($_POST['mail'], $onderwerp, $inhoud_mail, "From: Henk
>> <$mail_ontv>");
>
> En jummie zegt de spammer .. daar hebben we er weer eentje :-)

Ja is lekker he!
Het scriptje is naar mijn idee wel aardig beveiligd hoor.... de enige
optie is dat er bij het afzender adres 100.000 mail adressen kunnen worden
toegevoegd ;-)
maar dat gaat niet met dit scriptje, heus tis echt waar, probeer het maar

> Je mag echt je mailfunctie niet zo openzetten en zeker niet als je er
> ook nog eens een url bij post. Google maar even op mail injection oid.
>
> Ps er zijn hele goede mail classes te vinden die het eea voor je
> beveiligen.

Bedankt wel voor je kritische noot, je brengt me zowaar aan het
twijfelen, ik ga er naar kijken!

--
groet,
Henk Koster jr.
http://www.interinfra.nl/opensource.htm
http://www.xs4all.nl/~qqoopp/kennemlinks.htm

Michiel de Roo
21/02/07, 15:31
Koster, H wrote:
> Op Sat, 17 Feb 2007 20:21:54 +0100, schreef Arjen:
>
>
>>> mail($_POST['mail'], $onderwerp, $inhoud_mail, "From: Henk
>>> <$mail_ontv>");
>>
>>En jummie zegt de spammer .. daar hebben we er weer eentje :-)
>
>
> Ja is lekker he!
> Het scriptje is naar mijn idee wel aardig beveiligd hoor.... de enige
> optie is dat er bij het afzender adres 100.000 mail adressen kunnen worden
> toegevoegd ;-)
> maar dat gaat niet met dit scriptje, heus tis echt waar, probeer het maar
>
>
>>Je mag echt je mailfunctie niet zo openzetten en zeker niet als je er
>>ook nog eens een url bij post. Google maar even op mail injection oid.
>>
>>Ps er zijn hele goede mail classes te vinden die het eea voor je
>>beveiligen.
>
>
> Bedankt wel voor je kritische noot, je brengt me zowaar aan het
> twijfelen, ik ga er naar kijken!
>

Ik zou er zeker wat beter naar kijken. De mail functie van php is niet
bepaald veilig. Het is bijvoorbeeld mogelijk om via $inhoud_mail extra To
of Cc adressen toe te voegen, of zelfs meerdere mails te versturen naar
verschillende adressen. Ik heb dit vaker meegemaakt met mijn eigen (slecht
beveiligde) contact formulieren. Zelfs al zet je het To adres keihard in
je php script (ipv. $_POST['mail']) is het nog niet veilig.

Ik gebruik zelf onder meer de volgende beveiliging:

if(ereg("\n\.\n", $body)) invalid_text();
if(eregi("\nbcc:", $body)) invalid_text();
if(eregi("\ncc:", $body)) invalid_text();
if(eregi("\nto:", $body)) invalid_text();
if(strlen($body)>4000) invalid_text();

function invalid_text() {
mail("spamcheck@domein.invalid", "spamcheck
".$_SERVER['SERVER_NAME'], "spamcheck on http://".$_SERVER['SERVER_NAME']
.. '/' . $_SERVER['REQUEST_URI'] . "\n" . $_SERVER['REMOTE_ADDR']);
die('Error');
}

Ik krijg dagelijks zeker tien berichten op spamcheck@domein.invalid van
mensen die gepooogd hebben mijn formulieren te misbruiken.

Branko Collin
21/02/07, 15:31
On Sun, 18 Feb 2007 13:28:46 +0100, Michiel de Roo
<yourlove@welovespam.nl> wrote:

>Ik zou er zeker wat beter naar kijken. De mail functie van php is niet
>bepaald veilig. Het is bijvoorbeeld mogelijk om via $inhoud_mail extra To
>of Cc adressen toe te voegen, of zelfs meerdere mails te versturen naar
>verschillende adressen.

Het lijkt me extreem sterk dat je via de body van de mail adressen
kunt toevoegen. Wel via een zogeheten "header injection", maar daar
heb je het neem ik aan niet over? Hoe heet die bug van jou? En hoe
werkt 'ie?
--
"I am a fugitive! A desperado! I am going to form a new union society,
right? with me as president: People Who Don't Pay Their TV Licenses
Against The Nazis. This is only the beginning!" -- Rick, The Young Ones.

Michiel de Roo
21/02/07, 15:31
Branko Collin wrote:
> On Sun, 18 Feb 2007 13:28:46 +0100, Michiel de Roo
> <yourlove@welovespam.nl> wrote:
>
>
>>Ik zou er zeker wat beter naar kijken. De mail functie van php is niet
>>bepaald veilig. Het is bijvoorbeeld mogelijk om via $inhoud_mail extra To
>>of Cc adressen toe te voegen, of zelfs meerdere mails te versturen naar
>>verschillende adressen.
>
>
> Het lijkt me extreem sterk dat je via de body van de mail adressen
> kunt toevoegen. Wel via een zogeheten "header injection", maar daar
> heb je het neem ik aan niet over? Hoe heet die bug van jou? En hoe
> werkt 'ie?

Wat ik ervan heb begrepen wordt in de berichttekst een regel met een
enkele punt (single dot) toegevoegd. De MTA interpreteert dit als dat het
bericht is afgesloten, en in sommige gevallen kan er daarna nog data komen
die als een nieuw bericht wordt geinterpreteerd. Of het op een specifieke
server werkt zal denk ik afhangen van de MTA.

Wanneer en waarom het precies werkt weet ik ook niet. Ik heb het een keer
ergens gevonden na een probleem met een formulier. Sindsdien beveilig ik
mijn scripts hier ook maar tegen.

Branko Collin
21/02/07, 15:31
On Tue, 20 Feb 2007 17:29:52 +0100, Michiel de Roo
<yourlove@welovespam.nl> wrote:
>Branko Collin wrote:
>> On Sun, 18 Feb 2007 13:28:46 +0100, Michiel de Roo
>> <yourlove@welovespam.nl> wrote:
>>
>>>Ik zou er zeker wat beter naar kijken. De mail functie van php is niet
>>>bepaald veilig. Het is bijvoorbeeld mogelijk om via $inhoud_mail extra To
>>>of Cc adressen toe te voegen, of zelfs meerdere mails te versturen naar
>>>verschillende adressen.
>>
>> Het lijkt me extreem sterk dat je via de body van de mail adressen
>> kunt toevoegen. Wel via een zogeheten "header injection", maar daar
>> heb je het neem ik aan niet over? Hoe heet die bug van jou? En hoe
>> werkt 'ie?
>
>Wat ik ervan heb begrepen wordt in de berichttekst een regel met een
>enkele punt (single dot) toegevoegd. De MTA interpreteert dit als dat het
>bericht is afgesloten, en in sommige gevallen kan er daarna nog data komen
>die als een nieuw bericht wordt geinterpreteerd. Of het op een specifieke
>server werkt zal denk ik afhangen van de MTA.

Dat is dan een bug in de MTA. Kan natuurlijk nuttig zijn voor spammers
als die weten welke mail server door een bepaalde provider wordt
gebruikt.
--
"I am a fugitive! A desperado! I am going to form a new union society,
right? with me as president: People Who Don't Pay Their TV Licenses
Against The Nazis. This is only the beginning!" -- Rick, The Young Ones.

Michiel de Roo
21/02/07, 15:31
Branko Collin wrote:
> On Tue, 20 Feb 2007 17:29:52 +0100, Michiel de Roo
> <yourlove@welovespam.nl> wrote:
>
>>Branko Collin wrote:
>>
>>>On Sun, 18 Feb 2007 13:28:46 +0100, Michiel de Roo
>>><yourlove@welovespam.nl> wrote:
>>>
>>>
>>>>Ik zou er zeker wat beter naar kijken. De mail functie van php is niet
>>>>bepaald veilig. Het is bijvoorbeeld mogelijk om via $inhoud_mail extra To
>>>>of Cc adressen toe te voegen, of zelfs meerdere mails te versturen naar
>>>>verschillende adressen.
>>>
>>>Het lijkt me extreem sterk dat je via de body van de mail adressen
>>>kunt toevoegen. Wel via een zogeheten "header injection", maar daar
>>>heb je het neem ik aan niet over? Hoe heet die bug van jou? En hoe
>>>werkt 'ie?
>>
>>Wat ik ervan heb begrepen wordt in de berichttekst een regel met een
>>enkele punt (single dot) toegevoegd. De MTA interpreteert dit als dat het
>>bericht is afgesloten, en in sommige gevallen kan er daarna nog data komen
>>die als een nieuw bericht wordt geinterpreteerd. Of het op een specifieke
>>server werkt zal denk ik afhangen van de MTA.
>
>
> Dat is dan een bug in de MTA. Kan natuurlijk nuttig zijn voor spammers
> als die weten welke mail server door een bepaalde provider wordt
> gebruikt.

Bij sendmail is het een optie in de configuratie om de dot te negeren. Ik
weet er te weinig van, maar dat zou mogelijk de orzaak kunnen zijn. In dat
geval zou het meer een fout in de configuratie zijn.

uit man sendmail:
-i Ignore dots alone on lines by themselves in incoming messages.
This should be set if you are reading data from a file.

bjorri
22/02/07, 15:02
Branko Collin wrote:
> On Sun, 18 Feb 2007 13:28:46 +0100, Michiel de Roo
> <yourlove@welovespam.nl> wrote:
>
> Wel via een zogeheten "header injection",

Naar aanleiding van deze post heb ik een paar webformulieren buiten
werking gezet en ik krijg nu inderdaad geen vreemde bounces meer.

Jammer dat mail() de header injection niet voorkomt, of minimaal er
aandacht aan besteed in de naslaglijst op php.net.

Maar goed dankzij deze groep weer een spambron minder (en toch baal ik
er van).

bjorri.