求助 - 网站被恶意 iFrame, 怎么破? (弹股论斤 - 当股票遇上弹幕)

2015-07-04 10:53:37 +08:00
 hr6r

我的网站最近访问比较人多, 先感谢大家的支持.

我的网站是 http://tangu.nextbang.com, 被很多人盯上了, 这两天发现这个网站 http://www.izizhucan.com/tangulunjin.html 恶意iframe, 现在不知道怎么破了, 我运维经验不多, 求大家帮助.

1, 昨天在js 里面加上了 if (window !== top) { 判断. OK了.

2, 今天发现他又加强了, 整个下载了我的前端代码, 把上面的判断去掉了. 我去...

麻烦大家帮帮忙, 这种情况怎么破?? 其他的重js webapp 是怎么应付这种问题的?

7796 次点击
所在节点    程序员
61 条回复
kn007
2015-07-04 11:02:35 +08:00
js判断域名。
deny 对方ip
plqws
2015-07-04 11:02:54 +08:00
数据来源是哪里?后端难道不是你自己的吗?
kn007
2015-07-04 11:03:59 +08:00
如果是直接下载的。那你就要把程序搞复杂点,比如数据请求需要走你服务器,服务器上加判断,非白名单不返回
TakanashiAzusa
2015-07-04 11:04:05 +08:00
同楼上。js判断域名。记得代码混淆
TakanashiAzusa
2015-07-04 11:06:17 +08:00
@kn007 有自己后台的话,一个跨域就可以搞死对面了吧。。
kn007
2015-07-04 11:11:22 +08:00
@TakanashiAzusa 哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈,这招太狠。。。
hr6r
2015-07-04 11:17:27 +08:00
@kn007 nginx 的$host 都不行? 我有点弄不明白... 要在我的服务器端代码判断才行?
@TakanashiAzusa 跨域是指add_header X-Frame-Options SAMEORIGIN; 设置吗? 设置的但是无效, 非常奇怪, 不明白...
loading
2015-07-04 11:19:19 +08:00
html 不都是你的吗?
写段js,不是自己域名就弹窗,放广告,想做什么坏事都行。

记得,自己在后台写开关,想起来就启动几分钟…
RIcter
2015-07-04 11:20:36 +08:00
<script>document.write('Hacked by hr6r');</script>
hr6r
2015-07-04 11:23:17 +08:00
就是要改我后台的js 咯....
就是不想再加重后台的负担了..
virusdefender
2015-07-04 11:25:44 +08:00
X-Frame-Options
TakanashiAzusa
2015-07-04 11:27:15 +08:00
@hr6r nginx设置允许跨域的域名就好了,这样其他的就请求不到数据了。设置了无效的话有可能是你语法问题。。
mortal
2015-07-04 11:27:31 +08:00
LZ 的这个网站已经在微博上被人转发许多次了 : ) 说明大家喜欢,人一多自然就有攻击,LZ 加油哇。
kn007
2015-07-04 11:29:01 +08:00
@hr6r nginx是valid_referers。
但是最好还是js判断域名。
跨域是指XSS。
hahasong
2015-07-04 11:31:36 +08:00
服务端响应头 ,这一项 Access-Control-Allow-Origin:* 去掉,或者写死你的域名 'nextbang.com'。
js 端强制声明一下 document.domain = 'nextbang.com' 并做代码压缩。
不过iframe嵌套这样做然并卵。还是检测下如果父窗口存在,就不停alert吧
TakanashiAzusa
2015-07-04 11:34:17 +08:00
@kn007 js还是可以被绕过去的。。毕竟是前端的东西,任人打扮。。
我这里指的是nginx配置里的Access-Control-Allow-Origin ,因为数据是通过ajax提交的,浏览器默认会检查服务器的crossdomain.xml,不在里面的话数据会发送失败的
MrEggNoodle
2015-07-04 11:35:09 +08:00
后台加上请求域名判断?
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 之类的文件里面
typcn
2015-07-04 11:37:08 +08:00
Socket.io 里面的 Access-Control-Allow-Origin:* 改成 Access-Control-Allow-Origin:http://tangu.nextbang.com
kn007
2015-07-04 11:37:51 +08:00
@TakanashiAzusa 嗯。我晓得。其实楼主比较需要的是把详细方案告诉他,他直接做就行了。23333

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

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

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

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

© 2021 V2EX