Я пытаюсь сделать доску с mongoDB.
Я хочу присвоить идентификатор документа ObjectID.
Если пользователь может получить доступ к странице документа по адресу http://www.example.com/4easdf123123, где «4easdf123123» является идентификатором объекта mongoDB.
Существует ли какая-либо угроза безопасности. Если я использую и показываю идентификатор объекта Mongo в URL-адресе и использую его как идентификатор документа?
И любое предложение с присвоением идентификатора документа с помощью mongoDB?
Это не похоже на ObjectID объекта MongoDB – ObjectID составляет 12 байтов двоичных данных, а при визуализации в виде шестнадцатеричной строки (обычный способ ее использования в URL-адресе) длина 24 символов. Я предполагаю, что вы используете официальный PHP Mongo Driver , и в этом случае MongoId
класса MongoId
будет игнорировать недопустимые значения и создать новый для вас. В любом случае, лучше всего позволить драйверу генерировать ObjectID / MongoId
для вас, так как он будет делать это таким образом, чтобы избежать конфликтов.
Что касается безопасности использования его в ваших URL-адресах, вы должны быть в порядке. Разумеется, вы должны использовать обычные меры предосторожности при реализации кода, чтобы гарантировать, что текущий пользователь имеет доступ к просмотру отображаемого объекта и т. Д., Но больше нет угрозы безопасности использования ObjectID в URL-адресе, чем любой другой идентификатор базы данных (строка , integer и т. д.), и часто их меньше, поскольку ObjectID не имеет семантического значения (тогда как строка, подобная «adminuser» в URL-адресе, может сообщить, что этот URL-адрес относится к пользователю с повышенными привилегиями).