I’ve been told that it’s bad to expose database internals but I’ve started noticing lots of relatively high profile sites doing it, e.g. Chartboost and ServerDensity both expose the MongoDB document _id field in their URLs.
Can someone shed some light as to why that’s bad to do? The only thing I can think of is that it’s bad for SEO because they’re not human readable URLs, but is this even true?
By “exposing database internals” I understand stuff like exposing the database server to the internet or letting user run arbitrary queries. This stuff is unquestionably bad. Or, if you somehow expose your database schema, a malicious user can use this to his advantage.
Using object ids in urls is fine. Humans do not memorize urls anyway, and search engines don’t care if link to a post is made of post slug or post id.