/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Sende formmail uden fare for spamrobotter?
Fra : Jakob Munck


Dato : 01-01-07 12:53

Jeg bruger nedenstående formmail-script, som virker udmærket, men det er
ikke godt nok, da e-mailen - så vidt jeg kan se - kan aflæses og indhøstes
af diverse spamrobotter. Hvad kan jeg gøre for at gøre det muligt for
brugerne at sende formmail til mig, uden at min e-mail kan høstes af
spamrobotterne?

v.h.
Jakob

------------------------------------------------------
Her er mit script:
----------------------------------------------------------
<?php

if ($_POST["skriv"]){

$navn = $_POST["navn"];
$email = $_POST["email"];
$indhold = nl2br($_POST["besked"]);

require_once 'smtp_mail.php';
$modtager = 'falsk44@webspeed.dk';

$afsender_navn = 'Formmail - jakobmunck.dk';
$afsender_email = $email;

$subject = "Formmail - www.auro.dk";

$headers = "MIME-Version: 1.0\r\n".
"Content-type: text/html; charset=iso-8859-1\r\n".
"From: \"Auro.dk\" <".$afsender_email.">\r\n".
"To: \"Client\" <".$modtager.">\r\n".
"Date: ".date("r")."\r\n".
"Subject: ".$subject."\r\n";

//emne
$emne = 'Formmail - Auro.dk';

//selve mailkommandoen som sender mailen.
mail($modtager, $emne, $indhold, $headers);

echo "<br><br><br><br><font face='Verdana, Arial Helvetica' size='4'
color='#606060'>";
echo "<center>Så er din mail afsendt!</center>";
echo "</font>";
}
else{
?>

<br><br>

<table border="0" bordercolor="#000000" align="center" width="50%"
cellpadding="10" cellspacing="0">
<tr><td align="left" valign="top" class="sort11"">

<FORM METHOD=POST ACTION=<?php echo $PHP_SELF; ?>>
<INPUT TYPE=hidden NAME=skriv VALUE=1>
Dit navn:<br>
<INPUT TYPE="text" size="30" NAME="navn"><br>
<br>
Din e-mail:<br>
<INPUT TYPE="text" size="30" NAME="email"><br>
<br>
Meddelelse:<br>
<TEXTAREA NAME=besked COLS=40 ROWS=8></TEXTAREA>
<br><br>
<INPUT class="submit" style="WIDTH: 70px" type="submit" value="Send"
name="submit">

</FORM>

</td></tr></table>

---------------------------------------------------------------



 
 
Kim Ludvigsen (01-01-2007)
Kommentar
Fra : Kim Ludvigsen


Dato : 01-01-07 13:25

Den 01-01-07 12.53 skrev Jakob Munck følgende:
> Jeg bruger nedenstående formmail-script, som virker udmærket, men det er
> ikke godt nok, da e-mailen - så vidt jeg kan se - kan aflæses og indhøstes
> af diverse spamrobotter.

Spamrobotterne - og andre - kan ikke se dine php-koder, og din
mailadresse står udelukkende i php-koden. Du kan selv tjekke det: Prøv
at gå ind på siden med form-scriptet, og vælg at få vist kildekode. Som
du kan se, er mail-adressen ikke på siden.

--
Mvh. Kim Ludvigsen
Desktop Sidebar: Information at your fingertips.
http://kimludvigsen.dk

Sune Storgaard (01-01-2007)
Kommentar
Fra : Sune Storgaard


Dato : 01-01-07 13:48

Kim Ludvigsen skrev:

> Den 01-01-07 12.53 skrev Jakob Munck følgende:
>> Jeg bruger nedenstående formmail-script, som virker udmærket, men
>> det er ikke godt nok, da e-mailen - så vidt jeg kan se - kan aflæses
>> og indhøstes af diverse spamrobotter.
>
> Spamrobotterne - og andre - kan ikke se dine php-koder, og din
> mailadresse står udelukkende i php-koden. Du kan selv tjekke det: Prøv
> at gå ind på siden med form-scriptet, og vælg at få vist kildekode.
> Som du kan se, er mail-adressen ikke på siden.

Enig, det forhindrer dog ikke spamrobotter i at bruge formen, dog uden at
kende modtager adressen som du siger.
Det er ikke uhørt at man pludselig får bombet en gæstebog eller lignende.

Ved dog ikke hvad der er mest effektivt sammenholdt med brugervenligheden.
Har set nogle fuske med falske submit knapper, som spamrobotterne bruger,
mens mennesker ser andre. Andre bruger det lidt mere indviklede "indtast
bogstaverne du ser på billedet".

Der findes mange afarter af dem, nogle mere brugervenlige end andre..


(off topic til Kim Ludvigsen)
Har fået rykker#2 fra et "krakket" firma, så nu sker der forhåbentligt snart
noget i sagen :)

