代码改变世界

随笔分类 -  Web

基于Refferer的防盗链方案

2010-04-04 23:20 by 姜 萌@cnblogs, 2588 阅读, 收藏, 编辑
摘要: google、baidu的图片搜索中常看到有些图片上面写着诸如“此图片仅供……用户交流”,说明这些网站是已经发现了我们浏览器发出的请求为站外链接(而且是非伙伴站点的链接)。防盗链有很多方案,比如一些网盘经常会对下载链接做手脚,给用户看到的链接都是处理过的,像skydriver生成的下载链接中就会包含一个时间戳的加密字符串,你拿到的url链接过了一天就... 阅读全文

Web开发中的缓存技术之三:通过ETag实现缓存处理(ASP.NET MVC版)

2010-04-04 21:46 by 姜 萌@cnblogs, 2724 阅读, 收藏, 编辑
摘要: IIS已经为我们提供了其内置的缓存功能。但显得比较死板,对于更高的要求,IIS的缓存功能显然就有些不够灵活了。在mvc风格的开发中我们可以通过Filter来定制缓存方式。本篇介绍借助ETag响应头实现缓存,没有完美的缓存方案,这种方式能够准确判断客户浏览器缓存是否需要更新,但不会避免服务器再次生成页面的过程,它的主要用意在于避免不必要的数据传输,减少流量缓解带宽压力。何为ETag,以及Is-Non... 阅读全文

Web开发中的缓存技术之二:基于访问时间的简单缓存

2010-04-04 21:45 by 姜 萌@cnblogs, 582 阅读, 收藏, 编辑
摘要: 没有一劳永逸的缓存技术,每种缓存方式都适用于一种特定场合,本文通过ActionFilter为ASP.NET MVC应用提供一种最简单的基于访问时间的缓存方法。使用场合:变动不是很频繁的动态页面,比如首页,目录页面之类。效果描述:每次服务器返回数据给客户机都设置response头中的LastModified值以及浏览器缓存过期时间。下一次浏览器再次访问此url时会在request头中含有Is-Sin... 阅读全文

小试牛刀:自制一个轻量级验证框架(A Lightweight Model-Validation Framework Of Sopaco)

2010-03-14 18:06 by 姜 萌@cnblogs, 4407 阅读, 收藏, 编辑
摘要: 在软件开发中经常需要写数据验证的代码(有的是通过xml进行配置),对于web客户端而言我们可以使用jquery的validation插件,得意于js语言的灵活特性,可以快速的写出整洁高效的js验证代码。而在服务端这边,用静态语言写出的代码给人印象就不那么灵巧了。幸好C#在3.x中加入了lambda expression、Extension Methods等新语法特性以及相关的编译器支持,再加上即将... 阅读全文

自己动手实现AntiForgery。

2010-03-14 00:40 by 姜 萌@cnblogs, 1950 阅读, 收藏, 编辑
摘要: 为了防止恶意向服务器post数据(比如防止第三方程序模拟post行为)很多web的表单提交使用了特殊的手段,比如qq的登录,论坛的发帖,或是下载网站的放盗链,这些可以统称为AntiForgery。 在asp.net mvc中,我们可以通过Html.AntiForgery()来生成Token,并在相应的action上使用ValidateAntiForgeryTokenAttribute来让框架自动为... 阅读全文