Ciao a tutti ho una domanda stupida da fare. Ho un blog e vorrei evitare che qualche malintenzionato possa scrivere migliaglia di pagine solo per rompere le scatole magari utilizzando un bot..., come posso fare?
Ciao a tutti ho una domanda stupida da fare. Ho un blog e vorrei evitare che qualche malintenzionato possa scrivere migliaglia di pagine solo per rompere le scatole magari utilizzando un bot..., come posso fare?
scusa ma offrici qualche dettagli in più sul tuo blog, software utilizzato etc etc...
Beh, o attivi un sistema antispam se il tuo blog lo prevede oppure lo implementi tu "artigianalmente" con tecnologie come i captcha.![]()
non è un vero proprio blog, mi sono espresso male. Diaciamo che ho creato un form su cui un qualsiasi utente può scrivere e tramite un pulsante "pubblica discussione" la scritta compare sul sito. Ho utilizzato PHP. Io avrei pensato di inserire un controllo prima del pulsante "pubblica discussione" tipo appunto captcha, ma io js non lo conosco... scrivo da poco solo php...
Innanzitutto il captcha devi generarlo lato server, quindi con php, anche perche poi con un qualunque bot una protezione fatta in javascript è del tutto inutile e inefficace.
ti consiglio di cercare su google "captcha image php" o qualcosa del genere, troverai numerosi script e sta a te scegliere quello che si adatta maggiormente alle tue esiegenze. Naturalmente dovrai testare anche sul campo l'efficacia dello script utilizzato.
Inoltre, ti consiglio di validare attentamente l'input dell'utente prima di scriverlo sul database, e di proteggere le query, perchè nella peggiore delle ipotesi un hacker potrebbe provocare danni irreparabili al contenuto del tuo database.
ho trovato uno script, ma sinceramente non so come adattarlo. lo script è:
<?php
session_start();
if($_POST)
{
if($_POST['txt_captcha']!="")
{
if($_POST['txt_captcha']==$_SESSION['session_captchaText'])
{
echo("Sei umano");
}
else
{
echo("riprova");
}
}
}
?>
Se ho capito pene il meccanismo dovrei sostiruire il codice " echo("Sei un umano"); "
con il nome dello script.php che esegue l'action del mio form e permette la pubblicazione sul guestbook, giusto?
Non giudico la bontà dello script che stai testando, anche se tre if per validare il POST del codice captcha mi sembrano un po' superflui. Comunque nel codice postato manca la parte che genera l'immagine e il codice captcha che dovrai quindi includere.
ebbene si, devi sostituire l' echo "sei umano" direttamente con il codice che vuoi eseguire o con un redirect al tuo script.php: non ti rimane che provare.
buribus m i sapresti dire come posso scrivere il redirect al mio script che poi non è altro che la action del mio form.
Grazie ancora
nel tuo caso allora non devi utilizzare un redirect ma includere lo script che hai postato proprio nella pagina che processa i dati del tuo form.
Un esempio in sleng:
1) form.php
in questa pagina includi il codice php che apre la sessione e genere il captche image
action del form -> formprocess.php
2) formprocess.php
if ($_POST['chaptatxt]== ok bla bla)
// tuo codice -> insert nel database
else codice chapta errato!
Non riesco a far visualizzare l'immagine captcha... e non capisco il perchè...? il codice è questo:
<?php
session_start();
header("Content-type: image/png");
$captchaImage = imagecreatefrompng("imgsfo.png") or die("Cannot Initialize new GD image stream");
$captchaFont = imageloadfont("font.gdf");
$captchaText = substr(md5(uniqid(”)),-9,9);
$_SESSION[’session_captchaText’] = $captchaText;
$captchaColor = imagecolorallocate($captchaImage,204,204,204);
imagestring($captchaImage,$captchaFont,15,5,$captc haText,$captchaColor);
imagepng($captchaImage);
imagedestroy($captchaImage);
?>
e sul form ho inserito il codice:
[img]captcha.php[/img]</p>
Non capisco perchè non mi fa visualizzare l'immagine...