Minos社区,一个基于Tornado/Mongodb/Redis的简约社区系统。
简单:去除传统社区中多数不常用到的功能,保留精华。(这里向 http://zone.wooyun.org 学习)
高效:
mongodb:数据库设计合理,以空间换取时间,尽量减少数据库查询次数。
异步:tornado+motor全异步库,增加web高并发访问效率
redis:抛弃php中以文件形式保存session的做法,以redis内存数据库保存session,增加速度。
安全:
CSP:全站默认开启CSP,以新一代的前端安全策略防御前端安全问题(包括XSS/CSRF/Clickjacking等)。
Secure by default原则:使用默认的安全机制,所有业务逻辑问题为安全让步。不符合安全的业务都没有被加入Minos。tornado框架及其安全理念对Minos的安全有突出贡献。
注入漏洞:tornado不允许嵌套解析,用户通过GET/POST传入的参数只是字符串,不会成为list或dict,所以正常情况下不会造成mongodb的注入。
文件上传:python将不会去解析用户上传的任何文件。另外Minos在用户上传时仍然会检查后缀,为防止XSS。
XSS漏洞:Tornado框架原则上所有输出在模板里的变量都会经过“HTML实体化”,包括单引号,一般情况下不会存在XSS漏洞。另外,社区帖子内容为富文本,将经过富文本过滤器Python-XSS-Filter( https://github.com/phith0n/python-xss-filter )过滤并输出。
CSRF漏洞:Tornado框架在开启xsrf_cookies后,所有POST表单如果没有Token将不会被接受。Minos默认开启xsrf_cookies,并且所有增删改查操作均通过POST进行。
密码存储:Minos中,用户密码使用bcrypt库计算哈希后存入数据库,加密方法类似Wordpress,不能被简单破译。
稳定:不允许一个warning。Minos已在debian上稳定运行多日。
响应式:框架AmazeUI是一个mobile first的前端框架,对于各种屏幕的适应性都很好,加上我在手机屏幕大小的情况下隐藏了很多不必要的功能,所以在手机端也能愉快地看文章啦~
1、tornado是什么 tornado是一个python编写的强大的可扩展的web服务器,它采用非阻塞的socket,可以高性能处理大并发长连接场景下的web应用。 2、tornado如何部署 tornado在 linux系统中天然支持。并且在python2.6以上的版本中,tornado代码都包含在python标准库中,在使用tornado时,除了python标准库之外,不需要安装任何其它额外
1.http://demo.pythoner.com/itt2zh/index.html 获取常用功能 2.http://www.tornadoweb.org/en/stable/guide.html 终极完整
如果web开发这块写一个web框架,很多时候都要用到Decorator(如果不是太清楚python的Decorator可以去找找资料看看,非常有用),例如下面的代码: class MainHandler(BaseHandler): @tornado.web.authenticated def get(self): name = tornado.escape.xhtm
简单的tornado: 一: # tornado的基础web框架模块 # tornado核心io循环模块,封装了linux的epoll和kqueue,是tornado高效的基础 import tornado.web import tornado.ioloo # 类似于django中的视图 class AAA(tornado.web.RequestHandler): # 处理get请求
1、torndb数据库简介 在Tornado3.0版本以前提供tornado.database模块用来操作MySQL数据库,而从3.0版本开始,此模块就被独立出来,作为torndb包单独提供。torndb只是对MySQLdb的简单封装,不支持Python 3。 2、torndb安装 pip install torndb 3、连接初始化 class Applicatin(tornado.web.ap
tornado安全: 普通cookie: ### 普通cookie # 设置cookie class PcookieHandler(tornado.web.RequestHandler): def get(self, *args, **kwargs): self.set_cookie(name="name", value="shao") self.write
主要模块 web - FriendFeed 使用的基础 Web 框架,包含了 Tornado 的大多数重要的功能 escape - XHTML, JSON, URL 的编码/解码方法 database - 对 MySQLdb 的简单封装,使其更容易使用 template - 基于 Python 的 web 模板系统 httpclient - 非阻塞式 HTTP 客户端,它被设计用来和 web 及
Tornado 是 FriendFeed 使用的可扩展的非阻塞式 web 服务器及其相关工具的开源版本。这个 Web 框架看起来有些像 web.py 或者 Google 的 webapp,不过为了能有效利用非阻塞式服务器环境,这个 Web 框架还包含了一些相关的有用工具 和优化。 Tornado 和现在的主流 Web 服务器框架(包括大多数 Python 的框架)有着明显的区别:它是非阻塞式服务器
Tornado模块分类 1. Core web framework tornado.web — 包含web框架的大部分主要功能,包含RequestHandler和Application两个重要的类 tornado.httpserver — 一个无阻塞HTTP服务器的实现 tornado.template — 模版系统 tornado.escape — HTML,JSON,URLs等的编码解码和一些
3.1 Application settings 我们在创建tornado.web.Appliction 的对象时,传入第一个参数–路由映射列表。实际上Application 类的构造函数还接收很多关于tornado web应用的配置参数 先来学习一个参数: debug , 设置tornado 是否工作在调试模式。默认为false即工作在生产模式 当设置debug=True后 torndo 为方便
Tornado是web框架兼web应用框架。 1.作为web框架,是一个轻量级的web框架,拥有异步非阻塞IO处理方式。 2.作为web服务器,有较出色的负载能力。 HTTP服务器 异步编程 WebSockets 一、安装Tornado pip install tornado 二、Tornado代码 文件test01.py,代码内容: # co
Play Community 是一个基于 Play Framework 开发的社区系统,宗旨是提供一套知识学习的闭环系统。系统主要分为学习,问答,交流和搜索四个板块。 学习板块 社区的维护者可以在学习板块维护一系列电子书,供初学者系统化地学习基础知识。 问答板块 初学者在学习过程中遇到问题可以到问答板块提问,社区维护者或成员及时解答。 交流板块 中高级成员可以交流板块分享一些学习或实战经验。 搜索
Minos 是小米公司开发的一个分布式的发布和监控系统。最初是小米开发的用来在 Hadoop 和 ZooKeeper 集群上发布和管理的工具。Minos 可轻松扩展来支持其他的系统,目前已经支持包括 HDFS、YARN 和 Impala 。
联系我们 Nacos Gitter-https://gitter.im/alibaba/nacos Nacos 微博-https://weibo.com/u/6574374908 Nacos segmentfault-https://segmentfault.com/t/nacos 邮件列表 邮件列表建议讨论任何与Nacos有关的事情。具体请看参考手册描述如何订阅我们的邮件列表。 dev-naco
关于 MOSN 社区。 MOSN 是一个开源项目,于 2018 年 7 月由蚂蚁集团开源,使用 Apache 2.0 协议,任何人都可以使用和参与改进。MOSN 社区期待您的加入! 关于 MOSN 社区的详细资料请访问 Community 仓库。 工作组 目前 MOSN 包含以下工作组: Istio 工作组 Dubbo 工作组 选择加入您感兴趣的工作组,开始您的 MOSN 之旅吧! 社区会议 MO
PHP 社区多元化并且规模庞大,成员们也乐意并随时准备好帮助新人。你可以考虑加入当地的 PHP 使用者社区 (PUG) 或者参加教大型的 PHP 会议,从中学习更多最佳实践。你也可以使用 IRC 逛逛 irc.freenode.com 上的 #phpc 频道,也可以关注 @phpc 的Twitter 账号。试着去多结交一些新的开发者,学习新的东西,总之,交一些新朋友!其他的社区资源包含 Googl
198.决定 功能分支 功能分支很容易制作。你不必成为一个提交者。只需要在开发人员的邮件列表中将您的分支名称添加到 JIRA,并且提交者将为您添加它。此后,您可以针对 Apache HBase JIRA 中的功能分支提出问题。您保存在其他地方的代码 - 它应该是公共的,以便可以观察到 - 并且您可以根据进度更新开发邮件列表。当该功能准备好提交时,来自提交者的 3 + 1 将使您的功能合并。参见 H