In addition to Chris's answer about CP, I'd point out that the way the big guys handle this is:
- Using databases containing hashed values of known bad material
- This isn't even a particularly effective solution, because the slightest change changes the hash
- They will generally, or often maintain their own database, in addition to any publicly-accessible ones
- Reporting from users
- In the form of email contacts (
- Reporting links for sites with user-generated contact (
click here to report this)
- Paying actual human beings to review content, or authorize content before it's uploaded
- The MPAA and RIAA, for example, employ dozens of people to scour the web for their copyrighted materials
So, for you, that basically means there's not going to be a great way for you to filter out objectionable material that isn't illegal, because objectionable material needs to be identified by a person. Most of what is identified doesn't ever find its way into publicly-accessible database, and even that which does is pretty easily altered to get around hash checks. So the bottom line is you can't really prevent this type of behavior, and all you can do is react once it happens.
And do be aware, if you start scanning content for one type of objectionable material, you'll be expected to scan for other types. The law varies from place to place, of course, but if you're scanning for CP, animal cruelty videos, and etc., but don't scan for pirated media, if someone uses your server to host copyrighted materials, you'll have a hard time avoiding liability for that. So... well, nothing's ever simple, is it?