我正在构建一个Web应用程序,其中前端是高度专业化的搜索引擎.搜索在主URL处理,当用户点击搜索结果进行更详细的显示时,将用户传递到子目录.这个切换是作为GET请求完成的,主键是在查询字符串中传递的.我似乎回想起在某处向用户公开主键的地方不是一个好主意,所以我决定实施可逆加密.
我开始怀疑我是否只是偏执狂.可逆的加密(base64)可能很容易被任何关心尝试的人打破,使得URL非常丑陋,也比其他情况更长.我应该只是删除加密并发送我的主键清除?
解决方法
你在做什么是基本的混淆.一个可逆的加密(和base64并不算作加密)主键仍然是一个主要的关键.
你正在阅读的内容是这样的:你通常不希望你的主键在系统之外有任何意义.这被称为技术主键而不是自然主键.这就是为什么你可以为患者ID而不是SSN使用自动编号字段(这称为自然主键).
技术主键通常比自然主键更受欢迎,因为看起来不变的事情会改变,这可能会导致问题.即使是国家也可以存在,不再存在.
如果您确实有技术主键,则不希望通过给予他们自己的意思,使它们成为事实上的自然主键.我认为在URL中放一个主键是很好的,但安全是一个单独的主题.如果有人可以更改该URL并获得访问权限,那么它们不应该访问,那么这是一个安全问题,需要通过身份验证和授权来处理.
有些人会争辩说用户不应该看到它们.我不认为你需要走远.