Hacking DVD BackTrack, Linux, Hashe RSS Feed twitter airdump.cz BackTrack 3 4 5 6 CZ
Security a Tip
Donate a Sponzor

PHP Spam killer

spam infekce Návod na jednoduchý PHP spam killer. Máte vlastní redakční systém, používate CMS které nemá integrovanou podporu CAPTCHA? Zde je jednduchý návod jak zprovoznit primitivní (100% efektivní ochrana) v PHP. Kód zabráni uložení příspěvku do databáze – pozažmo jeho zveřejnění. Na naše „anglické“ doméně byl do fóra nasazen PunBB – jak je známo jedná se o jednoduchý a rychlý redakční systém pro diskuzní fóra. Poslední verze ale neobsahuje žádnou ochranu proti spamu. Oplatí se pracně lokalizovaný a nastylovaný PHP kód vyměnit za robusnější phpBB, s ochranou CAPTCHA? Existuje jednoduché řešení. To spočíva v úprave PHP kódu v souboru post.php. Zde je část zdrojového kód (řádek 168..)

// Clean up message from POST
$message = pun_linebreaks(trim($_POST[‚req_message‘]));

if ($message == “)
$errors[] = $lang_post[‚No message‘];
else if (strlen($message) > PUN_MAX_POSTSIZE)
$errors[] = $lang_post[‚Too long message‘];
else if ($pun_config[‚p_message_all_caps‘] == ‚0‘ && strtoupper($message) == $message && !$pun_page[‚is_admmod‘])
$message = ucwords(strtolower($message));

// Validate BBCode syntax …CUT…

zde je upravený kód

// Clean up message from POST
$message = pun_linebreaks(trim($_POST[‚req_message‘]));

if ($message == “)
$errors[] = $lang_post[‚No message‘];
else if (strlen($message) > PUN_MAX_POSTSIZE)
$errors[] = $lang_post[‚Too long message‘];
else if ($pun_config[‚p_message_all_caps‘] == ‚0‘ && strtoupper($message) == $message && !$pun_page[‚is_admmod‘])
$message = ucwords(strtolower($message));

$words = array(
„http“,
„virus“,
„href“,
„видео“,
„поxxо“,
„poxx“,
„ring“,
„sxx“,
„axxl „,
„vxxra“,
„pixxs“,
„puxxy“ );
foreach($words as $word)
{
if(stristr($message, $word))
$errors[] = $lang_post[‚Forbidden words in post. Access denied‘];
}
// Validate BBCode syntax …CUT…

Další možnost je použití black listu, pak stačí pouze

$words = file(‚./blacklist‘);
foreach($words as $word)
{
if(stristr($message,rtrim($word))) $errors[] = $lang_post[‚Forbidden words in post. Access denied‘];
}

+ umístění souboru blacklist do složky. Po úpravě PHP kódu klesl počet spamů z 10 denně na 0. V příkladu písmeno x nahrazuje kritické části filtrované fráze.

V /lang/En/post.php stačí nadefinovat hlášku pro Forbidden words in post. Access denied. Výsledek při pokusu o odeslání příspěvku se závadným obsahem pak může vypadat třeba takhle..

spam killer

Za konzultace díky b0 a starenka.

Diskuze AMP Security Fórum

Odkaz vede do sekce Diskuze článků a tutoriálů – komentáře směrujte do příslušné sekce.

Kam dál?



Přihlásit / Odhlásit odběr novinek

Počet přihlášených k odběru novinek

    2573