Ja používam podobne skryté pole. Pred odoslaním napr. po kliknutí na button, skontrolujem formulár a po správnom vyplnením vyplním skryté pole nejakým vygenerovaním stringom v JS napr. :
var SecurityNumber = ((100*10*20) / 20).toString() + "a" + "b" + String.fromCharCode(65) + String.fromCharCode(54) + String.fromCharCode((65/2)*3);
// čo znamená 1000abA6a
To číslo porovnáš a na strane servera si ho len overíš. Myslím si, že málo robotov má implementovaný JavaScript.