我的网站最近访问比较人多, 先感谢大家的支持.
我的网站是 http://tangu.nextbang.com, 被很多人盯上了, 这两天发现这个网站 http://www.izizhucan.com/tangulunjin.html 恶意iframe, 现在不知道怎么破了, 我运维经验不多, 求大家帮助.
1, 昨天在js 里面加上了 if (window !== top) { 判断. OK了.
2, 今天发现他又加强了, 整个下载了我的前端代码, 把上面的判断去掉了. 我去...
麻烦大家帮帮忙, 这种情况怎么破?? 其他的重js webapp 是怎么应付这种问题的?
1
kn007 2015-07-04 11:02:35 +08:00
js判断域名。
deny 对方ip |
2
plqws 2015-07-04 11:02:54 +08:00
数据来源是哪里?后端难道不是你自己的吗?
|
3
kn007 2015-07-04 11:03:59 +08:00
如果是直接下载的。那你就要把程序搞复杂点,比如数据请求需要走你服务器,服务器上加判断,非白名单不返回
|
4
TakanashiAzusa 2015-07-04 11:04:05 +08:00 via Android
同楼上。js判断域名。记得代码混淆
|
5
TakanashiAzusa 2015-07-04 11:06:17 +08:00 via Android
@kn007 有自己后台的话,一个跨域就可以搞死对面了吧。。
|
6
kn007 2015-07-04 11:11:22 +08:00
@TakanashiAzusa 哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈,这招太狠。。。
|
7
hr6r OP @kn007 nginx 的$host 都不行? 我有点弄不明白... 要在我的服务器端代码判断才行?
@TakanashiAzusa 跨域是指add_header X-Frame-Options SAMEORIGIN; 设置吗? 设置的但是无效, 非常奇怪, 不明白... |
8
loading 2015-07-04 11:19:19 +08:00 via Android
html 不都是你的吗?
写段js,不是自己域名就弹窗,放广告,想做什么坏事都行。 记得,自己在后台写开关,想起来就启动几分钟… |
9
RIcter 2015-07-04 11:20:36 +08:00 via iPhone 2
<script>document.write('Hacked by hr6r');</script>
|
10
hr6r OP 就是要改我后台的js 咯....
就是不想再加重后台的负担了.. |
11
virusdefender 2015-07-04 11:25:44 +08:00
X-Frame-Options
|
12
TakanashiAzusa 2015-07-04 11:27:15 +08:00 via Android
@hr6r nginx设置允许跨域的域名就好了,这样其他的就请求不到数据了。设置了无效的话有可能是你语法问题。。
|
13
mortal 2015-07-04 11:27:31 +08:00
LZ 的这个网站已经在微博上被人转发许多次了 : ) 说明大家喜欢,人一多自然就有攻击,LZ 加油哇。
|
15
hahasong 2015-07-04 11:31:36 +08:00 1
服务端响应头 ,这一项 Access-Control-Allow-Origin:* 去掉,或者写死你的域名 'nextbang.com'。
js 端强制声明一下 document.domain = 'nextbang.com' 并做代码压缩。 不过iframe嵌套这样做然并卵。还是检测下如果父窗口存在,就不停alert吧 |
16
TakanashiAzusa 2015-07-04 11:34:17 +08:00 via Android 1
@kn007 js还是可以被绕过去的。。毕竟是前端的东西,任人打扮。。
我这里指的是nginx配置里的Access-Control-Allow-Origin ,因为数据是通过ajax提交的,浏览器默认会检查服务器的crossdomain.xml,不在里面的话数据会发送失败的 |
17
MrEggNoodle 2015-07-04 11:35:09 +08:00
后台加上请求域名判断?
|
18
typcn 2015-07-04 11:36:05 +08:00
if(window.location.origin != "http://tangu.nextbang.com"){ window.location = "http://tangu.nextbang.com" }
混淆一下 eval(function(p,a,c,k,e,d){e=function(c){return c.toString(36)};if(!''.replace(/^/,String)){while(c--){d[c.toString(a)]=k[c]||c.toString(a)}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}('h 3=["\\6\\g\\8\\7\\8\\4","\\i\\6\\d\\9\\5\\8\\6\\4","\\j\\5\\5\\e\\f\\a\\a\\5\\9\\4\\7\\m\\c\\4\\k\\o\\5\\n\\9\\4\\7\\c\\d\\6\\p"];l(b[3[1]][3[0]]!=3[2]){b[3[1]]=3[2]};',26,26,'|||_0x49e0|x6E|x74|x6F|x67|x69|x61|x2F|window|x2E|x63|x70|x3A|x72|var|x6C|x68|x65|if|x75|x62|x78|x6D'.split('|'),0,{})) 楼主你可以放到 jquery.js socket-io.js 之类的文件里面 |
19
typcn 2015-07-04 11:37:08 +08:00
Socket.io 里面的 Access-Control-Allow-Origin:* 改成 Access-Control-Allow-Origin:http://tangu.nextbang.com
|
20
kn007 2015-07-04 11:37:51 +08:00
@TakanashiAzusa 嗯。我晓得。其实楼主比较需要的是把详细方案告诉他,他直接做就行了。23333
|
21
imlonghao 2015-07-04 11:46:30 +08:00
|
22
hr6r OP 搞定了, 请大家围观 -> http://www.izizhucan.com/tangulunjin.html
他把我的html和 js 都下载本地run 了, 真奇葩. 看看他还能搞出啥来. 把技术用在这.. 真是.... 唉... |
23
MountainRain 2015-07-04 11:51:20 +08:00
用JS判断
如果是自己的网页过来的应该咋地就是咋地 如果是别人iFrame的,alert提示,再跳转到你自己的页面啥。。或者显示点什么啥子的 |
24
ccbikai 2015-07-04 11:53:33 +08:00
|
26
imlonghao 2015-07-04 11:57:01 +08:00
他现在已经弹不了了~
|
27
lk09364 2015-07-04 11:57:05 +08:00
@TakanashiAzusa 请教一下,crossdomain.xml 不是 Flash 的吗?
|
28
TakanashiAzusa 2015-07-04 12:04:20 +08:00 via Android 1
@lk09364 那可能是我记错了。我只记得静态资源也会触发这个。待会儿我开电脑了的时候再研究下
|
29
Comdex 2015-07-04 12:24:19 +08:00
楼主你的网站的弹幕的评论只是在发表后出现一瞬间的么?不保存在数据库?
|
30
CRVV 2015-07-04 12:39:04 +08:00
上证指数3686.92元?
|
31
mrjoel 2015-07-04 12:48:16 +08:00
增加一个方法。。。直接禁了他服务器ip
看他有多少ip可换 |
32
mrjoel 2015-07-04 12:48:39 +08:00
额。。。iframe 。。。说错了
|
34
Air_Mu 2015-07-04 15:38:24 +08:00
建议人肉 全网扩散公布这婊子的信息
|
35
pythoner 2015-07-04 16:37:15 +08:00
刚刚还在网易上看到楼主的新闻,加油
|
36
Acirno 2015-07-04 17:16:41 +08:00
额 载入不了 咋回事
|
37
ddou 2015-07-04 17:34:23 +08:00
@virusdefender X-Frame-Options的确是解决iframe的正确方法。但直接下载整个前端的话,就只能另想奇招了。
|
38
SuujonH 2015-07-04 19:06:17 +08:00
403
|
39
TakanashiAzusa 2015-07-04 19:08:55 +08:00
@lk09364 刚刚试了下,ajax请求跨域的话,确实不需要crossdomain.xml,不过我发现不管是不是跨域,服务器都会返回一个200,我猜可能跨域的话服务器端的解析程序就直接断开连接了,然后浏览器提示跨域(不懂nginx,这个单纯猜测)
|
40
lk09364 2015-07-04 19:16:09 +08:00
@TakanashiAzusa 我估计是伺服器收到 AJAX 请求后回复时加上 Access-Control-Allow-Origin Header,交给浏览器判断当前页面是不是在 Access-Control-Allow-Origin 里。
|
41
Qapla 2015-07-04 19:24:38 +08:00
403
|
42
TakanashiAzusa 2015-07-04 19:42:45 +08:00 1
@lk09364 我又试了下,你说的是对的。默认不返回 Access-Control-Allow-Origin Header的话就是不允许跨域,但是可以跨域的域名服务器文件头会返回一个 Access-Control-Allow-Origin Header,然后浏览器做判断。
|
43
wheatcuican 2015-07-04 21:42:48 +08:00
一直载入中。。。
|
44
sciooga 2015-07-04 22:41:08 +08:00
那个网站挂出了楼主的链接,然后因为 referer 的问题...直接点击跳转就403了,楼主是不是考虑吸收掉他偷来的用户... |
46
chairuosen 2015-07-04 23:07:29 +08:00
我从V2点过去都是403的,应该数据接口加referer判断 首页html不加
|
48
des 2015-07-04 23:39:18 +08:00
估计对方下一步就是进行代理了……
|
49
Perry 2015-07-05 00:01:31 +08:00 via iPhone
有个问题 到底是 danmu 还是 tanmu。。
|
51
momou 2015-07-05 01:43:49 +08:00 via Android
楼主上知乎日报了…
|
52
limtao 2015-07-05 01:44:30 +08:00
刚来这没几天 居然发现你了!而且首页发现你的po居然还被顶上了...哈哈哈哈
等过段时间大家不忙的时候出来聊聊。 上个月在IBM刚刚做完一个银行的渗透性项目,你提到的iframe攻击在术语上叫做clickjacking, 解决方案google一下特别多。我当时用的 X-Frame-Options设置成deny或者same-origin。 你这个案例我发现个人开发者的时代要来临了。加油! 我这有不少ios的项目可能要转包,到时候聊聊。哈哈哈哈哈哈哈 |
53
yylzcom 2015-07-05 08:16:35 +08:00
“网站持续被空军攻击, 请大家收藏备用网址:
http://tangu2.nextbang.com” 不要脸的还真多,楼主,人家说你是做空力量,把你网址说成备用网址 你直接在页面上发一声明打他脸吧,我都看不下去了 另外又深刻地认识到“空军论”“阴谋论”受众的智商 |
54
nikubenki 2015-07-05 11:02:05 +08:00 via iPhone
玩儿蛋,目测以后弹幕网站会有越来越多人管这叫“檀木”了。
|
55
imlz 2015-07-05 15:27:42 +08:00
|
56
imlz 2015-07-05 15:30:19 +08:00
静态文件完全可以本地,我就借用一下你的站点,主要是数据飘的保护。测试请阅读完alert框后点“取消”
|
60
jugelizi 2015-07-06 13:11:18 +08:00
post才限制下来源吧
|
61
laiyingdong 2015-07-06 13:23:32 +08:00
我看了一下 这个网站的本站什么自助餐 其实完全是一个靠采集 垃圾广告 加盟广告 的垃圾网站 估计主要是靠站群广告盈利 你这个页面我也不知道怎么说了
|