小编Tom*_*omK的帖子

如何最好地加密/解密SQL Server数据,以防止开发人员看到它?

这是一个有趣的问题,我正在寻找一种可以保持一切可行的模式.

我正在为学校系统构建智能客户端应用程序.它将包含有关学生的信息,包括他们的成绩单,病假等.它将生成学生级报告,包括他们的报告卡,每个报告都由老师提供非常个人的评论.该应用程序将通过Web服务从远程服务器检索数据.

所以这些数据非常机密.我将在数据库中对其进行加密,并在检索时对其进行解密 - 没问题.

问题是我和我的团队应该永远不会看到生产明文数据.然后出现一个有趣的问题来调查生产错误!我们想要打开与用户相同的记录,看看他们看到了什么.但如果我们这样做,我们就会违反保密规定.

我的想法是这样,而且它并不完美.

  • 首先,在存储到数据库之前加密数据,在UI上解密.那里什么新鲜事.
  • 其次,在UI中放置一种机制来混淆特权数据.(即,名字和教师叙述是特权的;年级不是.)我不会 对它进行加密,而是对其进行模糊处理 - 即使是简单的键移也足够了.原因是,这些报告充满了文字.如果我加密段落并在报表中显示结果,它将是一个坚实的大写字符墙,看起来与原始文本完全不同.如果我对字母字符进行键移,它将是不可读的,但仍然看起来像段落,句子,项目符号列表等.如果不添加视觉复杂功能,将更容易看出出现了什么问题.
  • 第三,我输入了一个配置设置来执行此UI混淆,仅适用于SysAdmin角色,而不是教师或SchoolAdmin.在开发过程中,我将此配置设置为False,并且我们针对假明文进行开发.对于生产,我们将其设置为True,从那时起,我们只看到混淆的文本.

最后,对于我们绝对必须看到学生记录的明文的情况,我们在UI中有一个覆盖配置设置的覆盖设置,并显示明文.我们在人力层面管理这一点 - 通知学校管理部门,因为这个原因我们需要看到这个学生的记录等.签字签字,抱怨同意,律师们争先恐后地冲他们的喷气机,冲洗和重复.

思考?我觉得这必须是一个很好的基础.如果可能的话,请帮我改进这个计划.

vb.net encryption obfuscation design-patterns sql-server-2008

8
推荐指数
1
解决办法
3879
查看次数

在Windows 7中更改程序文件的默认位置

伙计们,

当我得到一台新PC时,我总是首先将我的磁盘分区为C,D和E - 然后在C上安装Windows,在D上安装其他软件,并将E用于我自己的工作.为了使我的安装更容易,我首先将ProgramFilesDir(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ProgramFilesDir)的注册表位置更改为"D:\ Program Files".完成此操作后,所有新安装都将转到D:\ Program Files.生活很美好.

现在我有Windows 7.我看到注册表现在包含所有这些条目......

CommonFilesDir
CommonFilesDir (x86)
CommonW6432Dir
ProgramFilesDir
ProgramFilesDir (x86)
Run Code Online (Sandbox Code Playgroud)

安装Windows 7时,两个"CommonFiles"目录已经安装了东西.我决定不接触这些.其余的我改为他们的D驱动器等价物.

所以两个问题......

首先,新软件安装STILL想要转到C:\ Program Files.我总是要将"C"改为"D" - 这是我以前从未做过的事情.(是的,自从更改注册表以来,我重新启动了很多.)

其次,我发现Visual Studio 2010似乎特别困惑于此.我已经安装了.NET 4.0,甚至尝试修复它,但VS 2010坚持认为我没有安装4.0.(我听说其他人也有这个麻烦,VS 2010似乎真的想要在C盘上.)

任何帮助,亲爱的朋友,任何一个问题?

installation visual-studio-2010 windows-7

8
推荐指数
1
解决办法
3万
查看次数

WCF配置文件 - 以及着名的"字符串内容长度配额(8192)"错误

伙计们,

感谢您对我以前的WCF配置文件问题的帮助.这是一个新的.

我的项目是一个WinForms应用程序客户端(.NET 4.0),它从IIS 7.0上托管的WCF服务中提取数据(并将其保存到).当我保存一个小的有效载荷时,一切都很好.当我尝试将有效负载保存超过8192字节时,错误是:

格式化程序在尝试反序列化消息时抛出异常:尝试反序列化参数http://tempuri.org/:objEncounterType时出错 .InnerException消息是'反序列化PsychCoverage.Common.EncounterType类型的对象时出错.读取XML数据时已超出最大字符串内容长度配额(8192).通过更改创建XML阅读器时使用的XmlDictionaryReaderQuotas对象的MaxStringContentLength属性,可以增加此配额.第1行,位置10809.'.有关更多详细信息,请参阅InnerException

我已经证实我和我<binding name="">的一样<endpoint bindingConfiguration="">.

我已经把我maxReceivedMessageSizemaxBufferPoolSizemaxBufferSize所有10,000,000我的两个客户端app.config和我的web.config.我试着让我的<readerQuota>价值观非常高涨.

在我的web.config中设置 <httpRuntime maxRequestLength="10000000" />

这是来自我的客户app.config:

<system.serviceModel>
<bindings>
  <basicHttpBinding>
    <binding name="wcfAdmin_binding"           
             maxReceivedMessageSize="10000000" 
             maxBufferPoolSize="10000000" 
             maxBufferSize="10000000" 
             messageEncoding="Text" 
             sendTimeout="00:05:00" 
             receiveTimeout="00:05:00"
             bypassProxyOnLocal="false" 
             hostNameComparisonMode="StrongWildcard"
             textEncoding="utf-8" 
             useDefaultWebProxy="true" 
             allowCookies="false"
             >
      <readerQuotas maxDepth="200" maxStringContentLength="10000000" maxArrayLength="16384" maxBytesPerRead="10000000" maxNameTableCharCount="16384" />
      <security mode="None"></security>
    </binding>
  </basicHttpBinding>
</bindings>
<client>
  <clear/>
  <endpoint address="http://localhost/PsychCoverage/Admin.svc" name="AdminUIClientEndpoint" binding="basicHttpBinding" bindingConfiguration="wcfAdmin_binding" contract="PsychCoverage.Common.IAdmin">
    <identity>
      <dns value="localhost" />
    </identity>
  </endpoint>
</client> …
Run Code Online (Sandbox Code Playgroud)

iis wcf app-config web-config

6
推荐指数
0
解决办法
3399
查看次数