2013-06-27 71 views
1

我知道这听起来像一个非常简单的问题,但我想确保在开始编码之前我以正确的方式解决此问题。我试图对一个标准网站(我不想使用任何其他软件/程序,如果可能的话)的标签进行硬编码,这个标签对所有用户都是可见的,但只能由具有特定级别管理员的人访问。我从设置的数据库文件(让它称为users.txt)获取所有用户信息/包含以下内容:-username -password -permission级别。因此,这是我迄今为止的思考过程:如果(权限级别!= 1)抓取数据库中的每条完整行,然后(弹出警告消息并将用户带回主页)。选项卡的权限级别

所以,这里是我的问题: - 首先这是甚至正确的方式去做这件事? - 如何从数据库中获得完整的行并将信息存储在创建的变量中?我想尝试从DB中逐行获取信息,并将它们存储在临时变量中,并查看登录的用户是否与该信息匹配。 (我猜这会在用户登录并存储权限级别信息以便以后在试图访问此选项卡时使用)时首先执行。

在此先感谢。

回答

0

这听起来不是一个好主意。首先,我会推荐使用一个实际的数据库,例如SQLite的。我还认为将用户权限存储在文件中是确保安全性的一种特别差的方式(因为用户可以编辑该文件)。使用真实的数据库将允许您直接从数据库中提取用户权限,而不必搜索。此外,根据您选择的数据库,您可能可以使用各种完整性功能来确保安全性。

我会建议您将信息放在数据库中,然后使用登录用户的信息来提取正确的权限级别,如果它足够高,则加载该选项卡。根据您的安全需求,您还可以对数据库执行某种完整性检查,并从外部源加载标签(虽然实际上您会保留标签的代码在设备上加密并向中央权威机构申请密钥)。

+0

数据库文件已经创建好了,我不用担心用户改变文件,因为只有管理员有权限查看/编辑这个文件。我只是无法抓取数据库文件中的行。我会假设把“从db代码中获取行”放在for循环中,这样它会遍历整个文件 – Llama

+0

嗯,我仍然会推荐使用适当的数据库,SQLite数据库也只是一个文件,而且会很多比实施自己的数据库软件更容易,更快速。真正的数据库也会为您提供更好的搜索性能。 – jhoyla

+0

我可能没有明确表示我的问题,因此我编辑它,但这不适用于数据库;这是一个网站的标签。幸运的是,我不必担心数据库部分,我只需要从数据库中获取我的信息。 – Llama