防止网页被嵌入框架的代码

最近,国内开始流行另一种流氓行为:使用框架(Frame),将你的网页嵌入它的网页中。

比如,有一家网站号称自己是"口碑聚合门户",提供全国各个网上论坛的精华内容。但是,其实它就是用框架抓取他人的网页,然后在上面加上自己的广告和站标,这同盗版书商有何不同?!

不明内情的访问者,只看到地址栏是该门户的URL,不知道真正内容部分的网页,其实来自另一个网站。

为什么我反对这种做法?

  1)它故意屏蔽了被嵌入网页的网址,侵犯了原作者的著作权,以及访问者的知情权;   2)大量业者使用的是不可见框架,使得框架网页与被嵌入的网页视觉上完全相同,欺骗性极高;   3)不良业者在被嵌入网页的上方或周围附加广告(甚至病毒和木马),不仅破坏原作者的设计意图和形象,而且属于侵权利用他人资源的谋利行为;   4)如果访问者在框架内部,从一个网页点击到另一个网页,浏览器的地址栏是不变的,这是很差的用户体验,并且访问者会将这种体验归咎于原网页的作者。

如果确有必要,将他人的网页嵌入自己的框架,那么应该同时满足以下三个条件:

  A. 在框架网页的醒目位置,清楚地说明该网页使用了框架技术,并明确列出原网页的URL网址。   B. 在框架网页的醒目位置,向访问者提供"移除框架"的功能。   C. 不得附加任何广告或恶意代码。

如果你经常使用Google的图片搜索,你就会知道,Google就是这样做的。

当然,流氓业者不会理睬你的正当要求。所以,我写了一段很简单的javascript代码,大家只要将它放入网页源码的头部,那些流氓就没有办法使用你的网页了。

<script type="text/javascript"> if (window!=top) // 判断当前的window对象是否是top对象 top.location.href =window.location.href; // 如果不是,将top对象的网址自动导向被嵌入网页的网址 </script>

UPDATE

2010.8.15

发布升级版代码,使得除了本地域名以外,其他域名一律无法将你的网页嵌入框架。

(完)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Debian社区

Greg Kroah-Hartman批评Ubuntu发行版

Ubuntu根本就是个祸害开源社区发行版。资本家是“无利不起早”的。“新人用Ubuntu系列是最不明智的选择,因为很难利用到别人的经验。Ubuntu修改了太多东...

1845
来自专栏代码世界

操作系统背景知识

 操作系统发展过程 1、手工操作方式 ——穿孔卡片(串行)   两个特点:   (1)用户独占全机。不会出现因资源已被其他用户占用而等待的现象,但资源的利用率低...

2919
来自专栏BestSDK

程序员那些悲催的事儿——从错误中学习进步

image.png 在StakeOverflow上有这样一个贴子叫“Confessions of your worst WTF moment”(WTF就是Wh...

28710
来自专栏镁客网

果粉们有福啦,iphone也能接高速优盘了呢

1603
来自专栏我和PYTHON有个约会

Django来敲门~第一部分【1.概述】

python程序web项目开发,是非常重要的一部分,Python为基础的web项目开发的框架有很多,django无疑是最强大web框架之一,也是我们必须掌握的框...

943
来自专栏安恒信息

运维安全中的“福尔摩斯”

引 言 随着互联网技术的发展,信息的交互越来越频繁,随之而来信息的安全、运维操作的合规性等等问题越来越多,其对于企业内部管理来说要求越来越高。2015年某某网...

3677
来自专栏玉树芝兰

安装 Python 软件包遇错误,怎么办?

本文通过一个命令行转换 pdf 为词云的例子,给你讲讲 Python 软件包安装遇挫折时,怎么处理才更高效?

1542
来自专栏Android 开发者

Android 模拟器现已支持 AMD 处理器和 Hyper-V

自两年前谷歌对 Android 模拟器进行重大更新以来,我们一直致力于开发出一款运行速度快、功能全面的模拟器,帮助您为用户打造卓越应用体验。Android 模拟...

2421
来自专栏原创

Android服务开发经验——优雅地活着 by个推推送

具体来说,就是要做到两点: 1. 尽可能运行 2. 尽可能省电 看似寻常的道理,实现起来还真不容易,下面一个个来看: 尽可能运行 Android系统会根据当前资...

3967
来自专栏SDNLAB

【连载-2】数据中心网络虚拟化 主流平台产品介绍

为了对数据中心网络虚拟化有个初步的认识,本文将对当前比较主流的几款商业平台进行介绍,包括VMware公司的网络虚拟化技术,IBM公司的Dove及开源的OpenD...

3436

扫码关注云+社区

领取腾讯云代金券