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
ss098
V2EX  ›  Python

Python Web 应用如何解决安全问题?例如 XSS,注入之类的。

  •  
  •   ss098 ·
    ss098 · 2014-05-18 00:33:34 +08:00 · 7034 次点击
    这是一个创建于 3603 天前的主题,其中的信息可能已经有所发展或是发生改变。
    现在的应用正在使用 Tornado,试了一下接收数据,居然没有过滤。

    因为一直在使用 PHP 开发 Web,所以 Python Web 了解的比较少。

    Google 了好几圈没结果,应该怎么处理这些问题?
    18 条回复    2014-07-16 17:04:56 +08:00
    ericls
        1
    ericls  
       2014-05-18 00:46:39 +08:00
    应该有相应的库吧。。
    对应不同的使用环境
    比如bleach是一个基于白名单的html过滤器
    django flask对于表单都有csrf_token相关的东西
    tornado没用过
    数据库注入我倒是没怎关注过 我连sql都不会 全部交给django orm或者sqlalchemy了
    ipconfiger
        2
    ipconfiger  
       2014-05-18 00:59:41 +08:00
    请LZ仔细看文档,可以在文档内搜索csrf 相关内容
    davidli
        3
    davidli  
       2014-05-18 01:01:00 +08:00
    使用现成的framework
    补充楼上的, tornado 里是 xsrf_cookies
    SQL injection的话, 写SQL语句的时候只要不手动拼接string,而是使用现成的函数,就能避免了吧。
    binux
        4
    binux  
       2014-05-18 01:02:42 +08:00
    为什么要过滤?正确转义不就完了
    yakiang
        5
    yakiang  
       2014-05-18 01:04:50 +08:00
    yakiang
        6
    yakiang  
       2014-05-18 01:05:13 +08:00
    主要还是看官方文档吧
    binux
        7
    binux  
       2014-05-18 01:13:49 +08:00   ❤️ 2
    @yakiang 这文章写得好挫啊,居然手动转义html entity,一句话就搞定的事
    $('<div>').text('<a>').html()
    yakiang
        8
    yakiang  
       2014-05-18 01:59:40 +08:00
    @binux 之前没仔细看,刚看了一下,确实 →_→
    loading
        9
    loading  
       2014-05-18 09:58:19 +08:00 via Android
    flask说都封装好了,看文档就差不多
    kingxsp
        10
    kingxsp  
       2014-05-18 11:25:05 +08:00
    MarkupSafe 应该你想要的
    ss098
        11
    ss098  
    OP
       2014-05-18 11:28:22 +08:00
    @ericls
    @ipconfiger
    @davidli
    @binux
    @yakiang
    @loading
    @kingxsp

    感谢各位,详细搜索了一下(文档讲的真不清楚),tornado.escape.xhtml_escape 函数可以进行 HTML 转义。
    davepkxxx
        12
    davepkxxx  
       2014-05-18 14:24:28 +08:00
    davepkxxx
        13
    davepkxxx  
       2014-05-18 14:25:32 +08:00
    这是一个专门处理xss注入等安全问题的库,我在使用其Java版本的库,我发的连接是Python版本。
    davepkxxx
        14
    davepkxxx  
       2014-05-18 14:26:57 +08:00
    这个库还有专门的wiki来帮你分析可能遇到的安全问题。
    https://www.owasp.org/index.php/Main_Page
    mckelvin
        15
    mckelvin  
       2014-05-18 16:27:12 +08:00 via Android
    1. 渲染时用Mako一类的模板库可以避免大部分情况下的XSS, 图片URL这种地方还得显式防范下XSS。
    2. 不要拼接SQL字符串,用现成的SQL封装库。
    3. 更多漏洞超出了python语言范围
    wizardoz
        16
    wizardoz  
       2014-05-19 11:23:56 +08:00   ❤️ 1
    使用框架的数据库模型的话,一般不会存在注入的问题吧?
    ChanneW
        17
    ChanneW  
       2014-05-19 18:48:27 +08:00
    用框架,都有安全中间件的.
    zjnjxufe
        18
    zjnjxufe  
       2014-07-16 17:04:56 +08:00   ❤️ 1
    用sqlalchemy基本不会存在注入的问题。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   945 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 21:31 · PVG 05:31 · LAX 14:31 · JFK 17:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.