;

白名单,以deny为最后标准,有隐含的拒绝所有语句存在。 Order Allow,Deny 黑名单,以allow为最后标准,有隐含的允许所有语句存在。 Order Deny,Allow http://www.nowamagic.net/academy/detail/1225509

order allow,deny 2017年8月18日
;

需要有mysql_error()反馈信息 http://blog.csdn.net/ysynhtt/article/details/45115849 http://websec.ca/kb/sql_injection http://www.exploit-db.com/wp-content/themes/exploit/docs/33253.pdf

通过inser into进行注入 2017年8月16日
;

出于好奇,想看看取消root账号的全局权限是什么效果,结果竟然真的可以哦 sudo killall mysqld //干掉所有mysql进程 mysqld_safe –skip-grant-tables & //进入mysql安全模式 此时进入了mysql的console(控制台) mysql -p Enter password: //接着提示输入密码,此时会创建新密码,以前的密码依然可以用 接着进入了mysql控制台 mysql>use mysql //选择数据库 mysql>grant all privileges on *.* to baidu@localhost identified by ‘1’; //@前为账号名 mysql>flush privileges //更新权限 重启 service mysql restart

mysql误操作导致root账号权限丢失 2017年8月10日
;

按小时显示 select timestamp,count(*) as test from browserinfo group by date_format(timestamp, ‘%Y-%m-%d %H ‘); 查询今天,昨天,近7天,近30天,本月,上一月 select * from `browserinfo` where date_format(`timestamp`,’%Y-%m-%d’) = date_format(now(),’%Y-%m-%d’); //当天 select * from `browserinfo` where to_days(date_format(`timestamp`,’%Y-%m-%d’)) = to_days(now()); //当天,效果同上一条 select * from `browserinfo` where to_days(`timestamp`) = to_days(now()); //当天,效果同上两条 select * from `browserinfo` where to_days(now())-to_days(`timestamp`) <= 1; //昨天 select * from `browserinfo` where date_sub(curdate(), INTERVAL 7…

mysql 时间戳 按周、日、月 统计方法 2017年8月8日
;

