Yo diría que cualquier usuario con un conocimiento mínimo de html puede construir un formulario con los datos que quiera y apuntarlo con ruta absoluta a tu página de proceso (ficha.php) y lograr lo mismo. Estamos en lo mismo de siempre: la seguridad hay que manejarla en el servidor: con javascript no podés solucionarlo.
Un problema conocido cuando se realizan juegos en javasript, por ejemplo, es que el guardado de scores en base de datos siempre queda con algún agujero debido a que no hay manera fiable de evitar fraudes durante el intercambio con el servidor. Lo único que queda es minimizar ese riesgo con algunas técnicas heurísticas, obfuscación y tokens.
En tu caso en particular, quizá es un poco más sencillo porque si es un sistema de votos basta con controlar que el valor no supere a x número (cosa que parece que estás controlando, aunque deberías usar isset además de lo que estás utilizndo), que una misma ip no pueda votar más de x veces (no es del todo fiable pero ayuda), que el tiempo de votación no supere x cantidad de tiempo y usar tokens para evitar
CSRF.