We have a lot of spammers (which are logged in users) creating content on our site. They are creating photo nodes without photos (which I have recently allowed as a way to catch them and ignore them, sort of a honeypot). I have also added the honeypot module but the 10 second delay doesn't seem to be working too well...
Is there a way to catch these nodes that don't have photos and block them from ever actually being created? I was thinking that it could be done in the
presave hook, but unsetting the node didn't seem to work.
I could make the image required, but the bot is filling out all of the required fields so far, and it isn't hard to upload an image using a script.
I have implemented what I put in my answer and it seems to work, and I am giving the spammers 10 tries/day before they get banned. This may or may not be too lenient.
So far I have caught and banned 14 spam accounts (~1 hour of it being live).