从5.2版本开始,PHP原生提供json_encode()和json_decode()函数,前者用于编码,后者用于解码。 一、json_encode() <?php $arr = array (‘a’=>1,’b’=>2,’c’=>3,’d’=>4,’e’=>5); echo json_encode($arr); ?> 输出 {"a":1,"b":2,"c":3,"d":4,"e":5} 再看一个对象转换的例子: $obj->body = ‘another post’; $obj->id = 21; $obj->approved = true; $obj->favorite_count = 1; $obj->status = NULL; echo json_encode($obj); 输出 {  "body":"another post",  "id":21,  "approved":true,  "favorite_count":1,  "status"…

json_encode及json_decode用法说明 2017年8月1日
;
mysql 去除重复数据 2017年7月29日
;

0×01 前言 前两天在百家号上看到一篇名为《反击爬虫,前端工程师的脑洞可以有多大?》的文章,文章从多方面结合实际情况列举了包括猫眼电影、美团、去哪儿等大型电商网站的反爬虫机制。的确,如文章所说,对于一张网页,我们往往希望它是结构良好,内容清晰的,这样搜索引擎才能准确地认知它;而反过来,又有一些情景,我们不希望内容能被轻易获取,比方说电商网站的交易额,高等学校网站的题目等。因为这些内容,往往是一个产品的生命线,必须做到有效地保护。这就是爬虫与反爬虫这一话题的由来。本文就以做的较好的“猫眼电影”网站为例,搞定他的反爬虫机制,轻松爬去我们想要的数据! 0×02 常见反爬虫 从功能上来讲,爬虫一般分为数据采集,处理,储存三个部分。而作为程序员的我们只关心数据采集部分,处理什么的还是交给那些数据分析师去搞吧。 一般来说,大多数网站会从三个方面反爬虫:用户请求的Headers,用户行为,网站目录和数据加载方式。前两种比较容易遇到,大多数网站都从这些角度来反爬虫,而第三种则相对比较特殊,一些应用ajax的网站会采用,这样无疑会增大了爬虫爬取的难度。 然而,这三种反爬虫策略则早已有应对的方法和策略。如果遇到了从用户请求的Headers反爬虫机制,可以直接在爬虫中添加Headers,将浏览器的User-Agent复制到爬虫的Headers中;或者将Refer…

反击“猫眼电影”网站的反爬虫策略 2017年7月26日
;

1. 前言 对于一张网页,我们往往希望它是结构良好,内容清晰的,这样搜索引擎才能准确地认知它。 而反过来,又有一些情景,我们不希望内容能被轻易获取,比方说电商网站的交易额,教育网站的题目等。因为这些内容,往往是一个产品的生命线,必须做到有效地保护。这就是爬虫与反爬虫这一话题的由来。 2. 常见反爬虫策略 但是世界上没有一个网站,能做到完美地反爬虫。 如果页面希望能在用户面前正常展示,同时又不给爬虫机会,就必须要做到识别真人与机器人。因此工程师们做了各种尝试,这些策略大多采用于后端,也是目前比较常规单有效的手段,比如: User-Agent + Referer检测 账号及Cookie验证 验证码 IP限制频次 而爬虫是可以无限逼近于真人的,比如: chrome headless或phantomjs来模拟浏览器环境 tesseract识别验证码 代理IP淘宝就能买到 所以我们说,100%的反爬虫策略?不存在的。 更多的是体力活,是个难易程度的问题。 不过作为前端工程师,我们可以增加一下游戏难度,设计出一些很(sang)有(xin)意(bing)思(kuang)的反爬虫策略。 3. 前端与反爬虫 3.1 font-face拼凑式 例子:猫眼电影 猫眼电影里,对于票房数据,展示的并不是纯粹的数字。 页面使用了font-face定义了字符集,并通过un…

反击爬虫,前端工程师的脑洞可以有多大? 2017年7月26日
;

XML-RPC is a remote procedure call (one process calling the function of another process via a remote connection) protocol which uses XML to represent data and HTTP to make the calls. Although applications can explicitly provide their own REST APIs for RPC, a standard protocol can help security and provide many other benefits. For example, developers don’t have to design a REST API architecture from scratch and also a single client can be used to make remote procedure calls to various server applications which support the standard protocol. Therefore, XML-RPC was introduced …

XML-RPC接口开发实例 2017年7月26日
;

1.POST xml内容 <?xml version="1.0" encoding="iso-8859-1"?> <methodCall> <methodName>wp.getUsersBlogs</methodName> <params> <param><value>username</value></param> <param><value>password</value></param> </params> </methodCall> 2.返回信息片段 <member> <name>isAdmin</name> <value> <boolean>1</boolean> </value> </member> <member> <name>faultString</name> <value> <string>用户名或密码不正确。</string> </v…

wordpress之xmlrpc攻击过程模拟 2017年7月26日
;

配置文件说明 需要修改的配置文件是WordPress根目录下的 wp-config.php 文件,记得以 UTF-8 无 BOM 格式编码。 开启调试模式 设置调试模式要修改的是 WP_DEBUG 这个常量,默认是: define(‘WP_DEBUG’, false); 需要开启时找到这行并修改为: define(‘WP_DEBUG’, true); 即可,false代表关闭,true代表开启。 输出调试信息 如果需要输出调试信息到日志文件(前提是开启了调试模式),在下面加一句 define(‘WP_DEBUG_LOG’, true); 即可,调试信息会被保存到 wp-content 目录下 debug.log 文件。 不在页面显示 如果并不需要在页面显示调试信息,那么你可以加上这一句 define(‘WP_DEBUG_DISPLAY’, false); 来实现。这个一般配合 WP_DEBUG_LOG 使用,即只输出日志不在页面显示。 修改静态脚本 如果你需要调试WordPress的CSS和Javascript代码,那么你可以加这一句 define(‘SCRIPT_DEBUG’, true); 来调用完整版代码(默认调用的都…

wordpress开启调试模式及错误日志 2017年7月26日
;

1.简介 评论添加自定义字段 2.用法 <?php add_comment_meta( $comment_id, $meta_key, $meta_value, $unique ); ?> 3.实例 Add a custom posted value to every new comment <?php function add_custom_comment_field( $comment_id ) { add_comment_meta( $comment_id, ‘my_custom_comment_field’, $_POST[‘my_custom_comment_field’] ); } add_action( ‘comment_post’, ‘add_custom_comment_field’ ); ?>

wordpress评论添加自定义字段add_comment_meta 2017年7月25日
;

1.简介 add_post_meta 添加一个自定义字段(Custom Field)到指定的日志,页面或者 post type 中。 如果 $unique 参数设置为 true,并且指定的 meta key 已存在,那么这个函数返回 false 并且不对现有的字段做任何修改,否则添加字段并返回 true。 2.用法 <?php add_post_meta($post_id, $meta_key, $meta_value, $unique); ?> 3.参数 $post_id (integer) (required) 将要添加自定义字段的日志 ID。 Default: None $meta_key (string) (required) 将要添加自定义字段的名称(key)。 Default: None $meta_value (mixed) (required) 将要添加自定义字段的值,如果是一个数组,将会被序列化成字符串。 Default: None $unique (boolean) (optional) 设置当前的 key 是否为唯一的,当设置为 true,将保证当前日志没有以 $meta_key 作为 key 的自定义字段,并且如果已经存在,则添加不成功。 Default: false 4.返回值 (bool) 添加成功返回…

wordpress文章添加自定义字段add_post_meta 2017年7月25日
;

$input = file_get_contents("php://input"); var_dump($input);

一次接收所有POST数据 2017年7月25日
;

<form action="<?php echo $_SERVER[‘PHP_SELF’];?>" method="post"> if(isset($_POST[‘submit’])) { $item=$_POST["item"]; echo $item; } action为空也可以

form表单提交到达当前页面 2017年7月25日
;

那些你不知道的爬虫反爬虫套路 前言 爬虫与反爬虫,是一个很不阳光的行业。 这里说的不阳光,有两个含义。 第一是,这个行业是隐藏在地下的,一般很少被曝光出来。很多公司对外都不会宣称自己有爬虫团队,甚至隐瞒自己有反爬虫团队的事实。这可能是出于公司战略角度来看的,与技术无关。 第二是,这个行业并不是一个很积极向上的行业。很多人在这个行业摸爬滚打了多年,积攒了大量的经验,但是悲哀的发现,这些经验很难兑换成闪光的简历。面试的时候,因为双方爬虫理念或者反爬虫理念不同,也很可能互不认可,影响自己的求职之路。本来程序员就有“文人相轻”的倾向,何况理念真的大不同。 然而这就是程序员的宿命。不管这个行业有多么的不阳光,依然无法阻挡大量的人进入这个行业,因为有公司的需求。 那么,公司到底有什么样的需求,导致了我们真的需要爬虫 / 反爬虫呢? 反爬虫很好理解,有了爬虫我们自然要反爬虫。对于程序员来说,哪怕仅仅是出于“我就是要证明我技术比你好”的目的,也会去做。对于公司来说,意义更加重大,最少,也能降低服务器负载,光凭这一点,反爬虫就有充足的生存价值。 那么爬虫呢? 最早的爬虫起源于搜索引擎。搜索引擎是善意的爬虫,可以检索你的一切信息,并提供给其他用户访问。为此他们还专门定义了 robots.txt 文件,作为君子协定,这是一个双赢的局面。 然而事情很快被一些人破坏了…

互联网中一半以上的流量都是爬虫?不,比这还多 2017年7月17日
;

流程:apache2->mysql->php->phpmyadmin 步骤一:安装apache2 sudo apt-get update sudo apt-get install apache2 步骤二:安装mysql,中途需要两次输入数据库密码 sudo apt-get install mysql-server mysql-client 如何判断mysql是否安装成功: sudo service mysql restart 让apache支持mysql: sudo apt-get install libapache2-mod-auth-mysql 安装这个模块后,apache才能支持mysql。 登录mysql: mysql -u root -p 步骤三:安装php sudo apt-get install php5 让Apache支持php sudo apt-get install libapache2-mod-php5 安装php5-gd模块 sudo apt-get install php5-gd 安装mcrypt模块 sudo apt-get install php5-mcrypt sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available sudo php5enm…

ubantu手动安装php环境 2017年7月16日
;

步骤一: 地址栏输入,chrome://version,“个人资料路径”即为本地路径 步骤二: 复制地址在文件夹内打开,进入到“Extensions”目录 如何知道插件对应的目录 步骤三: 地址栏输入,chrome://extensions/ 此处ID即为对应的目录名

如何查看chrome插件源文件 2017年7月16日
;

步骤一:下载bigdump.php(http://www.ozerov.de/bigdump/usage/) 步骤二:通过编辑器bigdump.php配置数据库连接信息 步骤三:将sql文件一起放于bigdump.php所在的文件夹或子目录内 步骤四:通过浏览器访问bigdump.php

通过BigDump导入超大MySQL数据文件 2017年7月10日
;

步骤一: crontab -e crontab -l查看 步骤二: #每分钟执行一次 */1 * * * * /usr/bin/php5 /var/www/site/inde.php #每小时执行一次 0 * * * * /usr/bin/php5 /var/www/site/inde.php #每天执行一次 0 0 * * * /usr/bin/php5 /var/www/site/inde.php #每周执行一次 0 0 * * 0 /usr/bin/php5 /var/www/site/inde.php #每月执行一次 0 0 1 * * /usr/bin/php5 /var/www/site/inde.php #每年执行一次 0 0 1 1 * /usr/bin/php5 /var/www/site/inde.php 步骤三:退出保存 点击键盘上的Esc键,输入“:wq”回车 # +—————- minute (0 – 59) # | +————- hour (0 – 23) # | | +———- day of month (1 – 31) # | | | +——- month (1 – 12) # | | | | +—- day of week (0 – 6) (Sund…

crontab定时任务 2017年6月30日
;

<?php $a= array(‘张三’,’李四’,’王五’); $b= array (’23’,’24’,’25’); $c= array (‘北京’,’上海’,’广州’ ); foreach($a as $key=>$val){ $d[$key][‘姓名’]=$a[$key]; $d[$key][‘年龄’]=$b[$key]; $d[$key][‘城市’]=$c[$key]; } var_dump($d); ?>

php多个一维数组合并成二维数组 2017年6月30日
;
透视扑克骗术 2017年6月10日
;
创意动图 2017年6月6日
;
滑板教程 2017年6月5日