我正在开发一个应用程序,允许用户共享简单调查的链接。为此,我想为每个调查生成唯一的 URL,因此具有如下 URL:
http://myapp.com/aBcDe1F
我希望 URL 的字母数字标识符部分是伪随机的并且有点短(6-8 个字符)。现在,生成它很容易,但如何确保它们是唯一的而且是伪随机的?我是否必须生成它,然后检查数据库查询以确保它之前没有生成过,如果没有,则重新生成另一个字符串并再次尝试相同的过程?
我知道以这种方式混淆 URL 并不能真正确保安全性,但此应用程序排除了基于密码的身份验证,因此我尝试使用伪随机字符串。
是的 - 我认为你必须按照你的描述去做。但要完全迂腐(嗯,我的意思是“安全”)not做这个:
do
{
generate a value
check the database
}
while (the value did not exist)
insert a new row into the db
您可以同时为两个不同用户生成相同值的可能性(非常)小。
相反,使用该值作为数据库中的主键并执行此操作
do
{
generate a value
insert a new row into the db
}
while (there was a PK violation)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)