推荐学习书目
› 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
kehr
V2EX  ›  Python

怎样检测上传到服务器代码的安全性?

  •  
  •   kehr ·
    kehr · Mar 20, 2014 · 5003 views
    This topic created in 4623 days ago, the information mentioned may be changed or developed.
    被人问到这个问题,就这么一句话,没有解释和说明,一时没有头绪。用Python怎样实现这一功能呢?

    如果你被问道这个问题,你会怎么回答呢?
    16 replies  •  1970-01-01 08:00:00 +08:00
    zzNucker
    zzNucker
    Mar 20, 2014
    1
    完全没懂。
    所谓安全离不开环境。
    loading
    loading
    Mar 20, 2014 via iPhone
    2
    是部署代码还是用户自己上传的?

    部署代码?听说过漏洞吧,谁都难以避免。
    用户上传?如果是python代码,为什么在服务器运行!

    #最小权限
    niseter
    niseter
    Mar 20, 2014
    3
    没法检测,一般只能看有无危险的函数,以及运行时的权限,最好的检测就是人肉(比如水果)
    halfbloodrock
    halfbloodrock
    Mar 20, 2014
    4
    对OS来说,部署入侵检测,比如ossec, AIDE等。监控这些代码是不是对OS做了不安全操作。
    ericls
    ericls
    Mar 20, 2014
    6
    用户上传代码干麽?
    不给执行权限?
    kehr
    kehr
    OP
    Mar 20, 2014
    7
    @zzNucker
    @loading
    @ericls

    按照提问人的意思,代码是用户上传的。我当时也没搞明白,既然是用户上传的,为什么要让他运行?就算能运行,难道要运行时检测么?这样的话每段正在运行的代码都要被监视,显然是不合理的。

    既然这样,简化一下问题。

    如何检测一段在服务器上运行的代码潜在的危害? Python解决。
    binux
    binux
    Mar 20, 2014
    8
    ast?检测它能访问什么接口?
    slixurd
    slixurd
    Mar 20, 2014
    9
    各种在线判题系统就是给用户上传的程序自动运行的...
    wy315700
    wy315700
    Mar 20, 2014
    10
    @slixurd 判题系统是通过ptrace监控系统调用来保证安全性的,
    除了标准输入输出以外的一切系统调用都是被禁止的
    oott123
    oott123
    Mar 20, 2014 via Android
    11
    用户上传的,进沙盒,完事了删掉?
    wwqgtxx
    wwqgtxx
    Mar 21, 2014 via Android
    12
    参考gse/sae/bae的逻辑用沙盒
    dndx
    dndx
    Mar 21, 2014
    13
    停机问题,在真正运行之前,你永远无法得知程序是否有害。

    在沙盒里无害并不代表在真实环境里也无害,除非你的运行环境就是沙盒。

    在这种情况下,人肉检查还是最靠谱的。
    jeansfish
    jeansfish
    Mar 21, 2014
    14
    看看各种oj?
    kehr
    kehr
    OP
    Mar 21, 2014
    15
    @dndx 「人肉检查」是人手工检查吧? 如果代码量非常大,除了沙盒,会有更好的解决方案么?

    @jeansfish OJ检测输入输出,运行时有严格的限制。
    clino
    clino
    Mar 21, 2014❤️1
    16
    刚在知乎上看到一个类似的问题: http://www.zhihu.com/question/23067497
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1178 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 50ms · UTC 17:25 · PVG 01:25 · LAX 09:25 · JFK 12:25
    ♥ Do have faith in what you're doing.