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

2019-03-30 18:56:49 +08:00
 hangvane

项目有个在 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 编辑器,感觉白和脚本之家较劲了。

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

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

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

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/550320

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX