Witam,
Otóż posiadam stronę oparta na systemie Mygad 2.0. I wszystko było by super gdyby nie fakt, że owy skrypt nie posiada żadnego lepszego zabezpieczenia przed botami, a kasowanie tysięcy bezsensowych opisów mija się z cele. Stąd chciałbym jakoś zabezpieczyć się. Jednak moje umiejętności są zbyt małe abym sobie mógł sam z tym poradzić.
Ogólnie to z tego co ustaliłem. Za dodawanie prawdopodobnie odpowiedzialne są 2 pliki:
add.php
<?php
// moduł odpowiedzialny za dodawanie opisów
include(PATH_FUNCTIONS.'changeTags.php');
$site->assign('cats', $db->get_results('SELECT * FROM '.PREFIX.'categories ORDER BY name ASC', ARRAY_A));
if (isset($_POST['text'])) {
if($_POST['catID'] == 0) {
$site->info('err', 'Musisz wybrać kategorię');
} else {
if (!empty($_POST['text'])) { // blokada antyflood'owa jest włączona
if($site->cache('antyflood') == 1) {
if(!isset($_COOKIE['myGaD_antyflood'])) setcookie('myGaD_antyflood', 1
, time()+ $site->cache('antyflood_time'));
if(!isset($_COOKIE['myGaD_antyflood'])) $user->addDesc();
else
$site->info('err', 'Błąd! Nie możesz dodać nowego opisu tak szybko po poprzednim, zaczekaj chwilę i spróbuj ponownie.');
// jeżeli nie ma blokady po prostu dodaj
} else
$user->addDesc();
} else {
$site->info('err', 'Musisz wpisać treć opisu');
}
}
}
?>
Oraz plik add.tpl
{if not $done}
<form action="./opisy,add.html" method="post">
<table id="tbl_powitanie"> {foreach item=cat from=$cats}
<option value="{$cat.id}" {if $cat.id eq $smarty.request.catID}selected="selected"{/if}>{$cat.name}
</option> {/foreach}
<td><input type="text" name="text" style="width: 350px;" maxlength="70" value="{$smarty.post.text}" /></td> <td><input type="text" name="author" value="{$smarty.post.author}" style="width: 350px;" maxlength="30" /></td> <td><img src="captcha/index.php?<?php echo session_name()?>=
<?php echo session_id()?>" style="vertical-align:middle" />
<input type="text" name="keystring" size="20"></td> <td><input type="hidden" name="id" value="{$smarty.get.k}" /><input type="submit" name="submit" value="Dodaj" /></td> Autor strony nie ponosi żadnej odpowiedzialnoci za treć umieszczonych tekstów,
<br>są one autorstwa użytkowników oglądających tą stronę,
<br>jeli naruszają one Twoje uczucia religijne,
<br>obrażają Cię lub w jaki kolwiek inny sposób niezgadzasz się z ich trecią
<br>poinformuj o tym administratora strony
<a href="mailto:pamporek@opisy-gg.co.pl">pamporek@opisy-gg.co.pl
</a> </b>{/if}
Ten drugi odpowiedzialny jest za wizualna strone - szablon.
Chciałbym w jakikolwiek sposób zabezpieczyć ten formularz aby troche zredukować ilość niechcianego spamu.
Z innego skryptu nawet załatwiłem sobie skrypt do wyświetlania obrazków Catpcha, ale nawet dodatkowe pole 2+2 by mnie uratowało. Jednak sam nie mam pojęcia - probowałem już na wiele sposobów i niestety nie działa.
Link do skryptu z moja wersja Captcha:
www.opisygadu.co.cc/captcha.rar
Z góry dziękuję za wszelkie wskazówki/pomoc i pozdrawiam