V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hangvane
V2EX  ›  程序员

分享一个有意思的事儿,脚本之家的反盗网页措施

  •  
  •   hangvane · 2019-03-30 18:56:49 +08:00 · 4763 次点击
    这是一个创建于 2063 天前的主题,其中的信息可能已经有所发展或是发生改变。

    项目有个在 Web 展示 XML 的需求,一通 baidu 无果,转变思路搜索在线 XML 格式化工具,找到了脚本之家

    http://tools.jb51.net/code/xmlcodeformat

    这个看上去不错,想到臭名昭著的脚本之家一系列行径,我想直接 copy 它的源码也就没多少罪恶感了,然而直接 copy 源码运行后一直跳转到它的网站

    http://tools.jb51.net/

    搜索了半天没找到关键字 tools,接下来就是漫长的尝试...

    经过了挺长时间的无奈尝试,最终终于用 firefox network 的堆栈追踪功能定位到了两个文件。在对比文件差异性发现页首的 jquery.min.js 和页尾的 bootstrap.min.js 最后一行和官方版本不同,多了些代码

    eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('l f="j"+"d"+"e."+"9"+"2"+"1."+"c"+"g";l i=h = m.a.4;7(i.8(f)<0){	a.5="6"+"k"+":/"+"/j"+"d"+"e."+"9"+"2"+"1."+"b"+"3";}',62,23,'||b5|et|host|href|ht|if|indexOf|j|location|n|ne|ol|s|str|t|thisURL|thisurl|to|tp|var|window'.split('|'),0,{}))
    

    看到 href location windows 我差不多懂了,就是这个了。看到混淆成这样的代码,我终于知道为什么我搜 tools 关键字搜不到了

    把 eval 改成 alert 运行下看看

    var str = "to" + "ol" + "s." + "j" + "b5" + "1." + "ne" + "t";
    var thisurl = thisURL = window.location.host;
    if (thisurl.indexOf(str) < 0) {
        location.href = "ht" + "tp" + ":/" + "/to" + "ol" + "s." + "j" + "b5" + "1." + "n" + "et";   
    }
    

    的确是很狡猾了

    跑起来后发现没什么脚本之家的原创内容,完全用的一个叫 CodeMirror 的 Web 编辑器,感觉白和脚本之家较劲了。

    不过这个反盗网页的方法是够恶心的,一般没耐心又没太多经验的人估计会放弃了,有需求的同学可以试试这个方法。

    28 条回复    2019-03-31 12:02:31 +08:00
    dimlau
        1
    dimlau  
       2019-03-30 19:15:09 +08:00   ❤️ 2
    ???
    是想表达这个意思吗:
    1、你 copy 他的没有罪恶感;
    2、他的代码里有防止你 copy 的段落所以很恶心。
    arrow8899
        2
    arrow8899  
       2019-03-30 19:20:21 +08:00   ❤️ 1
    js 混淆都这么做的吧,不知道哪里恶心了
    而且开源的 json xml 工具一大堆,为什么要花这么多时间去抠别人的代码???
    donething
        3
    donething  
       2019-03-30 19:25:41 +08:00
    @dimlau 不,楼主在炫耀自己的反反爬能力
    wangsongyan
        4
    wangsongyan  
       2019-03-30 19:26:41 +08:00 via iPhone
    我觉得搞笑的是下载资源需要关注公众号获取提取码,取关后即使重新关注也不能再获取提取码了,如果想再次正常获取需要付费 10 元。
    hangvane
        5
    hangvane  
    OP
       2019-03-30 19:27:30 +08:00
    @dimlau 没有罪恶感的原因:脚本之家从互联网大量未经授权抓取各种教程并打上自己水印、下载需要关注它的公众号否则无法下载资源、如果曾取关公众号,之后再次关注也无法获取下载链接
    Abbeyok
        6
    Abbeyok  
       2019-03-30 19:28:10 +08:00 via Android
    借楼发个帖子,不知道为什么我的帖子被下沉: https://www.v2ex.com/t/550323#reply1
    hangvane
        7
    hangvane  
    OP
       2019-03-30 19:29:37 +08:00
    @arrow8899 恶心的是这种方法让一般玩家摸不到头脑,费了很大劲才发现原来跳转在这里,而且页首页尾的 js 如果不同时处理掉,只处理掉一个的话不会有任何变化,并不是什么贬义词,这不是最后还推荐有需求的同学尝试下这个方法吗?
    CallMeReznov
        8
    CallMeReznov  
       2019-03-30 19:29:58 +08:00
    楼主在炫技罢了

    此时此刻只要回复:🐮🍺
    即可
    hangvane
        9
    hangvane  
    OP
       2019-03-30 19:32:55 +08:00
    @arrow8899 所以最后说了发现没有什么原创内容,完全用的一个叫 CodeMirror 的编辑器,这个是我一开始没想到的,因为你直接 baidu “ json Web 可视化工具”会有一些结果,但是 baidu “ xml Web 可视化工具”则完全没什么有用结果,让我最初以为没有什么好用的开源插件,而且最初也不会想到 copy 脚本之家的代码这么费劲
    hangvane
        10
    hangvane  
    OP
       2019-03-30 19:36:20 +08:00
    @donething @CallMeReznov 显然并没涉及到什么高端操作,只是纯粹的耗费时间和精力挨个找而已,分享出来是为了 1 让有类似 copy 代码需求的同学少走弯路 2 让有类似反 copy 代码需求的同学借鉴思路,怎么就这么酸了?
    defunct9
        11
    defunct9  
       2019-03-30 19:39:26 +08:00 via iPhone
    🐂🍺
    lihongjie0209
        12
    lihongjie0209  
       2019-03-30 19:41:42 +08:00
    一通 baidu 无果 从开头就错了
    hangvane
        13
    hangvane  
    OP
       2019-03-30 19:50:50 +08:00
    @lihongjie0209 请指教哪里错了,一开始我并没有想用 XML 编辑器,只是想找个和 JSON.stringify() 类似的 XML 格式化工具,请问具体的正确做法应该如何?如果是 github 或者 google 应该搜什么关键词?
    leewlab
        14
    leewlab  
       2019-03-30 20:25:07 +08:00 via Android   ❤️ 1
    @hangvane 杠精多,淡定,赞你一个
    xy2401
        15
    xy2401  
       2019-03-30 20:26:15 +08:00
    js 是可以原生解析 xml 的。至于格式话应该是可以。有空我找找
    我以为是不能拷贝网页内容。原来是你'偷'别人 js 啊
    Yourshell
        16
    Yourshell  
       2019-03-30 20:34:32 +08:00
    web 展示 xml 源码不是转义就行了吗?
    qqor
        17
    qqor  
       2019-03-30 20:46:14 +08:00 via Android
    代码请写的自己看得懂就行了,活带来死带走,也为晚辈留口饭吃
    hangvane
        18
    hangvane  
    OP
       2019-03-30 20:47:20 +08:00
    @Yourshell 原 xml 是没有缩进的

    <notification xmlns="urn:ietf:params:xml:ns:netconf:notification:1.0"><eventTime>2007-07-08T00:10:00Z</eventTime><event xmlns="http://example.com/event/1.0"><eventClass>state</eventClass><reportingEntity><card>Ethernet0</card></reportingEntity><operState>enabled</operState></event></notification>

    因为需要让客户在网页上看所以起码要缩进一下,差不多搞成这样

    <notification xmlns="urn:ietf:params:xml:ns:netconf:notification:1.0">
    <eventTime>2007-07-08T00:10:00Z</eventTime>
    <event xmlns="http://example.com/event/1.0">
    <eventClass>state</eventClass>
    <reportingEntity>
    <card>Ethernet0</card>
    </reportingEntity>
    <operState>enabled</operState>
    </event>
    </notification>
    hangvane
        19
    hangvane  
    OP
       2019-03-30 20:48:05 +08:00
    @Yourshell 就是有换行和缩进啥的,v2 这里回复不了缩进
    lihongjie0209
        20
    lihongjie0209  
       2019-03-30 20:49:31 +08:00
    hangvane
        21
    hangvane  
    OP
       2019-03-30 20:56:48 +08:00
    @lihongjie0209 可以的,看来是我关键词有问题,尝试了下 baidu 搜索 js xml formatter 也有些有效结果
    i0error
        22
    i0error  
       2019-03-30 22:06:16 +08:00
    winglight2016
        23
    winglight2016  
       2019-03-30 22:45:38 +08:00
    @hangvane #20 良苦用心给你推荐 Google,可是你还在想着百毒,可叹媚眼抛给瞎子了。。。
    CEBBCAT
        24
    CEBBCAT  
       2019-03-30 23:06:13 +08:00 via Android   ❤️ 3
    楼主挺好的,虽说他 copy 别人代码严重维权,但也没在这个帖子里鼓吹侵权,只是分享了一下有个办法对扒站的人相当恶心,还推荐给大家了

    这不是共产主义还能是啥?
    AlisaDestiny
        25
    AlisaDestiny  
       2019-03-30 23:19:16 +08:00
    随手就给你找了个开源的库,为什么要去 copy 别人的网站。
    https://github.com/vkiryukhin/pretty-data
    jousca
        26
    jousca  
       2019-03-30 23:21:55 +08:00
    @hangvane 你如果上来就 Google,就不用花心思研究这么久反扒了……
    hangvane
        27
    hangvane  
    OP
       2019-03-31 10:58:17 +08:00
    @winglight2016
    @jousca
    没搜到主要还是我关键词的问题,我应该更好的使用英文关键词来搜索。baidu 和 google 的话个人感觉在中文关键词搜索上差别不大
    id7368
        28
    id7368  
       2019-03-31 12:02:31 +08:00
    这货习惯性各种 copy 了,都用油猴脚本屏蔽这货的搜索结果
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5619 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 02:57 · PVG 10:57 · LAX 18:57 · JFK 21:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.