<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Deec.it &#187; spam dal form</title>
	<atom:link href="http://www.deec.it/tag/spam-dal-form/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.deec.it</link>
	<description>Le Guide Pratiche Dell&#039;Informatica</description>
	<lastBuildDate>Sun, 04 Sep 2011 16:52:42 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Monitorare i messaggi di posta spediti con la funzione mail() del php</title>
		<link>http://www.deec.it/2010/02/09/monitorare-i-messaggi-spediti-con-la-funzione-mail-del-php/</link>
		<comments>http://www.deec.it/2010/02/09/monitorare-i-messaggi-spediti-con-la-funzione-mail-del-php/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 22:00:06 +0000</pubDate>
		<dc:creator>Luca</dc:creator>
				<category><![CDATA[Altro]]></category>
		<category><![CDATA[individuare spammer]]></category>
		<category><![CDATA[log mail in uscita]]></category>
		<category><![CDATA[mail dal php]]></category>
		<category><![CDATA[mail dal web]]></category>
		<category><![CDATA[sendmail wrapper]]></category>
		<category><![CDATA[spam dal form]]></category>
		<category><![CDATA[spam dal php]]></category>
		<category><![CDATA[spam dal sito]]></category>
		<category><![CDATA[spam in uscita]]></category>

		<guid isPermaLink="false">http://www.deec.it/?p=1412</guid>
		<description><![CDATA[



Se  state gestendo un server web dove sono ospitati molti siti, prima o poi potrebbe essere necessario dover  far fronte a dello spam in uscita dalla vostra macchina; Messaggi generati da qualche form poco sicuro pubblicato in un sito, ma in quale? Non sempre negli header delle email si trovano informazioni utili ad individuarlo. Creando [...]]]></description>
			<content:encoded><![CDATA[<!-- AdSense Now! V1.77 -->
<!-- Post[count: 3] -->
<div class="adsense adsense-leadin" style="text-align:center;margin: 12px;"><script type="text/javascript"><!--
google_ad_client = "pub-5841373120371067";
/* 468x60, creato 22/09/09 M&amp;P */
google_ad_slot = "8731175604";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div><div id="attachment_686" class="wp-caption alignleft" style="width: 82px"><img class="size-full wp-image-686" title="php" src="http://www.deec.it/wp-content/uploads/2009/09/php.gif" alt="Php" width="72" height="40" /><p class="wp-caption-text">Php</p></div>
<p>Se  state gestendo un server web dove sono ospitati molti siti, prima o poi potrebbe essere necessario dover  far fronte a dello spam in uscita dalla vostra macchina; Messaggi generati da qualche form poco sicuro pubblicato in un sito, ma in quale? Non sempre negli header delle email si trovano informazioni utili ad individuarlo. Creando un wrapper del binario sendmail, risolveremo questo problema. Ecco come procedere:</p>
<p>Creiamo il nostro wrapper in /usr/local/bin/ chiamandolo sendmail-wrapper.php con il seguente codice al suo interno:</p>
<blockquote><p>#!/usr/bin/php<br />
&lt;?php<br />
$sendmail_path = &#8216;/usr/sbin/sendmail&#8217;;<br />
$file_di_log = &#8216;/tmp/mail_php-&#8217; . $_ENV['APACHE_RUN_USER'] . &#8216;.log&#8217;;</p>
<p>$logline = &#8221;;<br />
$pointer = fopen(&#8217;php://stdin&#8217;, &#8216;r&#8217;);</p>
<p>while ($line = fgets($pointer)) {<br />
if(preg_match(&#8217;/^to:/i&#8217;, $line) || preg_match(&#8217;/^from:/i&#8217;, $line)) {<br />
$logline .= trim($line).&#8217; &#8216;;<br />
}<br />
$mail .= $line;<br />
}</p>
<p>$command = &#8216;echo &#8216; . escapeshellarg($mail) . &#8216; | &#8216;.$sendmail_path.&#8217; -t -i &#8216;;<br />
for ($i = 1; $i &lt; $_SERVER['argc']; $i++) {<br />
$command .= escapeshellarg($_SERVER['argv'][$i]).&#8217; &#8216;;<br />
}</p>
<p>file_put_contents($file_di_log, date(&#8217;Y-m-d H:i:s&#8217;) . &#8216; &#8216; . $_ENV['PWD'] . &#8216;  &#8216; . $logline . &#8220;\n&#8221;, FILE_APPEND);</p>
<p>shell_exec($command);<br />
?&gt;</p></blockquote>
<p><em>N.B. sendmail-wrapper.php deriva da uno script di Till Brehm. E&#8217; stato necessario apportare delle modifiche per sistemare alcuni bug e per renderlo compatibile con i nuovi sistemi.</em></p>
<p>Impostiamo su di esso i permessi di esecuzione<em><br />
</em></p>
<blockquote><p>chmod 755 /usr/local/bin/sendmail-wrapper.php</p></blockquote>
<p>Editiamo la configurazione del php.ini utilizzata dai siti (probabilmente /etc/php5/apache2/php.ini) decommentando (eliminando il carattere ; da inizio riga) la direttiva &#8217;sendmail_path&#8217; ed associandogli come valore il percorso del nostro wrapper. In questo modo:</p>
<blockquote><p>sendmail_path = /usr/local/bin/sendmail-wrapper.php</p></blockquote>
<p>Dopo aver riavviato il web server potremo verificare che ogni qualvolta viene inviata un&#8217;email con il metodo mail del php, in un file di log presente nella directory /tmp sara&#8217; memorizzato il nome del sito che ha inviato il messaggio. Il nome del log avra&#8217; il seguente formato e sara&#8217; memorizzato nella directory /tmp:</p>
<p>mail_php-&#8217;UTENTE-CHE-ESEGUE-IL-PHP&#8217;.log</p>
<p>Se il php dei siti viene eseguito come modulo, allora il file sara&#8217; questo:</p>
<p>/tmp/mail_php-www-data.log</p>
<p>Mentre se i siti sono eseguiti con la suexec verra&#8217; generato piu&#8217; di un log. Ad esempio</p>
<p>/tmp/mail_php-sito1.log</p>
<p>/tmp/mail_php-sito2.log</p>
<p>/tmp/mail_php-sito3.log</p>
<p>Potrete tastare il tutto creando in un sito un file php con questo contenuto e richiamandolo via browser web</p>
<blockquote><p>&lt;?php<br />
mail(&#8217;indirizzo_destinatario@suo-sito.it&#8217;,'This is a test message subject&#8217;,'This is a test message body&#8217;,&#8221;,&#8217;-ftuoindirizzo@tuo-sito.it&#8217;);<br />
echo &#8216;Messaggio Inviato&#8217;;<br />
?&gt;</p></blockquote>
<p><em>N.B. Modificare l&#8217;indirizzo del mittente e del destinatario nella funziona mail</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.deec.it/2010/02/09/monitorare-i-messaggi-spediti-con-la-funzione-mail-del-php/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

