首页 / MYSQL / mysql-向客户端公开数据库主键
mysql-向客户端公开数据库主键
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql-向客户端公开数据库主键,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1769字,纯文字阅读大概需要3分钟。
内容图文
![mysql-向客户端公开数据库主键](/upload/InfoBanner/zyjiaocheng/882/3ce305f53e8b4a6d8c844dcc537782cf.jpg)
因此,我有一个用Swift编写的iOS应用程序,该应用程序与具有SQL数据库的node.js服务器进行通信.该应用程序使用数据库ID从数据库中检索对象.因此,应用程序上的搜索功能将返回ID数组,并且该应用程序使用其所需的对象的ID从服务器请求对象数据.
这些ID对应于对象表中的一个自动递增的主键整数,例如:
CREATE TABLE database.events (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
name VARCHAR(100) NOT NULL,
description VARCHAR(1000) NOT NULL
);
据我所见,有些人认为这是一件很糟糕的事情,而其他人则说,如果做得正确,这应该不是问题.我认为就我而言,后者是我同意的. “事物”是指将数据库ID暴露给前端(客户端应用程序).
我的理解是,这可能有2个主要问题:
>如果黑客利用了该应用程序并弄清楚了它是如何构成的
请求到服务器,他们可能发送恶意请求
他们不应该看到的数据.
>自动递增ID可以显示用户数,有关
该企业可能拥有的客户和客户数量.
这些是我唯一真正的问题,对吗?
对于第一个,我已经在服务器端进行了必要的检查,以确保用户无法请求或获得对他们没有查看权限的数据的访问权.
对于第二个问题,我想这更多是为什么我要发布此问题的原因是如何优雅地处理此问题.诚然,它不像在应用程序中显示在URL中的ID那样糟糕,它需要对应用程序进行黑客攻击才能查看其发送和接收的数据.但是,我仍然认为这是一个问题,并且希望掩盖ID以阻止任何可能从ID中获得上述信息的人.
我本来是想从使用hash-id开始的自动递增ID创建一种哈希ID,但是如果您只想生成我希望使用的数字ID,他们建议使用Optimus.然后,应用程序客户端将使用此哈希ID从服务器请求对象.
我的问题是,这是一个合理而优雅的解决方案吗?有没有更好的办法?还是我错过了通过执行上述任何操作而创建的严重漏洞?
解决方法:
散列ID的想法很好,大多数数据库为此使用GUID.另一方面,它们不提供任何安全性,只能帮助解决问题2.
有关更多信息,请阅读:http://blog.codinghorror.com/primary-keys-ids-versus-guids/
GUID(和许多哈希)的目标是唯一,而不是加密安全(不可预测).问题1只能通过实际的安全身份验证机制来解决.
参见:Is Microsoft’s GUID generator cryptographically secure
内容总结
以上是互联网集市为您收集整理的mysql-向客户端公开数据库主键全部内容,希望文章能够帮你解决mysql-向客户端公开数据库主键所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。