我们需要一个在最终用户的机器上运行的应用程序并为我们提供分数结果,并且我们需要结果准确(即未被篡改)。目前,Flash和Silverlight之间存在争议,看起来Silverlight将成为赢家。
除了最终用户计算机上的任何内容必须最终被认为是非法的恶意之外,攻击SilverLight应用程序有多难?我知道这取决于代码的编写方式等等,我的问题是攻击底层平台有多难。有没有关于像执行Silverlight应用程序和改变运行代码(或其他一些方法)这样的事情的文章?我正在考虑像缓冲区溢出攻击那样插入其他可执行代码?
我也听说Flash应用程序很难攻击内存并执行任意代码。这是真的吗?
答案 0 :(得分:7)
我的理解是Silverlight运行在名为CoreCLR的公共语言运行时(CLR)版本上。与在浏览器中运行的任何应用程序一样,主要安全方案是防止恶意代码攻击应用程序的其他实例或用户计算机上的应用程序/数据。
您描述的这种情况与此不同,我会说主动措施几乎没有阻止您的代码被劫持。知识如何的用户可以在汇编级别轻松编辑代码。
您可以尝试通过以下方式缓解这些攻击:
专家攻击者攻击Flash VM中的应用程序就像攻击Silverlight一样容易。
答案 1 :(得分:5)
在用户计算机上运行的任何内容都可以进行修改。这只是用户努力的问题。
如果你想寻找一些例子,有无数关于如何“破解”Flash游戏的教程。
答案 2 :(得分:2)
您提供的用于在客户端和服务器之间进行通信的任何机制都可能具有攻击性。即使您使用SSL,用户也可以执行中间人攻击(安全性由浏览器处理,因此如果用户覆盖SSL证书,则允许),以访问您的数据协议
答案 3 :(得分:2)
作为特定情况下的攻击者,我首先考虑只运行代理,将代理发送的数据内容修改回您的网站。在我努力破坏可执行文件本身之前,我会尝试这么久。即使使用加密,从应用程序中提取证书/密钥以便代理也可能更容易,而不是完全颠覆可执行文件。
答案 4 :(得分:0)
说实话,我认为这两个平台都是安全的。直到今天,我还没有意识到 Silverlight(1.0或2.0)曾经遇到任何安全漏洞。也就是说,如果在任何平台上发现任何平台,我相信两者都会很快得到解决。
然而,有一个问题要问你。您为什么要在客户端计算机上存储任何东西而不是托管服务器? Silverlight 2.0具有.NET框架的特殊“修剪”实现,据我所知,出于安全原因,所有文件系统访问都已被删除。
答案 5 :(得分:0)
我认为Silverlight在沙盒方面相当不错,但它很新,所以从安全角度来看,它不太可能像Flash一样深入探索。
如您所知,您将无法在客户端上找到有保障的安全平台,因此智能资金用于确保您的数据以非常难以妥协的方式在两者之间传递。
答案 6 :(得分:-1)
我同意foxxtrot的说法,Silverlight应用程序和服务器之间的通信将与任何其他Web服务架构一样安全。这是您的主要攻击媒介,因为客户端恶意软件在Silverlight的情况下不太可能导致问题,至少不会导致数据窃取。
您可以对网络服务电话进行加密,并可能会对客户端证书进行加密,以防止虚假发布到您的网络服务。
答案 7 :(得分:-1)
下载有关silverlight安全性的白皮书。告诉你所有你需要知道的事情:
编写和部署Silverlight Applications.docx的安全指南: http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=7cef15a8-8ae6-48eb-9621-ee35c2547773
如果您无法打开docx,只需删除'x',它将在word 2003中打开; - )
阿萨