Connor wrote:No one is saying that we should return a 404 but say the user doesn't have permission, afaik the solution is to say that the page may exist, and the user may not have permission to view it. This is quite different to simply saying they don't have permission.
If we return a 404 with a message that does not confirm if pages exist or not I don't see a problem.
I see two, at the first glance:
- it doesn't help the user, at all. I browse through acme.com and follow a link explaining why Acme Gizmo is the best alive. If all I get is an error message saying: “ok the page you asked, well, I don't have it; or maybe I have it but I won't give it to you; or maybe my database is down; or maybe I've been taken over by aliens and they're after you” I won't bother with anything. I'll close the tab, I'll close the original Acme tab, and will move to the next point of order of my day.
It would be marginally better than the “thing” we currently have, but it's still confusing the user on purpose. We have the information, why not explain it to the user?
- for a less average web user, I think they may (and we can't blame them) take it as a personal insult. They know the server has the damn data, they can easily check if the topic is either private or has existed and being deleted, or if the link if bogus altogether. Why make the user life more difficult on purpose?
As for the security concern, Smartys explained and linked to similar problems already.
Erh... unless I'm blind, no he didn't.
Smartys wrote:No. You can't prove that the topic exists, which is the important part. It may have been deleted, it may not have been created yet, or it may be private, but you can not say with 100% certainty which it is. The idea is not specific to topics and forums but is important in general in order to prevent information from leaking.
And none of his links pointed to a similar issue, as far as I can see.
It's all relative to authentication. The general idea is, login is half the auth, if you give away the existence of a login, you're screw. I mostly disagree with this (the whole user list of any FluxBB forum is public, and security through obfuscation slightly delay the break in, but significantly delay the security solving) but that's not even the issue here.
We're not asking (yet
) about the auth, we're asking the software to qualify the server errors, in other words to disclose the existence of _content_.
What's the security issue with content? What can someone possibly do when he knows 100% a specific content exist? Especially when he knew for 99.9% certainty before that?
To take a sentence off Smartys quote, “The idea is not specific to topics and forums but is important in general in order to prevent information from leaking”: but as admin we want to propagate information! That's the whole point of a forum software, isn't it?
Again, what would be a scenario where a hacker can do something evil with knowing 100% that the topic n is private? I just don't understand that.