摘要:
跨站脚本攻击(XSS)已经不是什么新鲜的话题了,甚至很多大公司也为此吃尽苦头。最简单直接的防范方法,就是不允许任何html标签输入,对用户输入进行编码(htmlencode)。但是如果想用户输入支持一些格式,怎么办?一种办法就是很多论坛采用的BB Code的方法。使用特定的标签代替一些格式。比如:[B]表示粗体,等等。但是,BB Code这种形式并不被广泛接受,它的表现力实在太差了,而且并不是标准... 阅读全文
摘要:
美国当年打越南,武力装备都在越南之上,最终还是失败告终。有人总结了这样一个说法:美国军队虽然总人数占优,但由于其专业的分工,一个战士还配个医疗兵,最终实际参与战斗的人其实不多。而越南兵根本没什么专业分工,前线的战士受伤了自己包扎一下就继续上,只要为了胜利,管它专业不专业,每个人都是全能手,倾尽所能全力战斗。美国需要反省,反省什么?初创的软件公司,三五个人十条枪,没有产品,没有运营,没有自动化测试,... 阅读全文
摘要:
MSAA的全称是Microsoft Active Accessibility。这是类似DCOM技术。技术模型是这样的,UI程序可以暴露出一个Interface,方便另一个程序对其进行控制。 MSAA技术的初衷是为了方便残疾人使用Windows 程序。比如盲人看不到窗口,但是盲人可以通过一个USB读屏器连接到电脑上, 读屏器通过UI程序暴露出来的这个Interface,就可以获取程序信息,通过... 阅读全文
摘要:
有些软件的界面采用Win32窗口嵌套一个IE控件,用Spy++只能识别出一个Internet Explorer_Server控件。常用的几个API函数无法取到IE控件里面的内容,更无法对里面的控件进行操作,所以这给自动化带来了麻烦。本文将讲述如何使用Python获取IHTMLDocument2接口,用于自动化测试。获取IHTMLDocument2接口参考:http://support.micro... 阅读全文
摘要:
Spy++是微软出品的用来获取Window窗口信息的一个小工具。实现的原理其实不难,通过调用某些特定的Windows API即可。于是,我打算用Python也实现一个功能简化版本的小工具,取名叫PySpy++。Python中调用Windows API一般使用pywin32这套库,界面库我使用PyQT4。 Spy++原理 Spy++中,最常用的一个功能,就是识别窗口。其中主要需要用到的Windo... 阅读全文
摘要:
今天早上起来折腾Ubuntu10.04LTS,于是,首先我打算直接使用cn99的源通过sudo apt-get upgrade升级上来。但是升级完成后,发现并没有完全升级成功,虽然查看Ubuntu版本已经是10.04LTS了,但是从内核版本和界面上看来,显然没有升级成功。于是,从网上下载了ubuntu-10.04-alternate-i386.iso,打算通过CDROM的方式升级上来。下载完成后,... 阅读全文
摘要:
lambda函数也叫匿名函数,即,函数没有具体的名称。先来看一个最简单例子:[代码]Python中使用lambda的话,写成这样[代码]lambda表达式在很多编程语言都有对应的实现。比如C#:[代码]那么,lambda表达式有什么用处呢?很多人提出了质疑,lambda和普通的函数相比,就是省去了函数名称而已,同时这样的匿名函数,又不能共享在别的地方调用。其实说的没错,lambda在Python这... 阅读全文
摘要:
之前研究安全性测试时的一些总结,汇总一下。(原 创)攻击方式学习之(1) - 跨站式脚本(Cross-Site Scripting) (原 创)攻击方式学习之(2) - SQL注入(SQL Injection)(原 创)攻击方式学习之(3) - 缓冲区溢出(Buffer Overflow)(原 创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)番外篇:代码 安全系列(1) - ... 阅读全文
摘要:
1. Really. JavaScript(Douglas Crockford) - http://www.slideshare.net/douglascrockford/really-javascript-37719952. Big Data in Real-Time at Twitter(Nick Kallen) - http://www.slideshare.net/nkallen/q-co... 阅读全文
摘要:
Python中的Decorators表面看起来很像C#的Attribute,其实不然,Python的Decorators和C#的Attribute完全是两个东西。Python的Decorators让我想到了设计模式中的装饰者模式(Decorator Pattern)。 Decorator Pattern [代码] Python中的通过Decorators对函数、方法或类进行装饰,从而达到增加... 阅读全文
摘要:
PyCharm是由JetBrains打造的一款Python IDE。我们知道,VS2010的重构插件Resharper就是出自JetBrains之手。那么,PyCharm有什么吸引人的特点呢?首先,PyCharm用于一般IDE具备的功能,比如, 调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制……另外,PyCharm还提供了一些很好的功能... 阅读全文
摘要:
今天了解了一下C# 4.0的一些新特性,并在VS2010里试了几把,主要的特性包括:1. Dynamic binding2. Named and Optional Arguments3. Features for COM interop4. Variance5. Relationship with Visual Basic学习资料 New Features in C# 4.0 [翻 译] C# 4... 阅读全文
摘要:
从ScottGu大神那里看到的,ASP.NET4.0启用新的<%: %>语法用于HTML编码。Html Encoding的一般用于防止跨站攻击(XSS),详情可以参考我之前写过的一篇文章:http://www.cnblogs.com/coderzh/archive/2008/09/06/1285500.html。 之前的做法是: [代码] 如果value已经被Html Encod... 阅读全文
摘要:
这篇,我只谈“持续集成”。 有人说敏捷必须有持续集成,有人说持续集成就是敏捷。如果你还不了解持续集成,赶紧看看《持续集成》第二版的中译本。 持续集成的最大益处是降低风险,及时发现代码的缺陷,并让代码保持随时可用的状态。如果不使用持续集成,会出现什么问题呢? 1. 到最后的集成时,会花费大量的时间,而且可能有很多BUG。 2. 开发过程会比较混乱。开发人员无法基于稳定... 阅读全文
摘要:
最近很多人都在体验VS2010,我忙着很多事,没有去体验。但我了解到其中一点,VS2010为敏捷开发提供了更多的支持。以前我所认为的敏捷开发,只有在理想公司,理想团队才可能开展,现在微软通过IDE,将敏捷的思想进行大范围的普及,让敏捷更加的深入人心。 敏捷宣言中只有简短的几句话,但是能真正做到不是那么容易。 [代码] Practices of an Agile Developer一书中,对敏... 阅读全文
摘要:
眼看就要工作满三年了,对于大多数人来说是一个特殊的时期,对于我来说,也不例外。我也常常在想,我自己的定位是什么,我以后想要做什么,我该怎么选择,才能实现自己的价值和梦想。 思绪回到三年前…… 我毕业于当时全国排名14左右的中南大学,学的专业是也是该校专业排名仅次于同济清华的土木工程。我没有像大多数人一样,选择去设计院,或者铁路局,工程局。我义无反顾的选择了金山软... 阅读全文
摘要:
今天把之前用Python实现的NancyGLines游戏迁移到了Android中,虽然现在还只是算个毛坯版,界面比较丑陋,功能也不够完善,但是整个框架已经建立好,并且,游戏的基本功能已经实现了。见下图:游戏规则:1. 触摸某个球,然后选择一个需要移动到的没有球的地方。2. 球移动过去后,如果满足横,竖,斜同颜色的球大于等于5个,则消去这些同颜色的球得分。3. 如果没有消去,则会落下三个新的球。4.... 阅读全文
摘要:
前段时间终于拿下了蓄谋已久的HTC G2 TIM,并且在手机上安装了各种各样的软件好好的玩了一把。总体感觉Android的应用相对来说还是少了一些,耐玩的游戏还不多。其中钻石迷情(jewels)还算是比较耐玩的,时间模式下我现在的最高分是46230,和高手比起来,不知道这个分数是不是还低了些呢,呵呵。我非常期待popcap的植物大战僵尸能够尽快移植到Android平台,这款游戏深受广大玩家的喜爱,... 阅读全文
摘要:
在玩转 Google开源C++单元测试框架Google Test系列(gtest)之四 - 参数化中已经介绍过了如何使用gtest进行参数化测试。在twitter上应 @xlinker 的要求,我在这里提供一个参数化的完整例子。这个例子也是我当初了解gtest时写的,同时这个例子也在《玩转》系列中出现过。最后,我再附上整个demo工程,里面有一些其他的示例,刚开始上手的同学可以直接拿我的demo工... 阅读全文
摘要:
今天偶然点了几下cmd命令行属性对话框的几个属性,cmd就崩溃了。重试几次,都能崩溃,然后又在同事的机器上,试了一下,也崩了。在公司装的win7,回家后,在家里的xp上试了几下,还是崩溃了。有图有真相: 后面是在家里试的,XP系统下的重现过程。 操作步骤: 1. “开始” - “运行” - “cmd” 2. cmd标题栏右... 阅读全文