- 博客(243)
- 收藏
- 关注
原创 XSS 前端防火墙 —— 天衣无缝的防护
上一篇讲解了钩子程序的攻防实战,并实现了一套对框架页的监控方案,将防护作用到所有子页面。到目前为止,我们防护的深度已经差不多,但广度还有所欠缺。例如,我们的属性钩子只考虑了 setAttribute,却忽视还有类似的 setAttributeNode。尽管从来不用这方法,但并不意味人家不能使用。例如,创建元素通常都是 createElement,事实上 createElementN...
2014-06-24 08:01:29
310
原创 XSS 前端防火墙 —— 无懈可击的钩子
昨天尝试了一系列的可疑模块拦截试验,尽管最终的方案还存在着一些兼容性问题,但大体思路已经明确了:静态模块:使用 MutationObserver 扫描。动态模块:通过 API 钩子来拦截路径属性。提到钩子程序,大家会联想到传统应用程序里的 API Hook,以及各种外挂木马。当然,未必是系统函数,任何 CPU 指令都能被改写成跳转指令,以实现先运行自己的程序。无论是在哪个层...
2014-06-24 08:00:52
189
原创 XSS 前端防火墙 —— 可疑模块拦截
上一篇介绍的系统,虽然能防御简单的内联 XSS 代码,但想绕过还是很容易的。 由于是在前端防护,策略配置都能在源代码里找到,因此很快就能试出破解方案。并且攻击者可以屏蔽日志接口,在自己电脑上永不发出报警信息,保证测试时不会被发现。 昨天提到最简单并且最常见的 XSS 代码,就是加载站外的一个脚本文件。对于这种情况,关键字扫描就无能为力了,因为代码可以混淆的千变万化,我们看...
2014-06-21 17:02:59
241
原创 XSS 前端防火墙 —— 内联事件拦截
关于 XSS 怎样形成、如何注入、能做什么、如何防范,前人已有无数的探讨,这里就不再累述了。本文介绍的则是另一种预防思路。 几乎每篇谈论 XSS 的文章,结尾多少都会提到如何防止,然而大多万变不离其宗。要转义什么,要过滤什么,不要忘了什么之类的。尽管都是众所周知的道理,但 XSS 漏洞十几年来几乎从未中断过,不乏一些大网站也时常爆出,小网站更是家常便饭。预警系统 事实上...
2014-06-21 16:55:13
296
原创 浅谈XSS(二)
前面我们说到了反射性XSS的发掘,里面涉及了很多javascript的东西,也许有些孩童们看不懂里面的代码到底是什么回事。今天,我们就来认识一下什么是javascript。首先说之前要说明一点,javascript和Java半毛钱关系都没有,不要认为有一个Java就和Java有关,Javascript是一种由Netscape的LiveScript发展而来的一种客户端脚本语言。 在jav...
2014-06-21 16:48:00
184
原创 谈论XSS(一)
XSS 叫跨站脚本攻击(Cross Site Script),那么XSS原本应该叫做CSS,但是由于CSS的简称已经被连级样式表 使用了,所以就换个称谓XSS。 为什么叫做跨站脚本攻击呢?它的意思就是在别人的网站上嵌入脚本,而这个脚本原本不是属于这个网站的。这个解释很直观吧。怎么嵌入脚本呢?比如这么个搜索结果页,当用户搜索test的时候,页面会显示“搜索关键词:test”这个时候,这里的tes...
2014-06-21 16:41:16
126
原创 Web安全漏洞简介之XSS
随着互联网流行,以及网站互动性的提高,像论坛、微博还有各种web2.0应用的兴起,很多网站都可以由用户或多或少的参与,可能很多的网站用户注册之后都可以评论、发帖等等。当然这些都是对正常向的用户来说的,如果是一个攻击者当然不会老老实实的发帖子之类的了。众所周知,现在看到的网页基本都是用html、javascript、css等技术在浏览器端展示的,所以如果一个黑客输入的不是正常的评论,而是一段ht...
2014-06-21 16:30:28
180
原创 正则再了解——test方法
不经意发现正则的test方法也会产生捕获结果。/(\w)(\w)/.test("acbd");alert(RegExp.$1);//aalert(RegExp.$2);//c倘若这样写:/(?:\w)(\w)/.test("acbd");alert(RegExp.$1);//calert(RegExp.$2);//"",ie可能为undefined...
2014-06-19 09:16:29
165
原创 js内存管理
简介低级语言,比如C,有低级的内存管理基元,像malloc(),free()。另一方面,JavaScript的内存基元在变量(对象,字符串等等)创建时分配,然后在他们不再被使用时“自动”释放。后者被称为垃圾回收。这个“自动”是混淆并给JavaScript(和其他高级语言)开发者一个错觉:他们可以不用考虑内存管理。内存生命周期不管什么程序语言,内存生命周期基本一致: 分配你...
2014-06-05 00:56:02
96
原创 js中如何封装模块
统一模块定义: function UMD(name, context, definition) { if (typeof module != 'undefined' && module.exports) module.exports = definition() else if (typeof define == 'function' && ...
2014-06-03 12:44:59
370
原创 再说prototype
直接看代码吧://写法一function A(){}var s = new A();A.prototype.title = "123";alert(s.title);//"123"//写法二function A(){}var s = new A();A.prototype = { title : "123"};...
2014-05-23 13:29:26
113
原创 for... in遍历的顺序
虽然ECMAScript规定了对象的遍历顺序是由对象定义时属性的书写顺序决定的.(译者注:ES5已经对遍历机制做了调整,重新规定:属性遍历的顺序是没有被规定的), 大部分浏览器都依照这个规定,先添加的属性先被遍历(除了从原型上继承的属性)(译者注:Chrome和Opera已经遵循了ES5的新规定,具体请看). 但是, 在 Internet Explorer 中, 使用 delete 删除一个属性...
2014-05-14 11:40:27
2238
原创 再理解jQuery;delete原型属性
以前用jQuery的时候曾粗略看了它的源码,但却不求甚解。以致一直以为jQuery()返回的是一个数组,实际上只是一个PlainObject而已。alert({}.toString.call(jQuery())) //显示为[object Object]现在想想也觉得自己无知。倘若真是数组,那么jQuery的设计岂不是侵入式的修改了Array的原型。这种设计并不被推荐,jQuery又怎...
2014-05-13 22:05:12
274
原创 Object、Function、function Empty(){}
Object、Function、function Empty(){} 这三者有怎样的关系? Object.__proto__ === Function.prototype === Function.__proto__ === function Empty(){};Function.prototype.__proto__ === Function.__proto__.__proto_...
2014-05-12 23:39:46
142
原创 有PSD or PNG 自动生成Html系统么?
有没有这么一种工具,可以做到不用手写代码,也不用ps去切图,就可以实现psd或者png效果图直接生成html。这也许能大大减少页面开发的工作量。
2014-05-03 22:57:55
256
原创 说说携程面试经历(纯属吐槽)
第一次是团队游事业部。技术面试没什么问题,面试官出去时让我坐会议室等人事,等了二三十分钟,一个负责联系我来面试的女人跟我说人事在会议室开会估计还要过一会,让我再等会。我说好。又是过了二三十分钟。那个女人又来了,直接说,我送你出去吧。我就无语加纳闷了。耍我?让我等这么久就这么句话,连个理由也没有?不再多想,这公司做事的方式不适合我。几天后,我进入新公司上班的第一天,接到携程的面试电话,我说我去...
2014-04-28 14:20:59
3982
原创 众人芸芸 我亦芸芸
很多事情远非我们想得那般容易那般乐观,很多事情也非努力就会成功,但去做了就总会有所收获。过多的期望往往带来的是努力之后无限的失望与不甘,但又如何,现实如此。想想自己也没那么努力吧,至少在人性弱点的克服上没有付出太多的努力。这世界上,有三类工种,一是体力劳动、二是脑力劳动、三是心力劳动。而最难也是最后一种,毕竟那是人性,江山易改,可人性难克服。即使是克服也是自律而使的强迫压制。贪婪...
2014-04-10 10:37:49
235
原创 Bye Bye
Bye, code. Bye, software develop.I will have a new life, and it will be a challenge. However, I love it, that's OK.
2013-01-10 17:13:24
117
原创 一种真正意义上的Session劫持
[ 目录 ]0×00 应用程序认证设计背景0×01 常规攻击思路及缺陷0×02 利用应用程序设计缺陷进行Session劫持的攻击原理0×03 Session劫持的大致思路及意义0×04 如何防御这种攻击0×00 应用程序认证设计背景一个应用程序在设计的过程中,为了实现对资源和请求进行管理,用户信息认证是非常重要的一环。由于HTTP请求的无连接性,一般的应用程序都是通过Cookie...
2012-08-31 12:33:19
107
原创 配置mongodb分片群集(sharding cluster)
Sharding cluster介绍这是一种可以水平扩展的模式,在数据量很大时特给力,实际大规模应用一般会采用这种架构去构建monodb系统。 要构建一个 MongoDB Sharding Cluster,需要三种角色:Shard Server: mongod 实例,用于存储实际的数据块,实际生产环境中一个shard server角色可由几台机器组个一个relica set承担,...
2012-08-29 09:32:42
121
原创 nginx正确配置之后遇到403问题
今天在安装完nginx并正确配置之后,在浏览器里打开url,始终显示403 无权限访问的错误。一直没有去想引起403错误的原因,所以一直在瞎折腾server的配置。晚上突然就意识到是不是配置的root /home/dalee/projects/dms 没有读写的权限。google之,果然是这样的问题,修改该文件夹的权限之后,问题迎刃而解。...
2012-08-23 22:48:53
461
原创 webstorm 4.0 注册码
username:solq35758-1204201000001cIW59IBVHRPp019pvqMI0zUcwRqOCGkr4xcLxYJaUE6RgIfTVRv43kV80GauemJf4PvNrFQdFYdjTGBTmZZXQ [转自:http://k10692081.iteye.com/blog/1551336]
2012-08-14 17:16:51
102
原创 linux安装mongodb
第一:下载,解压mongodb文件。把解压的文件放在/opt/下面(存放目录安装自己习惯存放)# wget http://fastdl.mongodb.org/linux/mongodb-linux-i686-2.0.7.tgz# tar -zxvf mongodb-linux-i686-2.0.7.tgz# mv mongodb-linux-i686-2.0.7.tgz ...
2012-08-14 11:03:19
102
原创 CentOS 6 使用 yum 安装MongoDB及服务器端配置
安装MongoDB的方法有很多种,可以源代码安装,在Centos也可以用yum源安装的方法。由于MongoDB更新得比较快,我比较喜欢用yum源安装的方法。64位Centos下的安装步骤如下:1、准备工作运行yum命令查看MongoDB的包信息 [root@localhost~]# yum info mongo-10gen(提示没有相关匹配的信息,) 说明你的centos系统中的...
2012-08-14 10:09:13
103
原创 centos 安装 Node.js 0.8.5
centos 安装 Node.js 0.8.5node.js 0.8.5的安装,需要python 2.7,大部分安装失败,都是因为python版本过低所致。安装之前,请升级python版。升级步骤http://sailinglee.iteye.com/blog/1631033 [tom@MyVPS1974 ~]$ python -VPython 2.7.3 开始安...
2012-08-14 08:59:59
138
原创 Python2.7的安装
下载/安装pythonyum install -y bzip2* #nodejs 0.8.5需要,请安装python前,先安装此模块。 wget http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tgztar zvxf Python-2.7.3.tgzcd Python-2.7.3./conf...
2012-08-14 08:58:23
259
原创 Java 强制类型转换
当两个整数相除时,小数点以后的数字会被截断,使得运算的结果保持为整数。但由于这并不是预期的计算结果,而想要得到运算的结果为浮点数,就必须将两个整数中的其中一个(或是两个)强制转换类型为浮点数,下面的三种写法都正确: (1) (float)a/b // 将整数a强制转换成浮点数,再与整数b相除(2) a/(float)b // 将整数b强制转换成浮点数,再以整数a除之(3) (...
2012-07-29 22:22:49
184
原创 Java 自动类型转换
在程序中已经定义好了数据类型的变量,若是想用另一种数据类型表示时,Java会在下列的条件皆成立时,自动做数据类型的转换: 1、转换前的数据类型与转换后的类型兼容。2、转换后的数据类型的表示范围比转换前的类型大。 举例来说,若是想将short类型的变量a转换为int类型,由于short与int皆为整数类型,符合上述条件1;而int的表示范围比short大,亦符合条件2。因此...
2012-07-29 21:41:26
330
原创 提问:这个星球上最贵的动物是什么?最贵的植物是什么?
提问:这个星球上最贵的动物是什么?最贵的植物是什么? 回答:最贵的动物是企鹅,在中国;最贵的植物是苹果,在美国。 啊哈哈哈哈哈
2012-07-27 17:30:20
192
原创 Java 数据类型
看图说话:如果想在程序中使用一个变量,就必须先声明,此时编译程序会在未使用的内存空间中寻找一块足够能保存这个变量的空间以供这个变量使用。整数数据类型可以分为long、int、short及byte四种:long为64位,也就是8个字节(bytes),可表示范围为-9223372036854775808 到 9223372036854775807;int为32 位,也就是4个字...
2012-07-27 15:31:51
119
原创 偏爱RESTful更深一点,缅怀MVC的时代
记得正式学习web开发的时候,接触到的第一个设计模式就是MVC,她统治了我之后两年多的开发生涯。 在搜索资料时也看到RESTful的介绍,后来同事也说到RESTful、Mongodb之类。慢慢的又去接触了nodejs,后来干脆就把这三者结合起来做了一个小项目。凭着对RESTful浅显的理解,做出的东西,虽然功能实现了,但架构上,真的不敢说是RESTful。现在再来理解RESTful,也发现...
2012-07-27 10:25:38
108
原创 地图api还是选soso和baidu吧
google地图api有被墙的风险,且卫星照片有些暗淡模糊,不过周边信息很详细。baidu地图周边信息不够详细,但几个特大城市都有了部分的3d地图,卫星照片也较google的清晰。soso地图周边信息比较详细,可以和google地图媲美,但还没发现有3d地图,另外它的卫星照片也比较清晰。 ...
2012-07-27 10:01:09
121
原创 Living Without Sessions
When we talk about sessions in Web app development, we're usually talking about server stored data about a particular client. Some Web frameworks use session state to track and hold information abo...
2012-07-26 16:46:40
128
原创 RESTful,在不用session的情况下做用户认证
最近在研究restful,在restful协议中,强调不使用session,但可以少量使用cookie。以保持restful的无状态性。但是在实际使用中,有一个最大的问题,就是当应用需要用户登陆认证时,应该怎么处理。在这里我的处理方法主要是把用户登陆后,把用户名+密码+ip地址+最后更新时间通过一个可逆加密后做为token,写入cookie,然后在需要认证的应用时,由php等程序读取...
2012-07-26 15:24:58
990
原创 Please give me a hand
Would u please give me a hand ? If u will, please fill the research (at http://idiaoyan.sinaapp.com) for me.Just 3 minutes.Thank u.
2012-07-26 10:26:42
160
原创 HTTP请求中的参数编码问题
最近在某个项目的开发过程中碰到了关于HTTP请求中的参数编码问题。由于原本团队的开发的项目中所使用的编码都是GBK(个人觉得这是万恶之源),而团队最近又在开发一个完全独立于原项目的新项目,而在这个项目中又都是使用了UTF-8,于是碰到了一些编码转换上问题。具体的问题场景:客户端需要发送异步请求(起初使用GET方式)给后台,请求的参数里面包含了中文字;后台在服务端接受到的参数内容的编码...
2012-07-23 20:57:10
638
原创 javascript &&和||
一直以为 && 和 || 这两个伟大的运算法只能在判断表达式使用,也就是常在if语句使用,原来错了,它还可以运用在简化选择性执行语句的操作,有点拗口,简单点也就是:操作执行某条语句,不执行某条语句。 &&和||在JQuery源代码内尤为使用广泛,由于本人没有系统的学习js,所以只能粗略的自我理解出来,希望大家指点下。 粗略理解如下: a() &...
2012-07-23 00:38:31
106
原创 undefined 和 void 0 的区别
在读backbone源码时看见这么一段代码: if (options.unset) for (attr in attrs) attrs[attr] = void 0; 调试后发现attrs中的属性都为undefined,既然如此为何不直接用undefined呢?基于此,搜索了相关文章,按照我的理解这一篇解释的比较合理:http://stackoverflow.com/questio...
2012-07-20 11:15:37
251
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