Javascript tabanlı captcha' yı neye göre kullanacağınıza göre bu durum değişebilir. Söylediğiniz işlem sadece tarayıcı tabanlı yapılan işlemler için ( backend tarafına işlem sağlanmayan ) geçerli olabilir. Yani javascriptle doğrulama yapıp php ye post yaparsanız güvenlik açığı ortaya çıkacaktır
Söylediğiniz çok fazla güvenlik gerektirmeyen oy kullanma v.b konular için belki kullanılabilir teşekkürler.
Captcha kodu back end tarafında oluşturulup render edilirken js ile canvasa yazılarak kullanılabilir daha sonra post edilen veri back end kısmında karşılaştırılır. Bunda sorun yok ister front end ister back end tarafında kullanılır yeterki kullanmak istensin.
Canvas captcha sistemleri image olarak sunulan capcha sistemlerine göre çok daha güvenlidir ister front end kontrollü olsun ister back end. Çünkü canvas sistemler html tarafında kod göstermez, image gibi indirilemez ya da sürüklenemez, grafiksel bir işlemdir.
Güvenlik açığı oluşturma konusunda ise zaten koda müdahale etmeden captcha geçmek imkansız sebebi şu. Canvas kodu class içerisinde oluşturulup kontrol sağlanırsa eğer değişkende tanımlı olan captcha değeri dışarıdan erişilip değiştirilemez bu sayede forma girilen değer dışında bu değişkendeki değer ile karşılaştırma yapmak imkansız. Amacımız zaten botları uzak tutmak, spam engellemek. Bu da gayet güvenli bir şekilde sağlanıyor.
Yıllardır captchayı bu şekilde kullanırım hatta bir çok npm modülü dahi bu şekilde yazılmıştır ve hiçbirinde sorun yaşamadım.