反爬虫策略

作者: kmbaby | 来源:发表于2016-10-27 17:30 被阅读774次

这篇文章是对上篇的一个实现。虽然已经破解了它再去实现有点不开心。
但作为防止学生暴力的爬页面也比较足够了。

需求

在请求重要接口时要多传一个不太好爬的 authkey 实现反爬虫

authkey 实现

  1. 生产authkey, authkey是后端生产的一个随机key, 过一段时间会过期使用一次也过期。
  2. 从算法池中取2个加密算法对authkey进行加密。
  3. 把加密后的authkey, 和 对应的2个解密算法返回给前端

前端拿到的代码如下

;
! function() {
    var map = function(arr, f) {
        if (Array.prototype.map) {
            return Array.prototype.map.call(arr, f);
        }
        var result = [];
        for (var i = 0; i < arr.length; i++) { result.push(f(arr[i])); }
        return result;
    };
    // 删除 process 对node设障碍 不影响浏览器
    delete process;
  
    //下发的加密后的authkey
    var result = [32, 50, 103, ..., 312, 632];
    var fun_arr = [f1, f2];

    result = map(result, function(item){
        return String.fromCharCode(item);
    }).join('')

    result = fun_arr[0](result);
    result = fun_arr[1](result);

    callback(new Function('return "' + result + '";'));
}();

前端对代码又进行了解密 然后callback

4 . 对整个代码转为unnicode 数组。真正返回给前端的是

// 对上面所有代码进行unicode后返回
eval(
    function(arr, f) {
        if (typeof Array.prototype.map === "function") {
            return arr.map(f)
        }
        var res = [],
            j = 0;
        for (var i = 0, l = arr.length; i < l; i++) { res[j++] = f(arr[i], i, arr) }
        return res
    }(
        [38684, 38658, 38727, 38742, .........., 38735, 38724, 38741],
        function(item) {
            return String.fromCharCode(item - 38625)
        }).join('')
)

5、 我们还可以加上混淆代码, 环境判断等等障碍但终究无法彻底防范。


前端能做的还是很有限,能起到限制初学者。
真正的预防还是在后端通过访问频率, ip 等来屏蔽。

反爬虫就是程序员的互相伤害,爬的人不要太暴力就好。

相关文章

  • 反爬虫到底是怎么一回事?

    爬虫与反爬虫永远是相生相克的:当爬虫知道了反爬策略就可以制定反-反爬策略,同样地,网站知道了爬虫的反-反爬策略就可...

  • 常见的反爬虫和应对方法

    通过Headers 反爬虫: 从用户请求的Headers 反爬虫是最常见的反爬虫策略。很多网站都会对Headers...

  • 反爬虫策略

    最近在做爬虫相关的作业, 发现一些网站有反爬虫策略。 反爬虫策略说白了就是要检测你是不是机器人。 那问题来了, 如...

  • 抖音爬虫教程,python爬虫采集反爬策略

    抖音爬虫教程,python爬虫采集反爬策略一、爬虫与反爬简介爬虫就是我们利用某种程序代替人工批量读取、获取网站上的...

  • css反爬解析

    一、概述 有爬虫,就一定会有反爬虫,也因此一定会有反-反爬虫,双方就是在不断变换策略,但是,只要是是使用代码...

  • 反爬虫策略

    搜寻了大多数资料,反爬虫策略只是为了让爬虫更复杂,更麻烦,目前貌似没有能一劳永逸的方案。 以下的策略只是增加爬虫的...

  • 反爬虫策略

    这篇文章是对上篇的一个实现。虽然已经破解了它再去实现有点不开心。但作为防止学生暴力的爬页面也比较足够了。 需求 在...

  • 反爬虫策略

    常见的反爬虫策略总结 检查访问中的user-agent 检查同一IP的访问频率 对特定的高频操作进行二维码验证 对...

  • (二)爬虫框架(5)——scrapy下载中间件

    在写爬虫的时候,经常会遇到一个难题,就是反爬虫。反爬虫策略一般就是检测user-agent,IP等等信息,辨别是机...

  • 反反爬虫之js加密参数获取

    反爬虫与反反爬虫从爬虫诞生开始就已经存在,反爬策略层出不穷,反反爬也都应对有招。 就我目前碰到的反爬,从简单的us...

网友评论

  • d453c7afc434:随机有个问题, 如果对方不断的请求key, 但是不验证, 会对存储造成大量压力。

本文标题:反爬虫策略

本文链接:https://www.haomeiwen.com/subject/jaksuttx.html