最近公司和好朋友的网站纷纷被IFRAME了,有的挂上了鸽子,有的疯狂地弹窗,有的给人家增加流量。一个个文件去查找替换那些IFRAME代码,刚松口气,不久又加上去了,哎,什么世道!于是他们向我这个"JS高手"(他们强加给我的)求救,我也不能等闲视之,只好击键杀杀杀了。
  
  因为FF(Firefox)不怕IFRAME,于是就拿IE开刀,不知道比尔有没有奖发。我只写了一句代码,就搞定了,哈,痛快。就是IE only(特有的)的CSS中的属性expression,插进去试试,果然那些IFRAME不起作用了。

代码如下:

<style type="text/css" media="all" id="http://nihaoku.cn">
/*<![CDATA[*/
iframe{
       v:expression(this.src='about:blank',this.outerHTML='');/*使用IE Only 的样式会除所有 IFRAME */
}
#f126{v:expression() !important} //如果要使自己的IFRAME可以执行,在自己的IFRAME里加上ID="f126";
/*]]>*/
</style>

分析:
前缀:expression(表达式);

  这个前缀是可以随意更换的,我上面取名为"v",例如我可以换成:abc123:expression(this.src='about:blank',this.outerHTML=''); 挂木马的家伙得先看你的CSS里这个前缀,然后挂马的时候写成这样<iframe style="abc123:expression() !important" src="URL"></iframe>,那个前缀一定要是和你的网站一样的(abc123),才能挂到马,哈哈哈!如果把前缀做成动态的,就非常OK了,看你怎么挂!

优点:

  • 可以解决一些站长的烦恼,无须去理会人家插了多少IFRAME木马,那些IFRAME都不起作用;
  • 保护了访客的安全,这些IFRAME不执行,不下载,就不会破坏到访问的电脑;
  • 代码简单,仅一句CSS样式,不管你是ASP,ASP.NET,JSP,PHP还是RUBY,都通用;

缺点:

  • 只适合防御目前的挂IFRAME方案;
  • 使得人家挂马的方式要改变了,挂马者可以构造这样的代码<iframe style="v:expression() !important" src="URL"></iframe>使我的防御方式失效,不过挂马都一定得看我的CSS里expression前面的这个"v"字母,我可以换成任意的如:xgz:expression(...),哈哈哈,他也拿我没办法,再如,如果我这个前缀是变化的,是不是也行吖 *_*
  • 不能防御其他标记的马,如<script>、<applet>、<object>等。
    到那时候再来找我吧,呵呵~ 网页里插入的IFRAME还是存在,只是不起作用了;

  
  代码拿出来分享一下吧!详细请进: http://www.nihaoku.cn/temp/noiframe.html

  不过我这个方法不是最终的解决案,最终的解决方案是找出真正被挂IFRAME的原因,堵住源头。这可不是我的事,呵~

