解密国内某技术网站千本电子书之密(一)

国内某专业IT论坛,后文简称某DN。这个某DN网站有一个付费在线阅读电子书的功能,此前双十一出了一个优惠活动。一元享30天VIP特权 1000+本电子书免费阅读。才一元这算起来值,就算不能下载,在线看看自己想要的书也是满足。于是我就付了一元开通了30天的VIP特权。平时是15元一个月。

来到这个某DN的电子书频道,发现居然没有搜索电子书功能。只能站内全局搜索,估计权重不够高找不到这电子书的资源。(现在似乎是可以了站内搜索书名如果有这本电子书资源第一条就是)

我要找自己想读的书不是要拖动滚动条凭借肉眼找?这个体验真的太差了,且不说能找到自己想读的书,要是分页10条一加载完,然后拉一次,这样重复操作最终没能找到自己想要的书。那真的是吐血。

遇到这种问题先不要慌,拿出咱野生程序员的技术瞧瞧这个分页接口。当机立断按下F12看看这个接口能不能查出所有书籍名称。哈哈果然有这个接口,仔细一看这个接口还做了加密。参数分别是

version 版本号 (版本号的值是1)

time 时间戳 (秒)

param 接口分页参数是个JSON对象{start:1,size:10}

guid (这不知道是个啥默认值是1)

signature 签名

这个安全措施做得不错嘛。咋一看还解决不了呢,咱不知道他这个签名的加密方式啊。但是不到最后一刻不能真的每页10条去下拉找自己想看的书啊。我就复制了这个接口,试试改改这个param JSON参数把size改成100 看能不能请求成功。

理想很丰满现实很残酷。但是我不死心。根据开发经验这个加密方式一定在前端某个JS文件里面。必须必是前端加密传参后端接收解密后,拿到参数查询返回结果集。于是我就开始找JS文件,但是JS文件也不少啊内容更不用提了。所以只能从接口名称入手。accessAllBooks 对就叫访问所有书籍。

复制accessAllBooks就开心每个JS全局搜索,找到是必然的。

用的是MD5加密,加密的方式是 接口URL + 当前时间戳(秒级)+一个默认值 1 + 接口分页参数JSON + 盐。这个关键的盐并没有做什么安全措施。直接写在加密JS里面。

不由嘴角一翘。知道了加密方式我果断打开在线MD5加密,试一下100条能不能请求成功,万一接口做了限制只能10条呢。

皇天不负有心人啊。100条结果集回来了。哈哈 100还是太少我直接将参数写到1000。结果只有927条。咦难道有什么问题怎么只有927条。我又看了参数确认没错后重新请求还是只有927。我懂了宣传1000+ 实际只有927本。算了不要在乎这些细节。赶紧看看有没有我要的书。

居然有。但是在结果集很后面,这就说明我要在页面拉几十次才能找到我的书。先贴上返回的结果集(因为太多只贴一本书作为样例)

{
“code”: 200,
“message”: “”,
“data”: {
“AllBookList”: [
{
“guid”: “f6f3a392084a4993b941246100a74988”,
“name”: “Python从菜鸟到高手”,
“isbn”: “9787302507161”,
“cover”: “http://csdn-ebook-resources.oss-cn-beijing.aliyuncs.com/images/f6f3a392084a4993b941246100a74988/cover.jpeg”,
“author”: “李宁”,
“publisher”: “沈阳欧瑞科技有限公司”,
“contributor”: “”,
“price”: 39.9,
“vipfree”: 1,
“recommend”: “”,
“synopsis”: “本书用超过5万行的代码及大量的实战案例完美演绎了Python在各个领域的出色表现,每一个案例都有详细的实现步骤,带领读者由浅入深系统掌握Python语言的核心及Python全栈开发技能。本书共分六篇,各篇内容如下:Python基础知识篇(第1章~第10章),内容主要包括Python的基本概念、开发环境安装和配置、Python语言的基础知识,控制语句、列表、元组、字符串、字典、函数、类、对象、异常、方法、属性和迭代器;Python高级编程篇(第11章~第20章),内容主要包括正则表达式、常用模块、文件和流、数据存储、TCP和UDP编程、Urllib3、twisted、FTP、Email、多线程、tkinter、PyQt5和测试;Python Web开发篇(第21章、第22章),主要讲解了Python语言中流行的两个Web开发框架(Flask和Django)的使用方法;Python科学计算与数据分析篇(第23章~第25章),主要讲解了Python语言中常用的3个数据分析和数据可视化库(NumPy、Matplotlib和Pandas)的使用方法;Python Web爬虫技术篇(第26章、第27章),主要讲解了编写网”,
“status”: 0,
“publishdate”: 1535731200000,
“wordcount”: 2967360,
“positions”: 23182.5,
“chapters”: 238,
“useless”: 0,
“createtime”: 1599550097000,
“updatetime”: 1605589843000
}]}
到了这里我不由的有一个坏坏的想法,嘻嘻 就是把他们的电子书全部拉下来。这样就不受30天VIP的限制了。这个下期再聊。

注:

我这个【乐购鲸选】[1]公众号提供的书籍并不是从这个某DN爬的。我的书籍是从网络上东拼西凑而来的。也算是劫富济贫哈哈哈哈。

这个某DN的书籍我虽然最终拿到了不过还是加密的。下期会讲如何拿到书籍内容和内容解密,书籍内容的加密方式就和这期的不同了。最终我也会把从某ND拿到的书籍资源弄到公众号上来,不过有可能都是HTML格式的。

我尝试过从HTML转换到PDF但是效果不理想。后面看看如果不行只能是HTML格式的了。

附有某DN电子书籍名称全集[2]

另外我在附上【乐购鲸选】千本书籍名称介绍及索引[3]

参考
^乐购鲸选是个提供免费技术PDF书籍的公众号 https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=MzI2NDQxNjUxNw==&scene=124#wechat_redirect
^某DN电子书名称全集 https://mp.weixin.qq.com/s/HWP5B7PYKGRVUf8YohemRg
^乐购鲸选技术书籍索引 https://mp.weixin.qq.com/s/weXMuF0C1LFczZzwABVH2Q

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值