Currently, we are validating inputs from a human written database, which is continuously being expanded with new user inputs and new images. One image is used for validation, and the other is used for expanding the pool.
Currently, we are validating inputs from a human written database, which is continuously being expanded with new user inputs and new images. One image is used for validation, and the other is used for expanding the pool.
The 'noun' (beerbottle, golfcart) is always in the same place in the DOM (so, easily targetable as text) The urls for each image appear to be constant as well. I also discovered the element with the token and the structure of the POST requests to get the pair of images as well as to send data. It might be possible to just bruteforce it with a little scripting, to send random boxes based on the size of the images and when I get "success" back, I know to associate those boxes with those image urls.
I assume I can't simply replace the images with ones I want (that would be insane) but I might be able to just bruteforce it with calls to the api until I get images I know. I would suggest that rather than exposing the actual image urls, you serve them up with obfuscated urls (though I personally wouldn't even want them to be publically accessible anyway.)
Also, maybe add a bit of good old fashioned cruft to the images themselves, to throw off attempts at storing their hashes. Maybe rotate or flip them now and then, change the colors, add random lines, filters, etc (basically what happens with text captchas.)
Just some random ideas.