--
It's what happens when Alex Trebek has a picture of a giraffe
in his ass during an earthquake ! [The Tourettes guy]



Jakob Munck (01-01-2007)
Kommentar
Fra : Jakob Munck


Dato : 01-01-07 14:02


> Enig, det forhindrer dog ikke spamrobotter i at bruge formen, dog uden at
> kende modtager adressen som du siger.
> Det er ikke uhørt at man pludselig får bombet en gæstebog eller lignende.
>


Ja, det er nok det, som jeg har oplevet og gerne vil undgå. Men der findes
altså ingen anden metode end den med de slørede bogstaver, som brugeren skal
indtaste i formularen, forstår jeg....? Og det er jo temmelige
bruger-u-venligt. Så min konklusion må være, at det bedste nok er ikke at
bruge formularer til kontakt. I stedet kan man så vise en email i grafisk
form, den kan robotterne i hvert fald ikke aflæse.

Er det ikke bedste løsning?

v.h.
Jakob


PS. Tak for svarene.



Kim Ludvigsen (01-01-2007)
Kommentar
Fra : Kim Ludvigsen


Dato : 01-01-07 14:34

Den 01-01-07 14.02 skrev Jakob Munck følgende:

> bruge formularer til kontakt. I stedet kan man så vise en email i grafisk
> form, den kan robotterne i hvert fald ikke aflæse.
>
> Er det ikke bedste løsning?

Hvis det kun er robotterne, du vil stoppe, så er det nok bedst med et
snydefelt. Du laver et ekstra - skjult - indtastningsfelt i formularen.
I php-scriptet tjekker du så om feltet er tomt, hvis det ikke er tomt,
er det en spamrobot som er på færde.

Jeg ved ikke, om spamrobotter tjekker feltnavne, men jeg kan forestille
mig, at hvis man kalder det skjulte felt for "email", mens man kalder
e-mail-feltet noget andet, er der større chance for at robotterne
udfylder feltet.

Men prøv at kigge lidt tilbage i webdesigngruppen, emnet er forholdsvis
ofte oppe.

--
Mvh. Kim Ludvigsen
Hjælp til begyndere og uøvede computer- og internetbrugere.
http://kimludvigsen.dk

Kim Ludvigsen (01-01-2007)
Kommentar
Fra : Kim Ludvigsen


Dato : 01-01-07 14:36

Den 01-01-07 13.47 skrev Sune Storgaard følgende:

> (off topic til Kim Ludvigsen)
> Har fået rykker#2 fra et "krakket" firma, så nu sker der forhåbentligt snart
> noget i sagen :)

Hvis du har lyst, må du da meget gerne skrive lidt herom i juragruppen
(fx hvad de skriver). Jeg har endnu ikke hørt noget fra dem.

--
Mvh. Kim Ludvigsen
Få en gennemsigtig proceslinje med Transbar.
http://kimludvigsen.dk

Erik Ginnerskov (01-01-2007)
Kommentar
Fra : Erik Ginnerskov


Dato : 01-01-07 14:41

Sune Storgaard wrote:

> Ved dog ikke hvad der er mest effektivt sammenholdt med
> brugervenligheden. Har set nogle fuske med falske submit knapper, som
> spamrobotterne bruger, mens mennesker ser andre. Andre bruger det
> lidt mere indviklede "indtast bogstaverne du ser på billedet".

Man kan - helt uden at genere brugerne - gøre noget effektivt:

1 Lad være med at kalde mailformularen kontakt.xxx [1] eller mail.xxx.
Det er for oplagt og spambotterne finder hurtigt formularen. Kald i
stedet formularen et eller andet ulogisk, f.eks. 010107.xxx

2 Indsæt i formularen et felt, som med css er skjult for brugeren. Giv
feltet name="subject" eller name="message" og omdøb det tilsvarende
aktive felt til noget ulogisk.
Ret i mail-scriptet så det er det nye ulogiske feltnavn, der bliver
medtaget
og indsæt i scriptet en validering på det skjulte felt, så der ikke
kan sendes,
hvis der er skrevet i det skjulte felt.

[1] xxx kan stp for asp, php, htm(l) efter eget behov.

Da spambotter ikke læser css, vil de se det felt, som der ikke må skrives i,
og skrive i feltet. Jeg har nu i snart 2 år holdt min gæstebog og min
kontaktformular spamfri med disse to simple tiltag.

Jo, jeg får da noget spam med posten, men det må så skyldes, at andre har
lækket min adresse til botterne ved at lægge adressen i deres adresseliste
og tillade botterne at snuse i den liste. Spyware er jo et af de midler,
botterne benytter.

--
Godt nytår
Erik Ginnerskov
http://hjemmesideskolen.dk/ - http://ginnerskov.dk/
http://html-faq.dk



Jakob Munck (02-01-2007)
Kommentar
Fra : Jakob Munck


