如何隐藏站外的图片地址

sunskyfan 2011-09-03 09:07:13
网站引用外部图片

地址如:http://163.com/pic.jpg

引用到本站,怎么能隐藏,想要的是:

查看源文件,显示不出上面的地址,但网站中要正常显示,查看源文件时可以显示成相对地址:

如:<img src=/pic/pic.jpg>(类似的吧。)


意思就是让人一看这个图片就是在本站目录中放着的

我见过php好像可以实现,不知道asp是不是也行。

不要禁用右键的方式,实在不行把图片地址加密起来也行。把地址通过Base64加密



...全文
297 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
baideyi 2011-09-03
  • 打赏
  • 举报
回复
不好意思上面的代码有点问题,请用下面的代码。

<%
act = trim(request("act"))
select case act
case "getgif"
Response.Buffer = TRUE
Response.ContentType = "image/gif"
set serHtp = server.CreateObject("Msxml2.ServerXMLHTTP")
serHtp.open "POST","http://www.baidu.com/img/baidu_sylogo1.gif",false
serHtp.send()
srcs = serHtp.responseBody
response.BinaryWrite(srcs)
set serHtp = nothing
case else
%>
<div align="center">
<img src="<%=request.ServerVariables("PATH_INFO")%>?act=getgif" />
</div>
<%
end select
%>

baideyi 2011-09-03
  • 打赏
  • 举报
回复
<%
act = trim(request("act"))
select case act
case "getgif"
Response.Buffer = TRUE
Response.ContentType = "image/gif"
set serHtp = server.CreateObject("Msxml2.ServerXMLHTTP")
serHtp.open "POST","http://www.baidu.com/img/baidu_sylogo1.gif",false
serHtp.send()
srcs = serHtp.responseBody
response.BinaryWrite(srcs)
set serHtp = nothing
case else
%>
<div align="center">
<img src="tt.asp?act=getgif" />
</div>
<%
end select
%>
挨踢直男 2011-09-03
  • 打赏
  • 举报
回复
你把他们的图片抓到自己网站目录下保存起来
001007009 2011-09-03
  • 打赏
  • 举报
回复
这个问题,很无助。
楼主说的 。。让人一看这个图片。。这里的人是指 普通网友还是懂技术的weber?

1.如果是在服务端就处理了,务必获取不鸟图片的真实地址。
2.在客户端js处理的话,类似这样
<img id="test" src="123.jpg" />
<script>
document.getElementById('test').src='http://www.baidu.com/img/baidu_jgylogo3.gif'
</script>

这样要把js藏深点,免得被懂技术的人一眼挖出来(排除firebug等插件进行查看)

3.楼主说的把地址进行加密,也不失为一个好的办法,可以一试。


个人愚见。。。期待高手。
sunskyfan 2011-09-03
  • 打赏
  • 举报
回复
有点复杂,调不能。不过还是给分
baideyi 2011-09-03
  • 打赏
  • 举报
回复

sub getpic(strPIC)
Response.Buffer = TRUE
Response.ContentType = "image/gif"
set serHtp = server.CreateObject("Msxml2.ServerXMLHTTP")
serHtp.open "POST", strPIC,false
serHtp.send()
srcs = serHtp.responseBody
response.BinaryWrite(srcs)
set serHtp = nothing
end sub

call getpic("http://163.com/pic.jpg")

函数定义,要放在页面的第一行
sunskyfan 2011-09-03
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 baideyi 的回复:]
当然是可以的,你直接将封装成函数就可以了
sub getpic(strPIC)
Response.Buffer = TRUE
Response.ContentType = "image/gif"
set serHtp = server.CreateObject("Msxml2.ServerXMLHTTP")
serHtp.open "POST","http://www.baidu.com……
[/Quote]

这不还是百度的这个地址,

我不知道怎么用啊?

我想这么用,

函数名(地址)

然后页面看不到这个括号中的地址。
baideyi 2011-09-03
  • 打赏
  • 举报
回复
当然是可以的,你直接将封装成函数就可以了
sub getpic(strPIC)
Response.Buffer = TRUE
Response.ContentType = "image/gif"
set serHtp = server.CreateObject("Msxml2.ServerXMLHTTP")
serHtp.open "POST","http://www.baidu.com/img/" & strPIC,false
serHtp.send()
srcs = serHtp.responseBody
response.BinaryWrite(srcs)
set serHtp = nothing
end sub
sunskyfan 2011-09-03
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 baideyi 的回复:]
不好意思上面的代码有点问题,请用下面的代码。

<%
act = trim(request("act"))
select case act
case "getgif"
Response.Buffer = TRUE
Response.ContentType = "image/gif"
set serHtp = server.CreateObject("Msxml2.ServerXML……
[/Quote]

我试了这个,可以,但如果很多图片呢?不可能手动的加上去,可以做成函数的形式吗?
baideyi 2011-09-03
  • 打赏
  • 举报
回复
楼上,可能没有仔细看过我的代码吧?你可以试试代码,和你理解的是不一样的。
代码我是已经测试过的,生成出来的代码你可以看看,有没有原来的地址。
freejanker 2011-09-03
  • 打赏
  • 举报
回复
1、用JS在客户端把地址加密。服务器端的程序里加密是不可能的,因为解密后在客户端也会直接解析出来。

2、在服务器端配合URL rewriter重写对特定地址的访问,也可以实现。
具体实现方式为:自定义一个HttpHandler,用来处理对这种加密后的图片地址的解析,转换成为真实图片地址后,再返回给客户端。

关于HttpHandler可以参考MSDN

不过如果你是想防止图片盗链,那隐藏地址也是没用的,需要在IIS中把所有图片文件关联到ASPNET_ISAPI.dll,然后你自定义HttpHandler来判断访问者的来源决定是否返回图片给客户端。

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