在ruby版块发了个自杀式的隐藏帖,加到40分,终于能够在灌水乐园回帖,结果ruby版块那个帖子真的被隐藏了。现在我回复不了灌水乐园任何帖子,没有继续回复请见谅。
/**PC HttpRequest User-Agent*/
private static String PC_USER_AGENTS[]=new String[]{
"Windows 98",
"Windows ME",
"Windows 2000",
"Windows XP",
"Windows NT",
"Ubuntu"
};
/**Mobile HttpRequest User-Agent*/
private static String MOBILE_USER_AGENTS[]=new String[]{
"Nokia",//诺基亚
"SAMSUNG",//三星手机
"MIDP-2",//j2me2.0
"SymbianOS",//塞班系统的, "MAUI",//MTK山寨机默认ua
"UNTRUSTED/1.0",//疑似山寨机的ua,基本可以确定还是手机
"Windows CE",//Windows CE
"iPhone",//iPhone
"iPad",//iPad
"Android",//Android
"BlackBerry",//BlackBerry
"UCWEB",//ucweb是否只给wap页面? Nokia5800 XpressMusic/UCWEB7.5.0.66/50/999
"ucweb",//小写的ucweb,
"BREW",//很奇怪的ua
"J2ME",//,很奇怪的ua,只有J2ME四个字母
"YULONG",//宇龙手机
"YuLong",//还是宇龙
"COOLPAD",//宇龙酷派
"TIANYU",//天语手机
"TY-",//天语
"K-Touch",//还是天语
"Haier",//海尔手机
"DOPOD",//多普达手机
"Lenovo",//联想手机
"LENOVO",//联想手机
"HUAQIN",//华勤手机
"AIGO-",//爱国者居手机
"CTC/1.0",//含义不明
"CTC/2.0",//含义不明
"CMCC",//移动定制手机
"DAXIAN",//大显手机
"MOT-",//摩托罗拉
"SonyEricsson",//索爱手机
"GIONEE",//金立手机
"HTC",//HTC手机
"ZTE",//中兴手机
"HUAWEI",//华为手机
"webOS",//palm手机
"GoBrowser",//3g GoBrowser.User-Agent=Nokia5230/GoBrowser/2.0.290 Safari
"IEMobile",//Windows CE手机自带浏览器
"WAP2.0",//支持wap 2.0的
};
private boolean checkMobile() {
String userAgent = request.getHeader("user-agent");
for (String mobile : MOBILE_USER_AGENTS) {
if (userAgent.contains(mobile) || userAgent.contains(mobile.toUpperCase()) ||
userAgent.contains(mobile.toLowerCase())) {
return true;
}
}
return false;
}
详细地址可见:http://shuiranyue.blog.163.com/blog/static/421990342011114105255724
模拟浏览器执行网页操作,很多次碰到的都是cookie的问题,第一次是执行人人网的某些操作的时候发现达不到正确的效果最后发现是我的程序先后new HttpClient没有保证执行操作时使用用一个client,故原来从服务器得到的cookie丢失却不知道是怎么回事。
这一次破解的网站不像人人网那么规范,第一部分不需要模拟网页操作,第二部分需要,第三部分不需要。但我还是犯了同样的错误,模拟网页操作时每一个操作都重新new HttpClient还是没有保证在模拟网页操作的部分使用同一个client。然后就发现是cookie的问题,当我使用同一个client时还是发现没成功。这时还是觉得错在cookie,觉得应该是没有正确模拟浏览器的行为,后来发现html页面的js函数里有set cookie的代码,于是模拟js代码,在提交down请求时自行增加ud cookie,就模拟成功了。
具体经过如下
提交down url时要设置一个cookie请求头,将错误的包和正确的包对比后发现除了实际提交的数据外只有cookie信息不同,有route 和 ud两种cookie,后来发现route cookie是由服务器设置的而不知道ud cookie是什么时候设置的,观察正确的数据包发现ud直接在请求头出现,不经服务器设置。后来发现html页面的js函数里有set cookie的代码,于是模拟js代码,在提交down请求时增加ud cookie
这个问题纠结了很久,还是朋友帮我指出的,哎哎,看了还是水平不到家,想胜任破解工作还需扎实基础知识呢。浏览器和服务器之间交互所使用的各种技术的原理。