Dato : 02-01-07 11:02

Tak for de gode råd. Jeg har nu lavet en formmail med et mærkeligt navn og
med et skjult felt. Hvis dette felt udfyldes (af en spamrobot) afsendes
mailen ikke. Det virker udmærket på min site (www.auro.dk), men jeg ved ikke
om det også holder spamrobotterne ude, for jeg kan jo - så vidt jeg ved -
ikke teste det. Jeg må bare vente og se om jeg modtager en masse spam. Gør
jeg det, så virkede det ikke.

Er der andre måder at teste det på??


v.h.
Jakob Munck

PS. Alle brugere af denne nyhedsgruppe ønskes et godt nytår!

---------------------------------------------------------
Her er min kode
------------------------------------------------------------
<?php

include "top1.inc.php";
include "database.inc.php";
include "menu.inc.php";
include "top2.inc.php";
?>

<br><br>

<center>
<h1>
Meddelelse til<br>Webmaster
</h1>
</center>
<br>

<!--
<table border="1" bordercolor="#d0d0d0" align="center" width="25%"
cellpadding="5" cellspacing="0">
<tr><td align="center" valign="top" class="sort11"">
Meddelelse til webmaster
</td></tr></table>
-->

<?php

if ($_POST["skriv"]){


$navn = $_POST["navn"];
$email = $_POST["email"];
$a8573 = $_POST["a8573"];
$indhold = nl2br($_POST["besked"]);


require_once 'smtp_mail.php';


$sql = mysql_query("SELECT * FROM auwebmaster WHERE we_id = '117'");
$data = mysql_fetch_array($sql);


//echo $data["email"];

$modtager_email = $data["email"];

//$modtager = 'falsk@webspeed.dk';

//$modtager = $email;



$afsender_navn = 'Formmail - Auro.dk';
$afsender_email = 'falsk@webspeed.dk';


//orig, giver lang afsenderadr:
//$headers = 'From: "'.$navn.'"
//Reply-To: "'.$navn.'" ;
//X-Mailer: PHP/'.phpversion().';
//Content-Type:text/plain; charset="iso-8859-1";';

////////////////////////////

$subject = "Formmail - www.auro.dk";

$headers = "MIME-Version: 1.0\r\n".
"Content-type: text/html; charset=iso-8859-1\r\n".
"From: \"Auro.dk\" <".$afsender_email.">\r\n".
"To: \"Client\" <".$modtager_email.">\r\n".
"Date: ".date("r")."\r\n".
"Subject: ".$subject."\r\n";

//////////////////////////////////

//meddelsen som skal sendes til modtager.
//$indhold = 'Denne mail er sendt via php\'s glimrende mail-funktion.';

//emne
$emne = 'Formmail - Auro.dk';

//tester om en robot har udfyldt det falske email-felt:
if($email == ''){
//selve mailkommandoen som sender mailen.
mail($modtager, $emne, $indhold, $headers);
}

echo "<br><br><br><br><font face='Verdana, Arial Helvetica' size='3'
color='#606060'>";
echo "<center>Så er din mail afsendt!</center>";
echo "</font>";


}
else{


?>


<br>

<table border="0" bordercolor="#000000" align="center" width="50%"
cellpadding="10" cellspacing="0">
<tr><td align="left" valign="top" class="sort11"">

<SCRIPT type="text/javascript">
function CheckFile() {
if (document.a3586.navn.value.length < 5) {
alert("Skriv dit navn !");
return false;
}
if (document.a3586.a8573.value.length < 8) {
alert("Skriv din e-mail !");
return false;
}
var forLangt = /[^\s]{35,}/; if
(forLangt.test(membership.email.value)){ alert('Der er en fejl i din
e-mail !'); return false; }
return true;
}
</SCRIPT>


<FORM METHOD="POST" name="a3586" ACTION="<?php echo $PHP_SELF; ?>"
onSubmit="return CheckFile();">
<INPUT TYPE=hidden NAME=skriv VALUE=1>
Dit navn:<br>
<INPUT TYPE="text" size="30" NAME="navn"><br>
<br>
Din e-mail:<br>
<INPUT TYPE="text" size="30" NAME="a8573"><br>

<SPAN style="DISPLAY: none">
E-mail (snyd for robotter):
<INPUT TYPE="text" size="30" NAME="email">
</SPAN>

<br>
Meddelelse:<br>
<TEXTAREA NAME=besked COLS=40 ROWS=8></TEXTAREA>
<br><br>
<INPUT class="submit" style="WIDTH: 70px" type="submit" value="Send"
name="submit">

</FORM>


</td></tr></table>


<?php
}
include "bund.inc.php";

?>
-----------------------------------------------------------



Søg
Reklame
Statistik
Spørgsmål : 177500
Tips : 31968
Nyheder : 719565
Indlæg : 6408518
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste