Spam w formularzu Mailowym
Spam w formularzu Mailowym
Witam! Ostatnio zalozylam formularz mailowy i oczywiscie jako pierwsze zglosily sie "bot-y" (tak sie to nazywa?). Czyli jakies Spamowe adresy mailowe sie zglosily. Czy ktos cos o nich wie? Moze macie jakiegos linka w rekawie? Chetnie poczytam sobie jak sie tego robactwa pozbyc... i przede wszystkim czy formularzy we flashu tez sie czepiaja.
Re: Spam w formularzu Mailowym
Możesz utrudnić botom życie, wymagając np. wypełnienia w formularzu kontaktowym kodu przepisanego z obrazka - podobne jak zabezpieczane są np. bramki sms-owe.
-
Krzysztof Aszkiełowicz
- Zaczyna działać

- Posty: 458
- Rejestracja: pn maja 26, 2003 9:29 pm
- Lokalizacja: Warszawa
- Kontakt:
Re: Spam w formularzu Mailowym
poszukaj o captcha
możliwości są 2:
a) wyświetlanie obrazka z kodem
b) wpisywanie wyniku jakiegoś generowanego działania arytmetycznego, np: 2+4 (musi wpisać 6), 9-4 (musi wpisać 5)
na stronie obsługującej formularz musisz to oczywiście sprawdzić czy było poprawnie wpisane, do tego przydadzą Ci się sesje lub cookies.
możliwości są 2:
a) wyświetlanie obrazka z kodem
b) wpisywanie wyniku jakiegoś generowanego działania arytmetycznego, np: 2+4 (musi wpisać 6), 9-4 (musi wpisać 5)
na stronie obsługującej formularz musisz to oczywiście sprawdzić czy było poprawnie wpisane, do tego przydadzą Ci się sesje lub cookies.
Re: Spam w formularzu Mailowym
Ja znalazłem rozwiązanie 
Formularz kontaktowy z generowanym hasłem. Roboty jak dotąd są za głupie żeby to złamać
[php]<?php
session_register("regKey");
session_start();
session_name("regKey");
?>
<p><strong>Formularz kontaktowy:</strong></p>
<?
if($_POST[whatdo]!=send OR !$_POST[nazwa] OR !$_POST[email] OR !$_POST[tresc] OR !$_POST[telefon] OR !preg_match('|^[_a-z0-9.-]*[a-z0-9]@[_a-z0-9.-]*[a-z0-9].[a-z]{2,3}$|e', $_POST[email]) OR $_POST[acode]!=$_SESSION[actCode])
{
?>
<? if(!preg_match('|^[_a-z0-9.-]*[a-z0-9]@[_a-z0-9.-]*[a-z0-9].[a-z]{2,3}$|e', $_POST[email]) AND $_POST[whatdo]==send) { $color1 = 'background:#FF9D00;'; } ?>
<? if(!$_POST[nazwa] AND $_POST[whatdo]==send) { $color2 = 'background:#FF9D00;'; } ?>
<? if(!$_POST[tresc] AND $_POST[whatdo]==send) { $color3 = 'background:#FF9D00;'; } ?>
<? if(!$_POST[email] AND $_POST[whatdo]==send) { $color1 = 'background:#FF9D00;'; } ?>
<? if(!$_POST[telefon] AND $_POST[whatdo]==send) { $color4 = 'background:#FF9D00;'; } ?>
<? if($_POST[acode]!=$_SESSION[actCode] AND $_POST[whatdo]==send) { $color5 = 'background:#FF9D00;'; } ?>
<?
function generuj_haslo()
{
global $haslo;
$ile_liter = 5;
$litery = 'abcdefghijklmnoABCDEFGH0123456789123456';
srand((double)microtime()*1000000);
$haslo = ''; // Ustawienie pocz±tkowe hasła
for ($i=0;$i<$ile_liter;$i++)
{ $haslo .= substr($litery,(rand()%(strlen($litery))),1); };
};
generuj_haslo();
$_SESSION[actCode] = $haslo;
?>
<form action="" method="POST">
<input type="hidden" name="whatdo" value="send">
<div align="left">
<table border="0" cellpasing="1" cellpadding="1">
<tr>
<td valign="middle">ImiÄ™ i nazwisko: </td>
<td valign="middle"><input type="text" name="nazwa" style="<? echo $color3; ?>" value="<? echo $_POST[nazwa]; ?>">*</td>
</tr>
<tr>
<td valign="middle">Adres: </td>
<td valign="middle"><textarea name="adres"><? echo $_POST[adres]; ?></textarea></td>
</tr>
<tr>
<td valign="middle">E-mail: </td>
<td valign="middle"><input type="text" name="email" style="<? echo $color1; ?>" value="<? echo $_POST[email]; ?>">*</td>
</tr>
<tr>
<td valign="middle">Nr telefonu: </td>
<td valign="middle"><input type="text" name="telefon" style="<? echo $color4; ?>" value="<? echo $_POST[telefon]; ?>">*</td>
</tr>
<tr>
<td valign="middle">Treść: </td>
<td valign="middle" ><textarea name="tresc" style="<? echo $color2; ?>"><? echo $_POST[tresc]; ?></textarea>*</td>
</tr>
<tr>
<td valign="middle">Kod weryfikacyjny: </td>
<td valign="middle"><b><? echo $haslo; ?></b> Wpisz kod: <input type="text" name="acode" style="<? echo $color5; ?> width:75px;" value="<? echo $_POST[acode]; ?>">*</td>
</tr>
<tr>
<td valign="middle">*-pola obowiÄ…zkowe </td>
</tr>
</table>
<table border="0" cellpasing="1" cellpadding="1">
<tr>
<td valign="middle"><input type="submit" value="wyslij"></td>
<td valign="middle"><input type="reset" value="kasuj"></td>
</tr>
</table>
</div>
</form>
<?
}
else
{
if(@mail("[email protected]", "Wiadomość z serwisu", "
ImiÄ™ i nazwisko: $_POST[nazwa]
Telefon: $_POST[telefon]
E-mail: $_POST[email]
Adres:
$_POST[adres]
----------------
Tresc:
$_POST[tresc]
----------------
",
"From: $_POST[email] <$_POST[email]>
MIME-Version: 1.0\nContent-Type: text/plain; charset=iso-8859-2\nReply-To: $_POST[email]\n"))
{
echo '<br><br><strong>TwĂłj e-mail znajdujÄ™ siÄ™ juĹĽ w skrzynce odbiorcy</strong>';
}
else
{
echo 'Co¶ poszło nie tak. Ponów próbę!';
}
}
?>[/php]
Formularz kontaktowy z generowanym hasłem. Roboty jak dotąd są za głupie żeby to złamać
[php]<?php
session_register("regKey");
session_start();
session_name("regKey");
?>
<p><strong>Formularz kontaktowy:</strong></p>
<?
if($_POST[whatdo]!=send OR !$_POST[nazwa] OR !$_POST[email] OR !$_POST[tresc] OR !$_POST[telefon] OR !preg_match('|^[_a-z0-9.-]*[a-z0-9]@[_a-z0-9.-]*[a-z0-9].[a-z]{2,3}$|e', $_POST[email]) OR $_POST[acode]!=$_SESSION[actCode])
{
?>
<? if(!preg_match('|^[_a-z0-9.-]*[a-z0-9]@[_a-z0-9.-]*[a-z0-9].[a-z]{2,3}$|e', $_POST[email]) AND $_POST[whatdo]==send) { $color1 = 'background:#FF9D00;'; } ?>
<? if(!$_POST[nazwa] AND $_POST[whatdo]==send) { $color2 = 'background:#FF9D00;'; } ?>
<? if(!$_POST[tresc] AND $_POST[whatdo]==send) { $color3 = 'background:#FF9D00;'; } ?>
<? if(!$_POST[email] AND $_POST[whatdo]==send) { $color1 = 'background:#FF9D00;'; } ?>
<? if(!$_POST[telefon] AND $_POST[whatdo]==send) { $color4 = 'background:#FF9D00;'; } ?>
<? if($_POST[acode]!=$_SESSION[actCode] AND $_POST[whatdo]==send) { $color5 = 'background:#FF9D00;'; } ?>
<?
function generuj_haslo()
{
global $haslo;
$ile_liter = 5;
$litery = 'abcdefghijklmnoABCDEFGH0123456789123456';
srand((double)microtime()*1000000);
$haslo = ''; // Ustawienie pocz±tkowe hasła
for ($i=0;$i<$ile_liter;$i++)
{ $haslo .= substr($litery,(rand()%(strlen($litery))),1); };
};
generuj_haslo();
$_SESSION[actCode] = $haslo;
?>
<form action="" method="POST">
<input type="hidden" name="whatdo" value="send">
<div align="left">
<table border="0" cellpasing="1" cellpadding="1">
<tr>
<td valign="middle">ImiÄ™ i nazwisko: </td>
<td valign="middle"><input type="text" name="nazwa" style="<? echo $color3; ?>" value="<? echo $_POST[nazwa]; ?>">*</td>
</tr>
<tr>
<td valign="middle">Adres: </td>
<td valign="middle"><textarea name="adres"><? echo $_POST[adres]; ?></textarea></td>
</tr>
<tr>
<td valign="middle">E-mail: </td>
<td valign="middle"><input type="text" name="email" style="<? echo $color1; ?>" value="<? echo $_POST[email]; ?>">*</td>
</tr>
<tr>
<td valign="middle">Nr telefonu: </td>
<td valign="middle"><input type="text" name="telefon" style="<? echo $color4; ?>" value="<? echo $_POST[telefon]; ?>">*</td>
</tr>
<tr>
<td valign="middle">Treść: </td>
<td valign="middle" ><textarea name="tresc" style="<? echo $color2; ?>"><? echo $_POST[tresc]; ?></textarea>*</td>
</tr>
<tr>
<td valign="middle">Kod weryfikacyjny: </td>
<td valign="middle"><b><? echo $haslo; ?></b> Wpisz kod: <input type="text" name="acode" style="<? echo $color5; ?> width:75px;" value="<? echo $_POST[acode]; ?>">*</td>
</tr>
<tr>
<td valign="middle">*-pola obowiÄ…zkowe </td>
</tr>
</table>
<table border="0" cellpasing="1" cellpadding="1">
<tr>
<td valign="middle"><input type="submit" value="wyslij"></td>
<td valign="middle"><input type="reset" value="kasuj"></td>
</tr>
</table>
</div>
</form>
<?
}
else
{
if(@mail("[email protected]", "Wiadomość z serwisu", "
ImiÄ™ i nazwisko: $_POST[nazwa]
Telefon: $_POST[telefon]
E-mail: $_POST[email]
Adres:
$_POST[adres]
----------------
Tresc:
$_POST[tresc]
----------------
",
"From: $_POST[email] <$_POST[email]>
MIME-Version: 1.0\nContent-Type: text/plain; charset=iso-8859-2\nReply-To: $_POST[email]\n"))
{
echo '<br><br><strong>TwĂłj e-mail znajdujÄ™ siÄ™ juĹĽ w skrzynce odbiorcy</strong>';
}
else
{
echo 'Co¶ poszło nie tak. Ponów próbę!';
}
}
?>[/php]
