您的位置:软件 > 开发者网络 > 微软开发专栏 > 技术专题 > 正文
从 .NET 程序集提供图像
[文章信息]
作者:
时间:2003-09-26
出处:Microsoft
责任编辑:方舟
[文章导读]
从程序集提供图像可以避免众多文件散布在磁盘上,简化 Web 服务器的安装和配置
advertisement
热点推荐
· 天极网软件频道改版调查
· 10.29软件精选 精简注册表
· 加速启动Win XP操作系统的谬论
· 如何提高Linux操作系统速度
· 精简注册表高级用法——安全篇
[正文]

上一页  1 2 3 4 5 6  

  安全性

  到目前为止的讨论中,我们一直基于程序集名称和资源名称提供图像。这没什么不好,但这意味着任何人都可以得到磁盘上的程序集名称,并可以尝试通过将其他程序集名称传递给处理程序来进行攻击。

  为了避免这个潜在的问题,最好用某种方法对返回的值进行加密。我们可以提供一些从程序集名称和图像名称生成的散列码,或使用程序集名称和图像名称的加密格式,然后在接收到请求后再进行解密。

  前一种方法(使用散列码)需要服务器中有查找表,并且表中为每个提供的图像填充了内容。这就给 Web 领域带来一个潜在的问题。在 Web 领域,可能一个服务器提供初始图像请求(并缓存散列码),而另一个服务器实际响应图像。

  因此,我选择了第二种方法,即在返回到用户的 URL 中包含加密的程序集名称和图像名称。这样就不会遇到 Web 领域中存在的问题,但却意味着需要从浏览器多传送一些数据到服务器,因为图像 URL 要长一些。

  示例代码包含一个类,它使用 Triple-DES(数据加密标准)算法加密和解密字符串。通常,程序集名称和图像名称在传递到客户端之前已进行了加密。当请求图像时,这些值被解密,并调用与原来相同的代码。

  我已将这些内容以可配置的方式添加到解决方案中。在 web.config 中仅有一个标志,如果设置为“true”,则会在向客户端提供资源名称时对其进行加密:

<appSettings>
<add key="MFRSecure" value="true" />
</appSettings>

  在处理程序的 ProcessRequest 方法中,我对此标记进行检查:

bool secure = false ;
string shouldSecure = ConfigurationSettings.AppSettings["MFRSecure"] ;

if ( null != shouldSecure )
secure = Convert.ToBoolean ( shouldSecure ) ;

string assembly = context.Request.QueryString["assem"] ;
string image = context.Request.QueryString["image"] ;

if ( secure )
{
assembly = Crypto.Decrypt ( assembly ) ;
image = Crypto.Decrypt ( image ) ;
}

ManifestImageLoader.RenderImage ( assembly , image ) ;

  类似地,在前面介绍的 ConstructImageURL 方法中,在程序集名称和图像名称被传递给客户端之前,我对它们进行了加密。

  代码的很多部分都可以进行扩展或改进。下面是我的几点建议。

  当无法找到资源时,配置项不对使用的图像进行硬编码,而是指定图像的 URL。这样在出现异常时,您就可以从磁盘(或从其他程序集)加载特定的图像并将其返回到浏览器。

  图像的缓存超时也可以定义为配置项。

  可以扩展代码,以允许从程序集提供任何类型的图像 - 目前,mime 类型被硬编码为 image/GIF。
对于为何此示例中的代码不能提供程序集内的其他资源,没有什么原因 - 您完全可以提供 TXT 文件、WAV 文件等。

  小结

  本文介绍了两种方法,用于从程序集检索格式适合包含在 Web 站点中的图像。第一种方法是从 ASPX 页面提供图像,这种方法简单而且不需要修改 Web 服务器配置,但是提供图像的 ASPX 页面的路径必须正确,以使图像能够正确显示。

  另一种方法是从自定义处理程序提供图像。这种方法克服了基于路径的限制,但需要更改 IIS 配置数据库,以允许由 aspnet_isapi.dll 扩展程序提供 .mfr 扩展名。而且还要为给定的应用程序修改 web.config。

  我个人建议使用处理程序方法而不要使用 ASPX 方法,因为在 Web 服务器中配置处理程序方法后,使用起来会更容易(而且不需要路径)。



上一页  1 2 3 4 5 6  

·"WAP天极之IT新闻资讯,50万元等你拿"    ·天极WAP之游戏狂图,50万元等你下载

天极社区邀请您:写博客日记  上传相片   论坛聊天  订阅电子杂志  推荐网摘   免费图铃工具
笔名:   请您注意:

 遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。

 天极网拥有管理笔名和留言的一切权利。
评论:
 

发表评论推荐给朋友我想参加相关培训打印我对此感兴趣订阅电子杂志
相关内容阅读排行榜
  • VS.NET中构建数据库应用程序
  • .NET后台智能传输服务实现自动更新(上)
  • 探秘Visual Studio.Net 2003
  • 解析.NET框架下的数据类型转化技术
  • 主板超频特色技术ASUS华硕篇
  • 十大年底网游期待大作
  • 竞技游戏美女汉堡MM访谈
  • ATI显卡驱动下载回顾专题
  • 裸露的飞天舞 完全裸机酷图
  • CIG 2004:重庆赛区地点更改通知
  • 10.29软件精选 精简注册表
  • 且看江湖谁主沉浮 金庸群侠魔兽版
  • Advertisement