【发布时间】:2012-06-19 01:54:32
【问题描述】:
喜欢这个网站——在我的整个学习过程中,它提供了非常丰富的信息。刚刚完成了四分之一的 C# 介绍,其中一个项目是设计一个财务“账户管理器”应用程序,该应用程序保持余额并在进行提款和存款时更新它。该项目相当简单,我没有任何问题。不幸的是,我的下一个季度不包括任何编程课程 :(,所以我正在利用时间通过增强我的客户经理应用程序来扩展我的知识。
我想做的第一件事是启用多个用户。到目前为止,我已经包含了一个 CreateNewUser 类,该类禁止重复的用户名,检查新密码的特定格式要求,加盐和散列,并将其保存到带有用户名(电子邮件地址)和自动递增的“帐户”表中用户身份。很简单。
所以现在我陷入了困境:不确定最佳做法是什么。我不认为用户应该使用与其他用户相同的表,所以我认为每个用户都应该有自己的表。我是“过于偏执”,还是我的想法符合常见的编程安全实践?事实是,可能没有人会使用这个应用程序,但我正在努力学习我长大后可以在现实世界中应用什么。
使用同一个表只需要加载具有匹配用户ID 的查询的DataSet,所以这没什么大不了的。如果我应该使用单独的表,那么我需要在创建新用户时动态创建一个新表,并且我将使用用户 id 命名表,这将模拟现实世界中的帐号,我我假设。
无论如何,我找不到涵盖此问题的其他问题,所以我想我会问你的想法。
谢谢,
死神
【问题讨论】:
-
这样想。如果您要保留这些表格的物理示例,例如,使用笔记本。您是想要很多小笔记本还是一个大笔记本也可以参考?
-
大笔记本选项似乎是我的偏好,而且更易于实施,我只是想知道我是否在安全方面遗漏了什么。
-
只要您的代码被编写为只提取正确的数据(在这种情况下,匹配用户 ID),就没有大的安全性,因为您的所有代码都将处理对数据。
标签: c# database security passwords