在上传文件之前,我需要给名称添加一些附加信息,以增加文件名唯一(无状态)的机会。调用FileInfo.LastWriteTime-get
将抛出一个SecurityException
表示该过程需要提升权限。其中存在在Silverlight中获取文件时间的危险?
我可以在某种程度上看到在这些数据中存在有关用户的某些历史信息,但也考虑到操纵它有多容易,但为什么?有没有其他方式可以获得类似的信息,而无需管理员托管的OOB?
在上传文件之前,我需要给名称添加一些附加信息,以增加文件名唯一(无状态)的机会。调用FileInfo.LastWriteTime-get
将抛出一个SecurityException
表示该过程需要提升权限。其中存在在Silverlight中获取文件时间的危险?
我可以在某种程度上看到在这些数据中存在有关用户的某些历史信息,但也考虑到操纵它有多容易,但为什么?有没有其他方式可以获得类似的信息,而无需管理员托管的OOB?
如果有方法来获取这些信息而没有提升权限,那么这将是Silverlight中的一个漏洞。通常看到这些RIA平台限制这一活动,Flex也有类似的限制。
如果您只需要一个唯一的文件名,那么您可以使用时间戳+文件名。或md5(timestamp+random_value)+filename
。
号为什么?因为Silverlight中的安全方法是尽可能减小攻击面。通过获得FileInfo
真正获得的是文件内容。为什么应用程序甚至应该知道内容在用户的文件系统中可能会引起争议的名称。
如果你只是需要使该名称唯一只使用一个GUID: -
string fileTitle += Guid.NewGuid().ToString("D");