语言不可知 – 我应该遮盖主键值吗?

我正在构建一个Web应用程序,其中前端是高度专业化的搜索引擎.搜索在主URL处理,当用户点击搜索结果进行更详细的显示时,将用户传递到子目录.这个切换是作为GET请求完成的,主键是在查询字符串中传递的.我似乎回想起在某处向用户公开主键的地方不是一个好主意,所以我决定实施可逆加密.

我开始怀疑我是否只是偏执狂.可逆的加密(base64)可能很容易被任何关心尝试的人打破,使得URL非常丑陋,也比其他情况更长.我应该只是删除加密并发送我的主键清除?

解决方法

你在做什么是基本的混淆.一个可逆的加密(和base64并不算作加密)主键仍然是一个主要的关键.

你正在阅读的内容是这样的:你通常不希望你的主键在系统之外有任何意义.这被称为技术主键而不是自然主键.这就是为什么你可以为患者ID而不是SSN使用自动编号字段(这称为自然主键).

技术主键通常比自然主键更受欢迎,因为看起来不变的事情会改变,这可能会导致问题.即使是国家也可以存在,不再存在.

如果您确实有技术主键,则不希望通过给予他们自己的意思,使它们成为事实上的自然主键.我认为在URL中放一个主键是很好的,但安全是一个单独的主题.如果有人可以更改该URL并获得访问权限,那么它们不应该访问,那么这是一个安全问题,需要通过身份验证和授权来处理.

有些人会争辩说用户不应该看到它们.我不认为你需要走远.

相关文章

vue阻止冒泡事件 阻止点击事件的执行 <div @click=&a...
尝试过使用网友说的API接口获取 找到的都是失效了 暂时就使用...
后台我拿的数据是这样的格式: [ {id:1 , parentId: 0, name:...
JAVA下载文件防重复点击,防止多次下载请求,Cookie方式快速简...
Mip是什么意思以及作用有哪些