如果我想为文档生成可共享的链接,我可以简单地使用文档id website.com/shared/:id
。
class Item: Object, ObjectKeyIdentifiable {
@Persisted(primaryKey: true) var _id: ObjectId
@Persisted var userId: String
@Persisted var name: String
}
字符串
但是,如果恶意用户发现了文档ID,我将无法生成新的链接。所以,我正在考虑有一个单独的共享ID website.com/shared/:shareId
。
class Item: Object, ObjectKeyIdentifiable {
@Persisted(primaryKey: true) var _id: ObjectId
@Persisted var userId: String
@Persisted var name: String
@Persisted var shareId: ObjectId // or UUID or string
}
型
可以简单地使用ObjectId
或UUID
吗?
我试着在Google Docs上生成一个链接,它们似乎没有使用单独的ID。
编辑时,链接为https://docs.google.com/document/d/1HDPFRcAxzeOCVyil9OEunOcFO_vknq_kBDYGFysb35A/edit
,共享链接为https://docs.google.com/document/d/1HDPFRcAxzeOCVyil9OEunOcFO_vknq_kBDYGFysb35A/edit?usp=sharing
。
是否有任何分享的最佳做法?我无法找到关于这个主题的太多信息。
1条答案
按热度按时间2w2cym1i1#
MongoDB ID是guessable。你可以有一个单独的共享id字段,使用UUID更难猜到,或者使用一个加密安全的随机数生成器,不保证是唯一的
website.com/:documentId/:secureToken
。(在服务器上,验证请求中的令牌与数据库中的令牌相同)最好有一组协作者,并生成可能过期或容量最大的邀请链接。