因为图片是另一台服务器,是linux,用的是tomcat服务器,web服务器当然是IIS6了,现在要做防盗链,就是防止人家直接输入图片服务器的地址或者直接引用!我应该在我的IIS服务器上做手脚,还是要LUNUX服务器上做手脚呢! 刚开始想的是在linux上,可是linux不大会,没有很在行的linux服务器管理员!请问这个应该怎么做,如果是在.net程序里做,应该怎么做呢!我用过网上的用HttpHandler来处理的类,然后在web.config里配置Httphandler,再在IIS里做扩展名映射,可是好像不起作用,不知道是不是我的方法不对,望知道的大大们帮帮忙,分不够可以再加!
解决方案 »
- 大家帮我看看哪出问题了jQuery 的代码
- asp.net如何刷新滚动的文字
- 如何遍历panel中的自动生成控件
- asp.net Flash 视频聊天
- 我快要疯了.............................
- oracle8.1.7中的null问题
- 一个网站项目,是先做美工还是先做程序?
- 一个关于SqlDataReader的问题?
- jmail 验证发件人的问题,在线等~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- 为什么我无法启动ASP.net调试?
- 发现一个问题,asp.net数据库操作时,不用try
- 高手的100分全拿去!!! 求VS2005+Oracle+C#的用户登陆验证程序!
另外可以通过映射,通过假地址像这个http://topic.csdn.net/u/20080426/13/0cc8c29d-3417-4550-890a-c8c480791f75.html
HttpHandler这个只可以处理请求你iis服务器资源的东西
如果是,加一个加密参数后重定向至tomcat那边的php/jsp页的url,
tomcat那边收到重定向来的请求后,判断加密的参数是否是两个服务器之间约定的加密结果,
如果是,则发送图片数据(不要重定向至图片URL,直接在php/jsp里用字节流发送图片)。
例如:1, 设置一个约定的密码,假如为"abcdefg"
1, 用户请求为http://xxxxxxxiis.com/img.ashx?filename=233.jpg
2, img.ashx收到后判断referer或cookie,如果非本站来源则Response.Write("贼来了"),如果否则转至#3
3, 生成一个验证串ac=md5(filename+"abcdefg"),然后Response.Redirect("http://xxxxxxxtomcat.com/img.jsp?ac=d039e34664c0ab9a07220afae77f1ed4&filename=233.jpg")4,Tomcat的img.jsp收到来自#3的请求,检查参数中的filename+"abcdefg"的md5是否是参数中的ac值,如果是则二进制发送图片数据,如果否就什么都不发送。
反正整个过程中别出现图片文件的完整URL路径,出现文件名都没关系,约定的密码也不一定是固定的方式,只要能被两个服务器上的这两个页面程序所理解就行。
当然是要linux上弄啦,你的图片都是在linux里的,如果你的IIS服务器的话就输出图片,如果不是你的服务器的话就不输出图片.
另外好像看过 asp.net防被盗链的第三方软件