Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
防止复制/复制PHP/SQL数据库_Php_Javascript_Sql_Jquery - Fatal编程技术网

防止复制/复制PHP/SQL数据库

防止复制/复制PHP/SQL数据库,php,javascript,sql,jquery,Php,Javascript,Sql,Jquery,我正在创建一个商店库存管理PHP/SQL数据库,该数据库将在商店的本地服务器上使用。现在我遇到了一个问题。如何防止有人未经许可将数据库从我的客户端PC复制到另一台PC?我们如何开发一个只有开发者才能安装的数据库?其中一些建议可能是: 使用机器代码等,例如数据库只能在一台PC上工作,但仍有人可能会更改控制器代码,并在未经开发人员许可的情况下非法复制。 其他建议可能是使用登录系统,但客户仍然可以将副本提供给其他人并共享登录信息。 所以我的问题是: 有没有防止非法复制php/Sql数据库的好方法 换言

我正在创建一个商店库存管理PHP/SQL数据库,该数据库将在商店的本地服务器上使用。现在我遇到了一个问题。如何防止有人未经许可将数据库从我的客户端PC复制到另一台PC?我们如何开发一个只有开发者才能安装的数据库?其中一些建议可能是:

使用机器代码等,例如数据库只能在一台PC上工作,但仍有人可能会更改控制器代码,并在未经开发人员许可的情况下非法复制。 其他建议可能是使用登录系统,但客户仍然可以将副本提供给其他人并共享登录信息。 所以我的问题是: 有没有防止非法复制php/Sql数据库的好方法

换言之:
有没有办法让数据库只在客户端PC/PC上工作,这样如果有人将其复制到其他PC上,它将无法工作?请帮忙

最好的解决办法是

使用密码中未键入的密钥加密PC上的所有内容 将你的电脑锁定,以便有人无法复制它。 如果有人获得了数据,即使是加密的,如果他们愿意,他们也会取消加密。所以阻止他们进入是你最好的防御

您也可以加密数据库中的数据,但密钥将保存在某个地方。如果他们可以访问你的电脑,他们就可以访问未加密密钥。其他编程防御,如检查计算机硬件/注册表项等,也可以编程循环


因此,这就回到了加密你的电脑,因为加密密钥可能不会被写下来,并且会被锁定,这样一开始就有人无法获取数据。

没有办法安装特定于机器的数据库。您最好将其存储在加密的文件系统中,采取安全预防措施,例如对服务器进行基于强密钥的身份验证访问,关闭未使用的端口,确保软件是最新的,加密客户端和服务器之间的所有通信,等等,并物理保护机器。这就是为什么,例如,谷歌的数据中心是如此的受访问控制,在设施上有高度的安全性,作为一般规则,他们甚至不公布数据中心的位置

真的,当你想起来的时候,这是一件好事。毕竟,如果服务器崩溃怎么办?您真的希望绝对没有办法将数据恢复到另一台服务器吗


安全是重要的,但它能做的只有这么多。在某种程度上,你将不得不基于实际考虑做出妥协。

我高度精确地回答了这些问题,但因为我在目前的回答中没有得到一个非常合适的解决方案。经过一些研究并考虑答案后,我找到了一种方法。我们可以创建一个依赖于客户端PC中某些加密隐藏文件或机器代码或密钥等的数据库。我们必须开发一个脚本,在安装数据库时应用这些加密隐藏文件或机器代码或密钥。如果没有安全措施隐藏文件或机器代码或密钥,数据库将无法正常工作。开发人员应随身携带安装脚本,并在将数据库安装到客户端PC时使用。如果没有该脚本,数据库将无法安装,因此任何人都无法安装/复制数据库未经开发人员许可的数据库。查看答案和评论,这似乎是唯一简单的方法。

