首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不允许用户通过更改系统日期在“后台日期”上更新表

不允许用户通过更改系统日期在“后台日期”上更新表
EN

Stack Overflow用户
提问于 2014-06-15 10:55:07
回答 1查看 92关注 0票数 0

我在想一个关于分配管理的项目。

假设我有一个中央数据库,其中包含公司生产的所有产品的销售信息。在固定的定期间隔内,我用分销商提供的新数据填充这个数据库。

在分销商的系统上还安装了其他本地数据库。在Java平台上有一些接口,它们通过这些接口访问各自的本地数据库。分销商每周都必须将他们的数据库与我们的数据库同步。当分销商与数据库同步时,我们的销售记录将被更新。

分销商不应该显示销售回溯日期。但是,假设一个分销商通过更改他的系统日期来向他的本地数据库中添加一个回溯日期的销售发票来做到这一点。然后他把他的数据库和我们的同步,销售结果会反映在我们的数据库中。

作为一个程序员,我如何阻止他这样做(只要界面是由我制作的)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-15 13:35:55

简短的回答:是的,你可以(而且应该.)--但你也应该继续读下去

中间答案:您不应该让任何值不受控制地进入您的数据库进行同步,但是,例如,要跟踪每个分发服务器上一次同步的数据,并拒绝任何旧的数据,除非明确地确定为纠正--但您仍然应该继续阅读。

很长的答案:答案将是技术性的,而作为程序员,这将是你的责任。但问题在于商业层面:你想要防止什么?分发服务器再次发送旧文件的错误,还是完全不同的错误?一个分销商故意试图把错误的数据放进你的基地?外部攻击(来自一个并发的,一个脚本孩子,或一个被抛弃的女朋友.)故意发送伪造的数据来摧毁你的数据库?谁对输入的数据负责?你有记录谁(以及如何识别)发送数据的痕迹吗?数据腐败的风险(发生和破坏)是什么?你(或你的公司)能在防护计数器上投资多少?在考虑如何做之前,必须能够回答这样一个问题:应该做什么、为什么做、如果不做的话风险是什么。

如果同步错误数据的风险太高,您甚至可以考虑到您的分销商在唯一(集中式)数据库上直接使用web应用程序的可能性。

如果您已经回答了业务级别的问题,并且您知道您确实需要保护您的数据库不受经销商添加旧销售发票的影响,那么您有两种方法:

  • 您将收到分销商数据的导出:在将每个发票复制到数据库之前,只需检查每个发票是否正确即可。
  • 您将收到脱机转储,或使用真正的数据库同步方法:不要在真实数据库上同步,而是在每个分发服务器的副本上进行同步,并在该副本和实际基础之间放置控件。

如果您的流程可以确保一次只有一个分发服务器可以同步其基础,则可以拥有一个副本。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24228903

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档