Egy irtó hatékony spamszűrő mp4



Hatékony védelem a spam ellen pdf ppt mp4




a spam könyv

http://mo.gyo.ro/

February 2007
M T W T F S S
« Jan   Mar »
 1234
567891011
12131415161718
19202122232425
262728  


Spam? Szinte már el is felejtettem mi az...

2007.02.04.

Megcsinálhatom?

Az ember azt hinné, hogy azt a néhány futóbolondot, akik a világ megjobbításáért tesznek valamit ingyen és szerelemből, senki nem bántja. Történt ugyanis, hogy Bob Jacobsen, akinek a vasúti terepasztal volt a hobbija, írt egy programot, ami lehetővé tette, hogy számítógéppel lehessen vezérelni a terepasztalt. És hogy a világ, ha csak egy kicsit is, de valóban jobb lehessen, ingyen elérhetővé tette a programját, mi több, még a forráskódot is megosztotta a világgal, hogy aki akarja, még jobbá tehesse vagy módosíthassa a kódot.

Eddig még szép volt a világ, de jött a KAM Industries nevű cég, akik valami hasonló projektben utaztak, és próbálták a bejegyzett szabadalmi jogukat érvényesíteni. Nehogy már valami senki belezavarjon az üzletükbe.

Jacobsen információkat kért arról, hogy pontosan mivel is sértette meg Å‘ a KAM szabadalmát, mire postafordultával kapott is egy számlát $203,000 összegrÅ‘l, mivel – állítólag – az a kb. 7000 felhasználó, akik ingyen letöltötték a nyílt forrású programot, és ezzel fejenként legalább 29 dollár kárt okoztak a KAM-nak.

A KAM ezen kívül írt Jacobsen akadémiai szponzorának, és bekérte az Å‘ összes levelezését. Jacobsen egy idÅ‘ után megírta nekik levélben, nem hinné, hogy a KAM keresete megállna a bíróságon. Azt ismegemlítette, hogy az Å‘ “problémás” szoftvere már azelÅ‘tt elérhetÅ‘ volt, hogy a KAM bejegyeztette volna a szabadalmát, és ezt a KAM ügyvédeinek is tudniuk kellene.

Ezek az öltönybe bújt gonosztevőkügyvédek azonban állították, ők nem is hallottak arról, hogy Jacobsennek a már megjelent munkája esetleg semmissé tenné az ő szabadalmukat, és továbbra is állították, hogy Jacobsen megsértette azt.

Bár nyilvánvaló, hogy a KAM szabadalmi bejegyzése ennek fényében érvénytelen, még nincs vége történetnek. Az mindenesetre kiderült, hogy az efféle szabadalmi jogok hátráltatják a nyílt forrású fejlesztőket (is). Sőt, még egy kisvállalkozás is fegyverként foghatja azt az érdekeit sértő fejlesztőkre.

Józan ésszel egyszerűen felfoghatatlan, hogy miért baj az, ha egy adott problémát egymástól függetlenül 2 vagy több csoport is megold. Persze megértem én azt, hogy ha mind a kettő hasonló tudású, minőségű, stb. és az egyik ingyen elérhető a felhasználók számára, akkor az a kereskedelmi megoldás piacát csökkenti, aminek az utóbbi részvényesei nyilván nem örülnek.

De a világ – ha a szabad versenyt nem korlátozzák – már csak ilyen: a ragadozók (=felhasználók) elÅ‘ször a gyengébb példányokat likvidálják (=nem szívesen választják a gyengébb megoldást). FÅ‘leg ha az legalább még drágább is.

A PHP mail() függvény használatáról

A spammerek keresik azokat az űrlapokat, amelyek segítségével nagy tömegben el tudják küldeni a kéretlen leveleiket. És sok ilyet találnak, ahol a PHP mail() függvényt nem megfelelő körültekintéssel használják.

A PHP dokumentációja szerint az alábbi paraméterekkel lehet meghí­vni a mail() függvényt:

