Heero's Blog

Heero's Blog

验证码的几个常见漏洞

把验证码存储在Cookie中

一般来说,我们会把验证码的值用Session存储起来,通过对比用户提交的验证码和Session中的验证码,就可以知道输入是否正确。由于Session会占用服务器资源,我曾经想过是否可以把验证码的值加密后存储在Cookie中。不过事实证明,这只是异想天开罢了。

假设验证码的值是a,通过sha1加密后得到的值为b = sha1(a),并且把b存储在Cookie中。而用户提交的验证码值为c,通过判断sha1(c)是否与b相等,可以知道输入的验证码是否正确。然而,Cookie是受客户端控制的。如果用户事先通过肉眼看到验证码的值是a,又从Cookie中得知此时的加密值为b,那么,他只要在提交前把Cookie的值修改为b,提交的验证码值为a,就可以永远通过验证。

没有进行非空判断

这种情况可以直接用代码来说明:

if (Request["captcha"] == Session["captcha"] as string)
{
    // 验证通过,继续操作
}

假设用户绕过了系统提供的

[译]原生全屏Javascript API

HTML 5的<video>是一个相当不错的标签,但是它刚发布的时间,最大的问题是它不能像Flash那样实现真正的全屏。幸好,几个月后,大部分浏览器已经原生地支持全屏。

全屏API简史

  1. 第一个原生的全屏接口是在Safari 5.0(和iOS)中添加的 webkitEnterFullScreen() 函数。不过,它只能用于<video>标签。
  2. 在Safari 5.1中,苹果修改了这个API使它更接近于Mozilla的全屏API草案(比苹果的实现更早)。现在,所有DOM元素都可以调用 webkitRequestFullScreen() 方法。
  3. Firefox和Chome表示它们将会添加原生全屏API支持,而且这个特性已经在Chome 15+以及Firefox Nightly中实现。
  4. 在2011年10月15日,W3C发布了一份全屏API草案(由Opera团队的一名成员编写),它跟Mozilla的草案有两个主要的不同点:
    1. Mozilla/Webkit使用大写字母'S'(FullScreen),但W3C则不是(Fullscreen);
    2. Mozilla/Webkit使用cancelFullScreen,W3C使用exitFullscreen

TidyBlog重写初步完成

由于自己的粗心大意,TidyBlog的源码在几个月前完全丢失,所以这段时间一直在抽空重写TidyBlog,直到这周末,主要功能已经完成,于是就更新上来了。

这次重写同时也是代码重构,最重要的修改要数引入了一个简单的ORM,省去了大量的SQL语句。另外,编辑器换成了KindEditor,兼容性更好,功能更强大。

为避重蹈覆辙,Tidyblog源码已经传到SVN:http://code.google.com/p/tidyblog/ ,有兴趣研究的朋友可自行Checkout。由于功能尚未完全做好,就暂时不提供单独下载了。

使用canvas绘制时钟

准备工作

在HTML中指定一个区域放置时钟:

<div id="clock" style="position: relative;"></div>

时钟的一些外观设定:

var width = 260; // 桌布宽度
var height= 260; // 桌布高度
var dot = {
  x : width / 2,
  y : height / 2,
  radius : 6
}; // 圆点位置、半径
var radius = 120; // 圆半径
var borderWidth = 6; // 圆边框宽度

创建<canvas>元素:

var clock = document.getElementById('clock');
var clockBg = document.createElement('ca

惠普4431s商用笔记本简单评测(下)

正如上篇末尾所说,下篇主要谈一下此机的缺点,其中星星符号代表其缺点的严重程度。

电源适配器无指示灯(★)

这个问题在上篇也谈到过,适配器上无通电指示灯,无法知道当前是通电还是断电状态(有可能插座坏了或者松了)。此外,其实指示灯也可以使适配器更加美观。

HP 4431s与Lenovo F41电源适配器对比

光驱声(★)

每次开机以及从休眠唤醒时,光驱都会发出一些声响。虽然声音不大,但总感觉有点不爽。

音频插孔没有用不同颜色区分(★)

无法直观看到哪个孔接耳机、哪个孔接麦克风,只有靠近去看插孔旁边的小图标才能知道

惠普4431s商用笔记本简单评测(上)

本来打算上一年入的笔记本,由于没有选到合适的机型而推到今年才出手。千挑万选之后,初步确定了两台机子,分别是Thinkpad E420sHP 4431s,均为i3版配置。最后选4431s的原因是,这款机带蓝牙、底板容易拆卸(方便清理灰尘、加内存),且在硬件配置差不多的情况下比E420s要便宜差不多2K。

机器在岗顶太平洋电脑城入手,价格不到¥4K5,加上开票以及8G内存,总价不到¥5K,赠品有单肩包、鼠标和鼠标垫。

外观

这机的A、C面都是金属拉丝,以银色为主。

HP 4431s

与之前用的联想F41相比,4431s的尺寸稍小,重量也轻一点。

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 下一页
  18. 末页