C# 如何在代码中保护服务器连接身份验证
在许多应用程序中,我需要在类内的应用程序中写入用户名和密码,如HTTP身份验证、FTP身份验证MSSQL服务器连接字符串也提供身份验证信息,那么,保护这些信息的最佳方法是什么呢?因为有人可以很容易地反编译我的应用程序,也许可以使用Reflector获得这些信息,这些信息对某些攻击或类似的攻击很有用C# 如何在代码中保护服务器连接身份验证,c#,security,authentication,password-protection,C#,Security,Authentication,Password Protection,在许多应用程序中,我需要在类内的应用程序中写入用户名和密码,如HTTP身份验证、FTP身份验证MSSQL服务器连接字符串也提供身份验证信息,那么,保护这些信息的最佳方法是什么呢?因为有人可以很容易地反编译我的应用程序,也许可以使用Reflector获得这些信息,这些信息对某些攻击或类似的攻击很有用 你能更具体地解释一下你的总体目标是什么吗?通常有比硬编码密码和身份验证令牌更好的设计 如果你正在分发你的应用程序,你真的无法保护这些秘密。即使对配置文件进行加密,应用程序仍然需要密钥进行解密,因此攻击
你能更具体地解释一下你的总体目标是什么吗?通常有比硬编码密码和身份验证令牌更好的设计 如果你正在分发你的应用程序,你真的无法保护这些秘密。即使对配置文件进行加密,应用程序仍然需要密钥进行解密,因此攻击者拥有所需的一切
不过,您可以选择其他设计,例如提示用户输入自己的唯一密码,然后对web服务进行数据库调用,而不是分发直接连接到中央数据库的应用程序。但是你必须解释这个场景,以获得更好的建议 我曾经遇到过这样一个例子,软件应该连接到FTP服务器并列出它的所有文件(通常是XML文件),所以应该只有用户名和密码,因为所有客户端都应该列出这些文件,而不管其他什么,所以在这种情况下,提示用户在出现关键问题时键入密码,因此,在这种情况下,我应该将密码保留在代码中。你会遇到的问题是,如果你硬编码FTP密码,你真的无法保护它。此应用程序是否分发给很多人?它是内部应用程序吗?是否可以提示用户输入密码以解密这些敏感字符串?如果你不能提示用户,也不能通过外部资源代理,那么试图保护存储密码是一个鸡和蛋的问题,所以以防万一哪种方式是代理这些的最佳方式,通过发送XML消息来使用SOAP,或者通过向Web服务应用程序发送校验和来使用Web服务,然后Web服务用身份验证内容进行回复?