Originariamente inviato da adrenokromo
...
Però non ho ben capito l'altra soluzione che proponi.. Mettiamo che io generi questo codice random.. lo "trasformi con js".. ma poi come lo uso? A che scopo mi è utile per la verifica?
Diciamo che lato server generi un codice random di sicurezza.
Salvi questo codice in una variabile di sessione...
Codice PHP:
$code = genera_codice_casuale();
$_SESSION['code_sec'] = $code;
...e lo inserisci in un campo hidden del form da inviare.
Codice PHP:
<form action="target.php" method="post">
...gli altri campi del form
<input type="hidden" id="cod_sec" name="code_sec" value="<?=$code?>" />
..resto del form
</form>
Lato client devi catturare l'evento di invio del form e applicare al valore del campo code_sec l'algoritmo che preferisci.
Ad esempio supponiamo di invertire la stringa:
Codice PHP:
function submitHandler() {
var el = document.getElementById('code_sec');
el.value = reverse(el.value);
}
Lato server devi controllare, anzitutto che il campo hidden venga inviato, e che contenga effettivamente la stringa invertita
Codice PHP:
if(isset($_POST['code_sec'])) {
if($_SESSION['code_sec'] === reverse($_POST['code_sec'])) {
//OK, qui puoi ragionevolmente pensare di aver a che fare
//con una persona...forse ;)
}
}
Le due funzioni reverse le devi scrivere tu, sia in PHP, sia in Javascript, se non esistono già. Oppure le puoi sostituire con qualche algoritmo più astruso...ma in effetti non migliore di molto l'efficacia del metodo.
Il problema principale di questo sistema è, naturalmente, l'utilizzo di javascript:
1 - Se l'utente l'ha disabilitato, il server non accetterà mai il form.
2 - Qualcuno può sempre pensare di leggersi il tuo codice, capire il meccanismo, e a quel punto sei da capo.
E' anche vero che se qualcuno ha così tanta voglia di darti fastidio, può essere divertente vedere chi è più bravo 
Spero di esserti stato utile.