最佳实践 - 隐藏datagrid列的安全问题

时间:2012-07-30 11:46:41

标签: c# .net winforms datagrid

假设我有一个包含以下列的数据网格;

DataTable dataTable66 = new DataTable();

        DataColumn colDescription = new DataColumn("userID");
        dataTable66.Columns.Add(colDescription);
        DataColumn colActive = new DataColumn("Username");
        dataTable66.Columns.Add(colActive);
        DataColumn colPass = new DataColumn("Password");
        dataTable66.Columns.Add(colPass);
        DataColumn colRole = new DataColumn("Role");
        dataTable66.Columns.Add(colRole);

我创建了一个数据网格,为了便于使用,我选择了一个用于密码和用户ID的列,但知道这是因为我想从最终用户隐藏这些细节,并将它们仅用于我的程序中的参考(例如更新到数据库),我选择通过via隐藏这些列;

   datagrid.Columns[0].Visible = false;
   datagrid.Columns[2].Visible = false;

就开发人员/数据库而言,这是否会产生任何安全风险?显然,密码本身只是密码的哈希,使用我选择加密它的任何方式,但是用户是否可以找到获取现在存储在DataTable / DataGrid中的这些细节的方法?

1 个答案:

答案 0 :(得分:5)

如果用户在您的应用程序中附加了WinDbg等工具,或者他们转移了该进程,那么浏览DataTable(或任何其他数据结构)将很容易。这是否代表您的应用的风险?我想你最有能力评估这一点。用户可以使用该信息做什么?