我目前正在开发一个ASP.NET 3.5和C#Web应用程序,它处理用户私人信息,如SSN号码。从应用程序开发的角度来看,我需要采取哪些安全措施来保证安全?
答案 0 :(得分:1)
如果您需要通过网络表单向用户提供合理的信息,则应使用SSL(https网址)进行保护。这有助于您保护浏览器和服务器之间的通信通道。
除非严格必要,否则不应在数据库中存储私人和明智的信息,如果必须这样做,则必须加密存储。
答案 1 :(得分:1)
嗯,除了使用加密的明显问题之外,我还被告知,避免将用户的状态作为类的一部分是一种很好的做法,特别是在外部代码库中。
例如:而不是:
public class secretClass()
public sub new(ssn as string)
_ssn = ssn
结束子 公共函数getMedicalHistory()as DataSet
'获取私人信息 结束功能
结束班
使用此:
public class secretClass()
public sub new()
结束分
公共函数getMedicalHistory(p_ssn as string)作为DataSet
'获取私人信息 结束功能
结束班
通过这样做,您使恶意黑客更难以通过某种方式获取对secretClass
对象的控制来窃取私人信息。
答案 2 :(得分:1)
禁用对数据库的远程登录,使用多个代码分析工具(代码覆盖和静态分析器),强制登录系统的强密码要求,至少使用SHA-1加密方案加密所有数据;根据政府要求,发现MD5太弱了。
答案 3 :(得分:1)
要保护您的应用程序,您需要了解它将面临的威胁,然后制定适当的缓解技术。一个好的起点是创建一个威胁模型。
看看其中一些资源: