2012-07-30 40 views
3

假设我有一个包含以下列的数据网格;最佳实践 - 隐藏数据网格列的安全问题

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中的细节的方法?

回答

5

如果用户附加了像WinDbg这样的工具,或者如果他们倾销了该进程,那么浏览DataTable(或任何其他数据结构)将很容易。这是否代表您的应用程序的风险?我想你是处于评估这个状态的最佳位置。用户可以用这些信息做什么?

+0

我猜的确实不是很多,用户ID只是用于数据库引用,而密码散列只是更改密码的参考。没有什么可以质疑程序及其数据库的完整性。 – 2012-07-30 12:05:41