gpt4 book ai didi

银光。安全问题

转载 作者:太空宇宙 更新时间:2023-11-03 13:55:13 26 4
gpt4 key购买 nike

请告诉我,Silverlight 商业应用程序是安全的吗?

据我所知,用户可以从加载应用程序的本地计算机缓存中获取 .xap 文件,或者如果知道文件名和位置(它是用 HTML 代码编写的),则直接获取 - 只需键入它在浏览器的地址栏中,文件将被下载。 (问题一:正常吗?或者是某些特定主机的设置可以拒绝直接下载?)

最有趣的是,用户一旦下载网页,文件系统中就有一个.xap文件。现在 问题 2:用户是否可以打开(我的意思是反编译)这个 xap 文件并因此获得大量数据,包括检查用户的特定角色等?在代码中,我定期检查是否存在具有特定角色的授权用户。根据这一点,它可能由不同的内容提供。 p.s.当然,我知道服务器端通过属性来检查角色,对此没有发言权。另外,我使用 MEF 模块化,并且对于模块之间的通信,我使用了具有通信接口(interface)的全局库项目。 模块之间传递的信息是否可以被窃取?

下一步。 web.config 文件包含一些应用程序设置,还有一个带有登录密码信息的数据库连接字符串。还有问题3:web.config,存储这样的数据是否足够安全?

最后一个问题 - SSL 连接。我知道,我需要付费才能使用它。总之,问题 4:SSL 如何保护应用程序和包含数据(在业务应用程序中)?

最佳答案

问题 1. xap 文件必须可供最终用户访问,因此我认为您无法阻止经过身份验证的用户从服务器获取它。即使它不可用,用户也可以在他们的浏览器缓存中找到它。

问题 2a。是的,用户可以反编译 xap。它只是一个 zip 文件。重命名为 zip,提取内容,使用 Reflector 等查看。尝试使用 Silverlight Spy,您还可以看到一些有趣的东西。您可以在程序集上使用混淆工具,这是一种有用的威慑力量,但即便如此,也可能被拥有足够资源/精力的人反编译。

问题 2b。我认为有可能看到“信息在模块之间传递”,因为可以使用 WinDbg 调试 Silverlight 应用程序。再次强调,混淆至少有助于阻止不经意的反省。

问题 3。是的,web.config 应该是安全的,除非您特意公开它。

问题 4。SSL 不会阻止上面列出的 xap 文件的任何内省(introspection)问题,但会阻止人们嗅探流量。您将遇到的唯一问题是如何减轻中间人攻击(代理替换其自己的证书)。有一些方法可以缓解这种情况,但我不知道最佳实践是什么。

根据您提出的问题,您应该降低以下风险。想象一下,用户连接到您的 SL 应用程序,登录,然后您从服务器获取他们的“角色”。如果他们反编译了你的 xap,并发现他们需要处于“管理员”角色才能打开对所有内容的访问,他们可以在 SL 应用程序和你的服务器之间放置一个代理并修改响应,以便 SL 应用程序认为他们处于“管理员”角色。这是中间人攻击,最终用户试图破解系统。即使您使用的是 SSL,这也是可能的,因为代理将使用自己的证书,并且最终用户可以将代理的证书添加到他们受信任的证书存储中。

我一直没能在客户端妥善解决上述风险。我通过使用混淆并向请求/响应添加自定义 header (实际上是一个带有隐藏私钥的校验和来加密校验和)来让黑客难以为继。但是,如果最终用户设法对 xap 进行反混淆/反编译,理论上他们将能够找到私钥并查看我的加密算法,因此能够在更改上述“角色”后替换为新的校验和示例。

总而言之,我得出的结论是无法正确保护客户端。如果您认为风险足够,最好在服务器上复制授权。

例如,如果要求用户必须是'admin'角色才能查看'customers',那么如果用户是'admin'角色,我会在客户端显示'customers'屏幕.但是,在服务器上,当 SL 客户端调用服务来获取“客户”数据时,我还会检查当前经过身份验证的用户是否有权查看数据(而不是查看屏幕)。

关于银光。安全问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15113259/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com