Versteckte Felder sind nicht immer ein Thema, aber sie sollten immer die Alarmglocken läuten, da sie zwei mögliche Probleme:
1) Wenn die Daten empfindlich ist, ist es an den Client macht (zB einen Proxy verwenden, oder einfach die Quelle anzeigen - und es ist sinnlos, dies programmgesteuert zu verhindern.
2) Wenn die Daten vom Server interpretiert werden, kann ein sachkundiger Benutzer sie ändern. Um ein dummeres Beispiel zu nehmen: Wenn das versteckte Feld den Banksaldo des Benutzers enthält, könnten sie einen Proxy oder einen nicht standardmäßigen Client verwenden, damit der Server denkt, dass sein Bankguthaben das ist, was er wählt.
Die zweite ist eine große Quelle von Sicherheitslücken in Webapps. Daten, die mit der Sitzung verknüpft sind, sollten serverseitig gehalten werden, es sei denn, Sie haben die Möglichkeit, sie auf dem Server zu validieren (z. B. wenn das Feld vom Server signiert oder verschlüsselt wurde).
Sofern Sie sicher sind, dass Sie nicht in eine dieser Fallen fallen, können sie in Ordnung sein. Als Faustregel würde ich versteckte Felder nur für Daten verwenden, die Sie gerne in der Abfragezeichenfolge sehen würden, oder wenn JavaScript sie zur Verarbeitung benötigt. In letzterem Fall müssen Sie noch sicherstellen, dass der Server validiert wird. Gehen Sie nicht davon aus, dass der Client Ihr Javascript ausführen wird.