谢谢您的回复。你不明白我的意思。数据库将安装在客户端电脑而不是我自己的电脑上。客户端电脑不受开发人员控制。如果客户端非法将数据库提供给某人,如何防止他们使用。请检查我的编辑。为了更好地解释我的问题,我添加了一些行。谢谢你的回答,但实际上你没有正确理解这个问题。请检查我问题的补充说明我有一个想法。。。。如果我在安装数据库时在服务器上添加2,3个隐藏文件,并将其加密的时间戳/位置/其他信息存储在数据库中。数据库的客户端使用情况将取决于这些隐藏文件,即使有人复制这些文件,时间戳也不会匹配,数据库也无法工作。这是正确的方法吗?那么,我能想到的唯一方法就是修改DB应用程序本身,对数据做一些不同的处理——大部分代码都是公开的,所以如果你知道如何使用的话,你可以调整和更改结构,并更改PHP驱动程序等。这将它锁定在你自己的软件安装中。但是弄错了,你就一团糟了。否则,一切都是别人说的。必须有某种方法使数据库只在一台计算机或一个网络中工作。PHP和SQL几乎可以解决所有编程问题
问题,一定有办法,请帮助。这是一个法律问题,而不是技术问题。如果数据库需要一个托管在您的计算机上的数据库,只有您可以访问该数据库才能工作,该怎么办?@Charlie谢谢。。客户端有自己的本地网络。。所以我无法实现这个解决方案。谢谢你的回复,我知道有时候我们不得不在安全问题上妥协,不过我有个想法。。。。如果我在安装数据库时在服务器上添加2,3个隐藏文件,并将其加密的时间戳/位置/其他信息存储在数据库中。数据库的客户端使用情况将取决于这些隐藏文件,即使有人复制这些文件,时间戳也不会匹配,数据库也无法工作。这是正确的方法吗?我的第一个倾向是认为可能不是。如果有人复制了您的数据库,他们可以简单地发出一个查询来绕过任何检查。也许,如果数据库中的数据用某种签名加密,可能会更安全一些,但实际上,在这一点上,您也可以在源代码中硬编码一个密钥。我只是担心,当有人试图维护或恢复数据库时,你所经历的困难会对你造成伤害。嗯,谢谢你的回答。我对每个项目都有记录。使用此方法,我必须记录所有加密数据。因此,我可以很容易地恢复数据库在未来我理解你的观点。但是我们必须采取一些大胆的措施来阻止盗贼窃取我们的项目,这些项目是我们努力工作的成果。这是每个人都面临的风险。我认为,通过极端措施,您将面临更大的不可撤销的数据丢失风险。如果你为中情局工作,人们可能真的会被杀,我可能会理解。但对于商业数据、信用卡、客户信息等,存在安全性太高的问题。如果你的笔记本被意外破坏,或者你死了,没有人知道数据是如何加密的,会发生什么?恕我直言,我会坚持使用行业标准最佳实践的恢复手段,而不是一些奇怪的专有措施。还是*耸肩这是你的选择。我觉得我必须最后一次指出,你的建议需要花费大量的时间和精力,如果你必须恢复数据库,会造成很多麻烦,维护起来极为困难,对于一个拥有基本技能的黑客来说,要绕过它也很容易。如果你还想继续下去,我显然不能阻止你,但我不能强调你所做的是一个非常糟糕的想法。它最终会让你损失更多的声誉,而不是增加安全性。如果您仍然必须继续,那么祝您好运,您将需要它。@Skippus国王嗯,谢谢您的建议。。。你是对的。。。我住在一个国家,在那里偷软件并转售是一种习俗。恐怕我别无选择,我只是希望客户不要把我的软件给别人……@King Skippus,当时我正在为一块微芯片编写汇编软件。有一个硬件选项可以轻松锁定软件,这样就没有人可以检索了。如果PHP有一些实现这种安全性的方法,那就太好了。我想我唯一剩下的办法就是在服务器上保留用户名和Id。如果服务器数据库跟踪客户端pc的计算机地址,那么只有我的客户端计算机才能连接到服务器。而被盗的软件也不会像窃贼的电脑地址那样工作different@King斯基普斯。。。。以及所有其他方法,这种方法也可能不是好的选择,因为它使所有的客户端和软件依赖于一台服务器。当服务器关闭时,所有客户端都将受到影响。因此,作为一个结论,当软件在本地服务器上时,我们程序员没有任何选择来保护我们的软件免受盗窃。