我经常会使用无线网卡,所以才发现Ethereal抓不到无线网卡的数据包,而且我安装的windows上的tcpdump也抓不到,感觉是我的无线网卡不支持侦听;
后来实在非常需要侦听我的无线网卡,就往上搜了一下,原来侦听无线网卡的时候需要设置非混杂模式。
tcpdump 设置非混杂模式使用 -p选项
Ethereal 设置非混杂模式: capture => options => capture packets in promiscuous mode
DevOps
我经常会使用无线网卡,所以才发现Ethereal抓不到无线网卡的数据包,而且我安装的windows上的tcpdump也抓不到,感觉是我的无线网卡不支持侦听;
后来实在非常需要侦听我的无线网卡,就往上搜了一下,原来侦听无线网卡的时候需要设置非混杂模式。
tcpdump 设置非混杂模式使用 -p选项
Ethereal 设置非混杂模式: capture => options => capture packets in promiscuous mode
又是忙碌的一周过去了,今天2009年10月24号,周六;
和吴城约好本周天气好就去凤凰岭,昨天晚上已经查好了乘车路线,尽早8:30起床,发现天气不错,就赶快洗漱,约好10:30出发,在颐和园北宫门见面,因为去凤凰岭只有一趟车346,从颐和园东门发车,经过颐和园北宫门;
我们11:00 在北宫门坐346开始去凤凰岭,12:36到了凤凰岭(终点站);
我们先在外面吃了点饺子,买票进门时已经13点多了;我们以为很大,先走了中线;
然后走了北线,下山后已经17:00了,我们等公交车等了40分钟,18:00 开始回来,车上人很多,很挤,到颐和园北宫门时是19:20;
凤凰岭是我见过的比较有气势的大山,山体主要是石头的,可能是因为投入的资金不多,景点建设的还非常的简陋。
base64编码是网络传输的比较被青睐的一种编码,因为base64编码的字符集也是基本的asscii字符,所以经常会被当做安全的编码放在url里面传输,当做urlencode编码使用了,其实我们应该明白一下两点:
1. base64编码里面有一个 “+” 号,在urlecode编码中 “+” 会被解码成空格,urlencode时,"+" 号肯定是由空格编码出来的,但是base64编码的结果中 "+" 不是空格编码出来的,如果将base64编码作为安全的url编码使用,则 “+” 将被解码成空格,这是我们不愿看到的; 所以不要base64编码作为url编码来使用
2. 我们知道http头里面可能会用base64编码来传输一些信息,因为这些信息不会被web服务器默认做url解码的,我们可以得到原始的编码信息,所以http头里面使用base64编码是可以接受的
先来一个实际例子吧:
d:>openssl ocsp -issuer issuer.cer -cert login.sina.com.cn.crt -url http://ocsp.verisign.com/
Response Verify Failure
2296:error:27069065:OCSP routines:OCSP_basic_verify:certificate verify error:.\crypto\ocsp\ocsp_vfy.c:122:Verify error:unable to get local issuer cert
ificate
login.sina.com.cn.crt: good
This Update: Oct 20 14:03:40 2009 GMT
Next Update: Oct 27 14:03:40 2009 GMT
其中,
login.sina.com.cn.crt 是我们要验证的证书
issuer.cer 是颁发login.sina.com.cn.crt的ca的证书
要想看到更加详细的请求和相应的数据的具体内容,可添加 -text 选项,如下:
d:>openssl ocsp -issuer issuer.cer -cert login.sina.com.cn.crt -url http://ocsp.verisign.com/ -text
OCSP Request Data:
Version: 1 (0x0)
Requestor List:
Certificate ID:
Hash Algorithm: sha1
Issuer Name Hash: C0FE0278FC99188891B3F212E9C7E1B21AB7BFC0
Issuer Key Hash: 0DFC1DF0A9E0F01CE7F2B213177E6F8D157CD4F6
Serial Number: 25E692D2645B52CD365386F2424FE9A0
Request Extensions:
OCSP Nonce:
041026AA90D62932AFDE2FFFF5682E3AEDA4
OCSP Response Data:
OCSP Response Status: successful (0x0)
Response Type: Basic OCSP Response
Version: 1 (0x0)
Responder Id: O = VeriSign Trust Network, OU = "VeriSign, Inc.", OU = VeriSign International Server OCSP Responder – Class 3, OU = Terms of use at
www.verisign.com/rpa (c)03
Produced At: Oct 20 14:03:40 2009 GMT
Responses:
Certificate ID:
Hash Algorithm: sha1
Issuer Name Hash: C0FE0278FC99188891B3F212E9C7E1B21AB7BFC0
Issuer Key Hash: 0DFC1DF0A9E0F01CE7F2B213177E6F8D157CD4F6
Serial Number: 25E692D2645B52CD365386F2424FE9A0
Cert Status: good
This Update: Oct 20 14:03:40 2009 GMT
Next Update: Oct 27 14:03:40 2009 GMT
ocsp 的响应是做了ca的签名的,这样保证了响应的数据是可靠的。
相关文章:http://blog.chinaunix.net/u/12066/showart.php?id=491918
deb http://mirrors.163.com/ubuntu/ intrepid main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ intrepid-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ intrepid-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ intrepid-backports main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ intrepid-proposed main restricted universe multiverse
今天突然想比较一下 new String("a") 与 "a" 的异同; 发现
new String("a") == "a"; 成立
new String("a") === "a"; 不成立
也好理解,前者是一个对象,后者是一个字符串;不过对象是怎么和字符串做模糊比较的呢?
于是想到了toString(); 建了一个对象,重写了toString() 函数,如:
var obj = {
toString:function(){return "b";}
}
obj == "b"; 成立
于是认为对象toString()之后和字符串做比较的,和同事说了以后,同事认为应该是valueOf() 之后比较的,我想也有道理,于是做了下面的测试:var obj = {
toString : function(){
return "a";
},
valueOf : function(){
return "b";
}
};
console.log(obj == "a"); // 不成立
console.log(obj == "b"); // 成立
一般情况下,valueOf() 是对象自身,还是一个对象,和字符串比较时,还是要toString() 的; 但是我让valueOf()返回字符串,就不需要再toString() 了;
比较时确实是通过valueOf比较的
---------------------------
=== 与 == 的区别
前者要求不需是同一个,相同的地址;
后者要求类型转换后相同就行了。
对于通行证来讲,安全是非常重要的一个方面;为安全我孜孜以求,就那登录来说,我总是希望登录流程是绝对安全的。
后来分析utg的登录时,我没有找到用户名密码的任何蛛丝马迹;我不知道加密算法,更不知道加密是否用到了密钥;虽然我知道他们的加密和流程设计并不神秘,但如果不能给我带来足够大的价值的话,我是不会去破解用户名密码的。
从这件事,我深深地体会到: 我们不是任何时候都需要数学概念上的安全的,只要让用户觉得破解的难度和得到的东西不成比例就差不多了。
chm作为帮助文件,我们一般愿意作为编辑你的一个插件,通过一个快捷键直接启动指定的帮助文件并定位到摸个地方;今天简单研究了一下,发现可以如下使用:
hh /dir/to/chm/php_manual_zh.chm::/fancy/function.md5.html
该命令就可以直接启动php手册并定位到md5函数了。
当我们确认某vip开放了端口p,但访问时好时坏,你们可能是应为vip后面的部分真实服务器到我们自己的机器没有回包路由,这时的检查办法可以如下:
for i in seq 1 100
;do nmap vip -p port | grep filtered; done
检查100次,应该可以遍历所有的真实服务器了,如果出现filtered; 则基本是有问题的
我是经常使用nc来查看mc的状态的,突然有一天,我使用nc命令做set操作,发现总是失败;用telnet没有问题,至少应该不是memcached的问题,可能是nc的问题吧。
今天又遇到了这个问题,我使用tcpdump观察使用nc和使用telnet的差别,发现nc发送的回车为\n ,而telnet发送的回车符为\r\n,差异就这么多了,于是使用下列命令测试:
echo -e "set a 0 0 1\r\na\r\nquit\r\n"|nc host port
结果成功
echo -e "set a 0 0 1\na\nquit\n"|nc host port
结果失败
比较久可以知道问题是出现在回车符上了,至于memcached是怎么解释的,有时间在了解一下源码吧