email strane da form php.

Versione Completa   Stampa   Cerca   Utenti   Iscriviti     Condividi : FacebookTwitter
Argonet987
00martedì 13 marzo 2007 14:47
salve a tutti,
ho creato un sito (nulla di che)con un form per l'invio delle email dal sito stesso.
Il form è in php collegato al file per l'invio delle email ed infine l'utente viene portato alla pagina dove si ringrazia etc.Insomma nulla di trascendentale però quando apri la posta mi ritrovo un sacco di contatti dal sito(es: hai un contatto da nomesito.com e questo è possibile solo se si usa il form direttamente dal sito), tutte email molto strane come se qualcuno usasse il form per scrivermi alcune dal contenuto hard però tutte con una caratteristica, una stringa finale composta da numeri e lettere:
"out, she went mad monkey. talked to me that actually need a bit, but told more and that s hatchway opened, an extraordinary new ploy about them stood in order that triangular forfeit, his
8379fa616fb6119a50abb7dbbdb9a72e"...questo ne è un esempio.
Cosa accade? come fare per rendere il form più sicuro?
Spero di essere stato chiaro.
Grazie a tutti.
Etabeta3030
00martedì 13 marzo 2007 18:19
una volta bastava mettere le validazioni e le classiche stringhe tipo htmlentities per evitare lo spam sui form, adesso è diventata una guerra...
hai provato a mettere quello script che chiede la convalida attraverso una stringa casuale vedibile solo dall'occhio umano (per verificare almeno che non sia un attacco in serie) ?
Argonet987
00mercoledì 14 marzo 2007 10:50
Re:

Scritto da: Etabeta3030 13/03/2007 18.19
una volta bastava mettere le validazioni e le classiche stringhe tipo htmlentities per evitare lo spam sui form, adesso è diventata una guerra...
hai provato a mettere quello script che chiede la convalida attraverso una stringa casuale vedibile solo dall'occhio umano (per verificare almeno che non sia un attacco in serie) ?


Grazie Etabeta,
ma queste stringhe? dove si inseriscono?
Posto lo script:
Per il primo è il file del form:
function checkform ( form ) {

if (form.nome.value == "") {
alert( "Il Nome è necessario." );
form.nome.focus();
return false ; }

if (form.cognome.value == "") {
alert( "Il cognome è necessario" );
form.cognome.focus();
return false ; }
if (form.email.value == "") {
alert( "L'indirizzo e-mail è necessario." );
form.cognome.focus();
return false ; }
if (form.messaggio.value == "") {
alert( "Il campo messaggio non può essere vuoto." );
form.messaggio.focus();
return false ; }

if (form.telefono.value != "") {
var anum=/(^\d+$)|(^\d+\.\d+$)/
if (anum.test(form.telefono.value)) { }
else{
alert("Il telefono deve essere solo un numero.")
form.telefono.focus();
return false ; }
}
return true ; }
</SCRIPT>###HO OMESSO LA PARTE HTML, tra le altre cose ho inserito l'obbligo di mettere l'email, nome e cognome, eppure non basta, poi il file che invia le email (quello invisibile all'utente:
<?
// mail per l'amministratore del sistema
$part1="Data: $data\n\n\n==================== DATI RICHIEDENTE\nNome: $nome\nCognome: $cognome\nIndirizzo e-mail: $email\n";
if ($telefono != "") { $part2="Telefono: $telefono\n\n\n"; }
if ($telefono == "") { $part2="Nessun numero di telefono\n\n\n"; }
$part3="==================== MESSAGGIO\n";

mail("EMAIL@XXX.com","Nuovo contatto da NOME SITO","$part1$part2$part3$messaggio","From: $email");
mail("EMAIL@XXX.com","Nuovo contatto da NOME SITO","$part1$part2$part3$messaggio","From: $email");
######
Questo è quanto, si può fare qualcosa?
[SM=x53914]
Etabeta3030
00giovedì 15 marzo 2007 01:06
quelle di base sono funzioni che sicuramente già applichi, quando raccogli il dato e lo invii al db gli devi dare qualcosa per pulirlo, perchè se invece che testo semplice qualcuno inserisce una stringa ad esempio un javascript, o peggio ancora una query, questa ti entra sul server è può fare diversi tipi di danni (anche prelevarti i dati dal db, sapendolo fare).
e quindi avrai per esempio:
$nome = htmlspecialchars($_POST["nome"]);
oltre a htmlspecialchars si possono usare anche htmlentities oppure striptag.

Ma siccome il tuo script verifica solo che il contenuto del form non sia vuoto, e il tipo che ti stressa inserisce qualcosa, passerebbe lo stesso.

ecco perciò che, per verificare se magari è un inserimento effettuato dai robots e quindi entra in automatico, si può provare a mettere prima dell'invio uno script che costringa ad inserire una sequenza di cinque lettere/numeri che vengono visualizzate in modo grafico, così che solo un utente in carne e ossa può inserirle e inviare.

E' uno script un po' difficile da trovare nei siti di script free, ma lo avevo cercato tempo fa e qualcosina in giro si recupera con un po' di pazienza. Lo dovresti cercare nei javascript > form validator.
Argonet987
00sabato 17 marzo 2007 21:39
Re:

Scritto da: Etabeta3030 15/03/2007 1.06
quelle di base sono funzioni che sicuramente già applichi, quando raccogli il dato e lo invii al db gli devi dare qualcosa per pulirlo, perchè se invece che testo semplice qualcuno inserisce una stringa ad esempio un javascript, o peggio ancora una query, questa ti entra sul server è può fare diversi tipi di danni (anche prelevarti i dati dal db, sapendolo fare).
e quindi avrai per esempio:
$nome = htmlspecialchars($_POST["nome"]);
oltre a htmlspecialchars si possono usare anche htmlentities oppure striptag.

Ma siccome il tuo script verifica solo che il contenuto del form non sia vuoto, e il tipo che ti stressa inserisce qualcosa, passerebbe lo stesso.

ecco perciò che, per verificare se magari è un inserimento effettuato dai robots e quindi entra in automatico, si può provare a mettere prima dell'invio uno script che costringa ad inserire una sequenza di cinque lettere/numeri che vengono visualizzate in modo grafico, così che solo un utente in carne e ossa può inserirle e inviare.

E' uno script un po' difficile da trovare nei siti di script free, ma lo avevo cercato tempo fa e qualcosina in giro si recupera con un po' di pazienza. Lo dovresti cercare nei javascript > form validator.


Grazie etabeta,
penso che sis un "robot" a mandare i messaggi e credo che la soluzione migliore sia inserire quel javascript di cui mi hai scritto,vediamo come andrà a finire [SM=x53914]
aessenet
00domenica 18 marzo 2007 21:45
Purtroppo c'è chi si diverte ad intasare di pubblicità i form che trova sulle pagine web (anche i commenti di aessenet sono da mesi sotto attacco).

Una soluzione possibile per arginare il problema, potrebbe essere quella di rendere possibile l'invio della mail solo da un browser con javascript abilitato.
Il contro è che chi non ha javascript abilitato non può contattarti, e quando gli spammer avranno (se già non li hanno) programmi in grado di interpretare javascript, il problema si ripresenterà.
Questa è la versione 'lo-fi' del Forum Per visualizzare la versione completa clicca qui
Tutti gli orari sono GMT+01:00. Adesso sono le 11:24.
Copyright © 2000-2024 FFZ srl - www.freeforumzone.com