摘要:编写起因 爬虫让人又爱又恨!自己用特爽但是别人对自己用就特烦!于是我...
编写起因
爬虫让人又爱又恨!自己用特爽但是别人对自己用就特烦!于是我就写了这个urlDefender源码,防止url篡改以及抓包注入!
版权声明
本类库为本人原创,希望转载或者复制标明出处!代码文档
js库方法及说明
文档只标出主要方法!
类名:urlDefender
方法:
构造函数(salt=='')
//salt为唯一值,尽量不同防止暴力破解!salt须与php中的$salt相同,否则会认为不是同一操作者!
get(data, resultType = 'json')
//data可为json字符串,json对象,url参数字符串(a=1&b=2)
//resultType指定返回值类型,为字符串 json,string(a=1&b=2)
getJson(data)
//同上,默认resultType 为 json
getString()
//同上,默认resultType 为 string
response(data)
//接收并验证响应,data可为json字符串,json对象,url参数字符串(a=1&b=2)
//返回值:缺失参数为-1,参数错误为-2,验证成功为1,超时时间默认30秒
//可直接操作成员变量:缺失参数为lostCode,参数错误为errorCode,验证成功为successCode,超时时间为limitTime
setSalt(salt)
//重新设置salt值,salt须与php中的$salt相同,否则会认为不是同一操作者!
php库方法及说明
文档只标出主要方法!
类名:urlDefender
方法:
构造函数($method, $salt = '')
//$method为当前请求类型,$salt须与js中的salt相同,否则会认为不是同一操作者!
defend($type = 'header')
//开启保护!$type为参数传递方式(header,get,post,cookie)
response($parm, $type = 'json')
//开启响应,$parm为响应数组或url串,$type为结果类型(json,string:url编码串)
exit()
//需配合defend方法或response方法,如果非法访问会停止php脚本执行并输出json格式拦截参数标号及说明!
return()
//需配合defend方法或response方法,如果非法访问会返回拦截参数标号及说明数组!
refresh($method = '', $salt = null)
//手动刷新上次结果,一般不用手动调用,urlDefender会自动调用
setResultArg($resultArg)
//规定返回值的格式,$resultArg为数组,格式为['code' => 'code', 'msg' => 'msg', 'successCode' => 1, 'failCode' => 0,
'lostCode' => -1, 'errorCode' => -2, 'cofigErrorCode' => -3, 'lostMsg'=> '参数丢失',
'errorMsg'=> '参数错误','timeoutMsg'=> '参数过期']
setMethod($method)
//重新设置当前请求类型
setSalt($salt)
//重新设置$salt,$salt须与js中的salt相同,否则会认为不是同一操作者!
setLimitTime($limitTime)
//设置每次请求有效期,默认30秒
例子
//以jq为例
var data = {
a: 1,
c: 6
};
$.ajax({
type: "post",
url: "a.php",
data: data,
headers: (new urlDefender('a')).get(data, 'json'),
dataType: "json",
});
<?php
require('urlDefender.php');
$o=new UrlDefender('post','a');
$o->defend()->exit();
//若无非法请求则继续执行其他代码
echo ''I am here;
?>
文档地址
详细文档地址:http://api.setbug.com/api/urlDefender/doc.api下载地址