我有一个简单的消息传递系统。在PHP中编码,MySQL和Java可能会实现。现在我想确保收件人的ID。目前我使用用户表的自动增量主键(1,2,3)。但这当然是不安全的。因为每个人都可以猜测,所有其他ID都从1到xxx计数。那么确保身份证的最佳商业实践是什么?在MD5中转换它(也许用一些密码文本“myencryptionkey”+ userId - > MD5)? 如果收件人ID很容易重现,垃圾邮件发送者将使用此系统用于他们的目的。BBP:如何在邮件系统中保护数据库ID?
我认为这是一个普遍的问题。以及“友谊邀请”。如果每个人都能猜到,如何构建ID,则可以发送大量的友谊邀请。
另一个想法: 什么是关于用随机创建的密钥加密userIds。我生成一个随机密钥,将它存储在会话cookie中。所以每个人都有一个用户123的其他标识符。所以我需要一个函数来加密和解密一个给定的整数。
如何像Facebook PROTEC其主键的网页?
用GUID表示PHP函数:** uniqid()**? – brill 2011-04-11 12:10:05
当然,MySQL支持在字段上自动生成GUID作为标识,你不需要自己生成和插入这些GUID。 – 2011-04-11 12:14:39
使用GUID时,请将GUID => ID映射保留在单独的表中,并使用数字ID保留在所有其他表中。这可以确保只有最小的性能损失(查找GUID => ID的时间),而不必在每次访问混淆主键时都要执行基于字符串的查找。 – ThiefMaster 2011-04-11 12:50:26