bool mail ( string to, string subject, string message [, string additional_headers [, string additional_parameters]] )

Az alábbi kódrészlet a te@pelda.hu cí­mre küld egy levelet, és beállí­tjuk a feladó (From:) címét is.

$cimzett = “te@pelda.hu”;
$targy = “php teszt”;
$uzenet = “Hello!\n\nEz egy teszt uzenet!\n”;
$fejlec = “From: www@pelda.hu”;

mail($cimzett, $targy, $uzenet, $fejlec);

A 4. paraméternek (ahol a fejlécet be lehet állí­tani) tetszőleges más paramétereket is meg lehet adni, be lehet állí­tani pl. a levelező tí­pusát (X-Mailer:) vagy akár a kódolást is (Content-type:), stb.

Jó lenne azonban, hogy amikor megkapjuk a levelet, és válaszolni szeretnénk annak, aki az űrlapot elküldte (és megadta az email cí­mét), azt egyszerűen a válasz/reply gombra kattintva megtehessük. Ehhez az a Reply-To: mezőt kell beállí­tanunk a fejlécben, lásd lentebb:


$cimzett = “te@pelda.hu”;$targy = “php teszt”;
$uzenet = “Hello!\n\nEz egy teszt uzenet!\n”;
$fejlec = “From: www@pelda.hu”;
$email = $_POST['email'];

$fejlec .= “\r\nReply-To: $email\r\n”;

mail($cimzett, $targy, $uzenet, $fejlec);

Látható, hogy a $fejlec változó már 2 sorból áll, hozzáadtuk a Reply-To: mezőt, aminek az értéke a látogató email cí­me.

De mi van akkor, ha a látogató az $email változónak a aaa@pelda.hu\r\nBcc: bbb@yahoo.com\r\n email cí­met adja meg? Bár ez nem egy érvényes email cím, de mégis működik, mert ennek hatására a PHP az alábbi levelet állítja össze:

From: www@pelda.hu
To: te@pelda.hu
Reply-To: aaa@pelda.hu
Bcc: bbb@yahoo.com
Subject: php teszt

Hello!
Ez egy teszt uzenet!

Hoppá! A levelet már nem csak mi fogjuk megkapni, hanem vakmásolatban (Bcc:) a bbb@yahoo.com postafiók is. Persze, miért is küldené el bárki az “ez egy teszt üzenet” levelet még egy másik címzettnek is? De helyettesítsük be az elÅ‘bbi üzenetet a legdivatosabb tÅ‘dzse spammel, kínáljunk Rolexet vagy Viagrát, és a Bcc: mezÅ‘be pedig ne egy, hanem 200 email címet adjunk meg, és voila! már küldhetjük is a rengeteg spamet, kattintásonként 200 címzettnek.

200 email címet begépelni persze eléggé megterhelő feladat még egy spammernek is. Azonban erre nincs is szükségük, mert kész programok végzik el ezt a munkát, amelyeket az előzőleg feltört és zombivá alakított számítógépek futtatnak.

Csak egy apró figyelmetlenség, és nagy bajba hoztuk mind a szolgáltatónkat, mind pedig magunkat. Természetesen van megoldás, hogy ne legyünk a bűnözők rabszolgáivá. Ehhez mindössze annyit kell tennünk, hogy egyrészt fix értéket adunk a címzett email címét tartalmazó változónak, másrészt leellenőrizzük, hogy a látogató által beírt email cím szintaktikailag helyes-e, ellenkező esetben pedig egy hibaüzenet kiírásával megtagadjuk a levél elküldését. Első megközelítésként az alábbi függvény is megteszi:

function check_email($email){
  if($email == "")
     return false;

  if(preg_match("/^([a-zA-Z0-9-._]+)@([a-zA-Z0-9.-_]+)([a-zA-Z]+)$/", $email))
    return true;
  else
    return false;

}

.....

if(check_email($emailcim) == false)
   die("Hibas email cim!");