一行代码解决网站防挂IFRAME木马方案,小鸽子序列(灵儿)相关推荐

  1. [zz]一行代码解决iframe挂马(服务器端注入、客户端ARP注入等)

    一行代码解决iframe挂马(服务器端注入.客户端ARP注入等) 一行代码解决iframe挂马(包含服务器端注入.客户端ARP注入等) 本文原创:linr@cncert.net 请转载时保留版权信息 ...

  2. 网站被黑了被挂马篡改后,如何解决网站被挂马?

    文章目录 网站被黑了.被挂马.被篡改后,自己如何解决网站被挂马? 示例: 方法一 一. 发现被黑,网站被黑的症状 二.自己猜想了一下原因,页面和百度抓取收录显示不一致.查服务器日志方案不可行. 三.找 ...

  3. 一行代码解决ie浏览器的兼容

    x-ua-compatible 头标签大小写不敏感,必须用在 head 中,必须在除 title 外的其他 meta 之前使用. 1.使用一行代码来指定浏览器使用特定的文档模式. <meta h ...

  4. 一行代码解决各种IE兼容问题

    一行代码解决各种IE兼容问题,IE6,IE7,IE8,IE9,IE10 前端面试秘籍,欢迎star! 在网站开发中不免因为各种兼容问题苦恼,针对兼容问题,其实IE给出了解决方案Google也给出了解决 ...

  5. 【图解经典算法题】如何用一行代码解决约瑟夫环问题

    约瑟夫环问题算是很经典的题了,估计大家都听说过,然后我就在一次笔试中遇到了,下面我就用 3 种方法来详细讲解一下这道题,最后一种方法学了之后保证让你可以让你装逼. 问题描述:编号为 1-N 的 N 个 ...

  6. 有一个List集合,里面存储了5个Student对象。Student有姓名、年龄和成绩属性,按照多个属性进行排序(一行代码解决list对象集合排序问题)。

    有一个List集合,里面存储了5个Student对象.Student有姓名.年龄和成绩属性,按照要求进行排序(一行代码解决list对象集合排序问题). 要求对List集合进行排序,排序规则是: 1.先 ...

  7. 一行代码解决约瑟夫问题(我要开始装B了)

    一.前言 约瑟夫问题可以说是非常经典的一道题了,面试官经常问,我有一次就遇上了它,不对,应该是它遇上了我!下面我就用一行代码来解决这道约瑟夫问题,这种方法你学会了之后就可以在面试官面前装B了. 二.解 ...

  8. python匿名基数(lamdba):给你一个整数数组nums,如果任一值在数组中出现至少两次,返回True;如果数组中每个元素互不相同,返回False,用一行代码解决

    """ 给你一个整数数组nums,如果任一值在数组中出现至少两次,返回True:如果数组中每个元素互不相同,返回False,用一行代码解决 例: nums = [1,2, ...

  9. 一个整合OkHttp 、Retrofit 、Volley 、RxJava、Novate多种开源网络框架的项目,高度的封装和集成,Android中Web网络请求一行代码解决

    一个整合OkHttp .Retrofit .Volley .RxJava.Novate多种开源网络框架的项目,高度的封装和集成,Android中Web网络请求一行代码解决 AndroidHttp 一个 ...

最新文章

  1. 干掉cms,zgc才是未来
  2. java方法里执行两条sql_Java如何在数据库上执行多个SQL命令?
  3. 这几个模型不讲“模德”,我劝它们耗子尾汁
  4. 一个Json在线格式化的网站
  5. 常见的NoSQL数据库
  6. 正则表达式电话和姓名加星
  7. JAVA 正则表达式(大全)
  8. 计算机接口技术相关设计,计算机接口技术的特点与应用设计研究
  9. visio教程仓库流程图_教你使用visio 2013绘制产品流程图
  10. js如何实现简繁体互转
  11. 小米pro15拆机_实战小米笔记本PRO 15.6寸拆解 加装M.2海力士固态硬盘
  12. linux wine 原理,wine的工作原理与自动运行PE程序
  13. steam使用技巧2
  14. 互联网做手机没戏,恐只能靠维修赚钱
  15. VMware下配置kali-linux-2019.2-vmware-amd64 压缩包
  16. 16 个百度网盘搜索引擎
  17. zblog host php,zblog获取当前页面的URL信息
  18. 嵌入式开发笔记——调试组件SEGGER_RTT
  19. 金蝶云星空对接打通旺店通·企业版采购入库查询接口与创建采购入库单接口
  20. 如何压缩PDF文件?教你两种压缩文件的方法

热门文章

  1. Python金融实战之计算VaR
  2. Cydia 软体介绍
  3. 如何写好一封电子邮件
  4. Ping Pong Buffer 双缓冲 C++代码学习
  5. 最新软件工程师薪资大揭秘!你的薪资达到平均水平了吗?
  6. 功能强大的离线浏览器(1)
  7. Python中 whl包、tar.gz包的区别
  8. Elasticsearch学习(四) - 查询①
  9. VirtualBox打开虚拟机失败,Not in a hypervisor partition(HPV=0)(VERR_NEM_NOT_AVAILABLE) ,但是没有virtualization选项
  10. 最吸引人的引流话术_抖音流广告引流【日引312人小白】