V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
SlipStupig
V2EX  ›  Python

关于爬虫的安全问题

  •  
  •   SlipStupig · 2016-04-01 14:33:34 +08:00 · 3689 次点击
    这是一个创建于 2949 天前的主题,其中的信息可能已经有所发展或是发生改变。
    今天突然在思考一个问题,像 phantomjs 这种简单浏览器会有安全性问题,比如我在某个网站上放一段恶意 js ,然后呢 phantomjs 执行了这段 js ,那爬虫的机器是不是会遭到威胁啊
    第 1 条附言  ·  2016-04-03 10:03:43 +08:00
    我得想法是这样,爬虫机器在大规模抓取网站的时候,大家是否考虑过爬虫机器的安全性?
    目前我觉得可行攻击方案有几种:
    1.一些基础支持库漏洞,例如: lxml , request,webkit 这类
    2.循环重定向和载入大量数据流(现在几乎都可以控制,重定向次数和接受数据大小)
    3.内网发送恶意数据,例如:在路由器密码和 ip 固定的情况下可以去修改路由的 dns (还有很多其它方案)
    * 如果 webkit 支持 java 或 flash 的情况下可以做更多的事情
    10 条回复    2016-04-03 22:09:17 +08:00
    domty
        1
    domty  
       2016-04-01 15:00:06 +08:00
    恶意 js 是指什么?

    理论上 js 是浏览器的脚本语言,在浏览器没有提供相应 api 的情况下是没办法跳出浏览器的作用范围的。
    最狠的情况大概是不停的申请内存占用导致浏览器崩溃。

    当然我对信息安全领域的认知不深入,有安全方面的可以讲讲。
    julyclyde
        2
    julyclyde  
       2016-04-01 15:07:19 +08:00
    @domty 比如加载大量数据到本页,把 phantomjs 所在的程序给撑死了, OOM killer
    SlipStupig
        3
    SlipStupig  
    OP
       2016-04-02 02:48:00 +08:00
    @domty js 可以做的事情很多啊, dos 只是其中一部分,比如可以读取本地文件上传到指定的服务器啊这个只是一部分,对于 chrome 这些商业浏览器做了很多安全规则校验而 phantomjs 做这块就很粗糙了(具体在测试)
    还有更坏的远程执行代码,我之前发掘过 Foxmail < 7.0 的漏洞就是因为调用 webkit 对那个代码没有检测可以任意加载 js ,可以直接下载恶意软件并且执行,这个问题希望能引起重视
    julyclyde
        4
    julyclyde  
       2016-04-02 23:13:25 +08:00
    @SlipStupig 不能读取本地文件的吧。 js 引擎难道是他自己寨出来的?
    SlipStupig
        5
    SlipStupig  
    OP
       2016-04-03 00:42:48 +08:00
    @julyclyde 标准 Webkit 没过滤,通过 file://这个伪协议可以执行文件,需要一定条件触发, web 这块昨天尝试了一下,幸好 phantomjs 不支持 flash 也不支持 java ,还算安全,但是也会泄露一些内网的信息
    a132811
        6
    a132811  
       2016-04-03 08:29:35 +08:00
    @SlipStupig “ file://这个伪协议可以执行文件” 能直接读取?还能执行? 能否说下,什么条件触发呢?
    pierre1994
        7
    pierre1994  
       2016-04-03 08:54:22 +08:00 via Android
    有道理
    SlipStupig
        8
    SlipStupig  
    OP
       2016-04-03 10:05:08 +08:00
    @a132811 可以任意执行,前提是需要你的 webkit 支持 flash 或者 java 组件
    xlrtx
        9
    xlrtx  
       2016-04-03 22:00:47 +08:00
    最近在看的一个 bypass cloudflare ddos 验证的轮子, 里面用到了 javascript 引擎运算验证码.
    https://github.com/Anorov/cloudflare-scrape

    里面也提到了如果网站构造恶意 js 会导致不良后果, 比如死循环消耗资源等, **但是使用 PyV8 or Node 是不会有 shell 权限的**
    SlipStupig
        10
    SlipStupig  
    OP
       2016-04-03 22:09:17 +08:00
    @xlrtx DDOS 已经很普遍了,更重要的是 webkit 版本维护并不是那么勤快,出了问题恐怕没那么容易修复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2443 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 16:00 · PVG 00:00 · LAX 09:00 · JFK 12:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.