我正在使用MongoDB作为我的DBMS创建一个Web应用程序。
我需要一种方法来唯一地识别用户在屏幕上的列表中按下了哪个对象,并将其与数据库中的唯一文档相关联。
我一直很好奇:
输出(比如作为HTML元素的类nam,id或名称)我的文档的原始mongo _id值是一个坏主意吗?
它会泄露我可能使用MongoDB并为攻击者提供不必要的情报的事实?这会是一个重大问题吗?
我可以使用像XOR这样的简单双向加密方法,但是它真的有必要吗?
例如,这将直接显示给用户,通过检查原始HTML,他们可以清楚地看到文档文档ID。
<input type="hidden" name=elements[] value="29b34f28b28c1832">
<input type="hidden" name=elements[] value="54530d6e324f6f9a">
答案 0 :(得分:1)
是的,这些ID可以向攻击者建议:
但请记住,可能还有一些其他东西使用12字节十六进制作为标识符。同样以任何其他方式了解id也可能危及您的安全性,如果应用程序的安全性主要取决于人们无法知道您使用的数据库的前提,那么您宁愿不post such questions on SO。 (这个链接只是为了好玩)