【问题标题】:Wherein lies the danger of obtaining file times in Silverlight?在 Silverlight 中获取文件时间的危险在哪里?
【发布时间】:2010-07-12 14:46:45
【问题描述】:
在上传文件之前,我需要在名称中添加一些附加信息,以增加文件名唯一(无状态)的机会。调用 FileInfo.LastWriteTime-get 会引发 SecurityException 表示进程需要提升权限。
我可以在一定程度上看到这些数据中存在一些关于用户的历史信息,但也考虑到它是多么容易操纵,但为什么呢?有没有其他方法可以在不需要管理员托管的 OOB 的情况下获取类似信息?
【问题讨论】:
标签:
security
silverlight-4.0
upload
filetime
【解决方案1】:
如果有一种方法可以在没有提升权限的情况下获取此信息,那么这将是 Silverlight 中的一个漏洞。经常看到这些 RIA 平台限制这个活动,Flex 也有类似的限制。
如果您只需要一个唯一的文件名,那么您可以使用时间戳+文件名。或md5(timestamp+random_value)+filename。
【解决方案2】:
没有。为什么?因为 Silverlight 中的安全方法是使攻击面尽可能小。获得FileInfo 真正授予的只是文件内容。为什么一个应用程序甚至应该知道内容在用户文件系统中的名称是有争议的。
如果您只需要使名称唯一,只需使用 Guid:-
string fileTitle += Guid.NewGuid().ToString("D");