作者归档:asaka

LeanCloud 层层加固云端数据安全性之剖析

程序代码中的一个逻辑 bug 可能会引发数据错误、界面显示错乱,甚至是程序崩溃。作为开发者,谁摊上这事都恨不能赶紧修掉 bug,万不可拖到使用者们义愤填膺地来砸招牌。

可如果是一个数据安全性的问题呢?使用者还是能正常使用程序,没人知道这个问题的存在或隐患,包括开发者自己。直到某天使用者们突然收到很多骚扰邮件,他们在应用中的数据被人恶意篡改,甚至所绑定的信用卡信息也被窃取……此刻,开发者才幡然悔悟——数据安全性问题可不像之前提到的那类 bug 那样容易搞定,即使堵上了漏洞,使用者的信息也还是泄露了出去,被篡改的信息没那么容易恢复,经济上的损失更是难以估算。

LeanCloud 作为一个将各项服务的 API 直接开放给客户端,并拥有数以万计开发者和海量应用的 BaaS 服务,势必要提供针对数据安全的各种保障机制。但更重要的是,只有开发者们了解并掌握了这些数据安全机制的用法,才能根据实际需求来有效地为应用数据加上防护措施。

继续阅读

新版 LeanCloud 命令行工具开始公测

leancli3

今天我们高兴地宣布新版命令行工具的公测正式开始了!命令行工具为开发者在本地启动、调试以及部署云引擎应用提供便捷的操作。相对于旧版而言,它使用 Go 语言进行了重写,功能得到增强,安装过程更加简化,同时不再支持 旧版云引擎 2.0 运行环境

assertgo_5122云引擎最初只支持 Node.js 运行环境,使用者都需要预先安装好 Node.js。但随着云引擎的功能迭代,PythonPHPJava 这些编程语言的运行环境已经得到了支持,如果命令行工具仍然依赖 Node.js 和 npm 安装途径,对于非 Node.js 的开发者来说就有些麻烦了。于是我们使用 Go 语言 重写了命令行工具,并将其编译为可执行文件,这样使用者就不再需要安装 Node.js 了。

另外,我们对旧版命令行工具的逻辑进行了部分重构,变动较大的部分是鉴权机制。旧版的鉴权基于应用,使用者在调试和部署每个应用时要输入对应的 app key 等信息。而新版基于用户,使用者只需要在第一次使用时输入 LeanCloud 用户名和密码登录即可,在以后的使用中命令行工具会根据该账户的权限自动从 LeanCloud 服务器获取所需的应用信息。

新版命令行工具已经完成了旧版的绝大部分功能,可满足常用的功能操作,目前新版缺失的主要功能有:

继续阅读

在 Python 3 环境中使用 LeanCloud

Python-SDK

LeanCloud Python SDK 发布了新版本 1.6.0,增加了对 Python 3 的支持,并且向前兼容 Python 2 的代码。目前开发者可以在这两个环境中使用 LeanCloud 来构建应用。新版 Python SDK 的开发与测试主要在 Python 3.5 下进行,因此希望使用 Python 3 的开发者建议选择 Python 3.5。

另外云引擎 LeanEngine 也支持运行于 Python 3 的应用。开发者需要在项目的根目录下创建一个 runtime.txt,内容为 python-3.5 ,然后使用命令行工具或者在 LeanCloud 控制台进行项目部署,即可将代码运行在 Python 3.5 中。

不过在此之前,请依据以下升级和兼容性检查的提示来确认项目代码和所依赖的第三方模块已经完全兼容 Python 3。

继续阅读

LeanEngine 中使用 WebSocket

一直以来 HTTP 协议都是使用「请求/响应」的模型,在 Web 应用越来越复杂的今天,这种模型的限制越来越明显。

很多场景下,我们想要服务器主动发送通知给浏览器,甚至我们想在浏览器中实现一个实时对战的网络游戏。这个时候 HTML5 规范中的 WebSocket 可以很好地满足我们的需求。

对于使用 LeanEngine 的用户,我们也可以直接在 LeanEngine 环境中使用 WebSocket,来构建应用了。下面我们以 LeanEngine NodeJS 运行时环境为例,实现一个 WebSocket echo server(echo server 是指返回任何接收到信息的服务)。

继续阅读

ReactNative 中使用 LeanCloud

最近移动应用开发领域,最令人振奋的就是 ReactNative 的发布了吧。ReactNative 有如下几个特点:

  • 使用 Web 开发中常用的技术,比如逻辑使用 JavaScript 来实现,界面描述使用一个 CSS 的子集,使用 flexlayout 进行布局。
  • 整个应用依然是 Native 的,JavaScript 只是跑在一个独立的线程中,利用 React 的 Virtual DOM 机制,将界面渲染成 Native 控件。
  • 可以使用 Chrome 开发者工具进行在线调试,甚至支持 LiveReload。
  • 未来会兼容多个平台(目前仅支持 iOS)。

继续阅读

「人生苦短,我用 Python」LeanCloud Python SDK 1.0.0 正式发布

以往在服务端环境中基于 LeanCloud 进行开发,只能选择使用 JavaScript-SDK,或者直接使用 RESTful API 来进行开发。现在我们正式发布了 LeanCloud Python SDK,您可以使用 Python 语言来进行项目开发。

目前 LeanCloud Python SDK 只支持 Python 2.x,请确保您的环境满足需求。我们推荐您使用 pip 或者 easy_install 来安装 Python SDK,只要执行:

pip install leancloud-sdk

或者

easy_install leancloud-sdk

即可进行安装。根据您的操作系统环境不同,您可能需要在上述命令之前加上 sudo 。

安装结束后,我们就可以进行开发了。打开 Python 交互式解释器,输入 import leancloud ,就可以进行下一步开发了。接下来我们需要做的是使用 Application Id 与 Application Key 对应用进行初始化:

import leancloud

leancloud.init('your application id', 'your application key')

之后假设我们想实现一个简易的博客系统的话,我们需要有如下两个用于存储的 class:Post, Comment。我们可以直接使用 leancloud.Object.extend 方法来创建 class,或者直接从 leancloud.Object 继承一个子类,这样就可以创建与 LeanCloud 数据存储对应的 Class 了:

import leancloud
from leancloud import Object
from leancloud import LeanCloudError

Post = Object.extend('Post')

# 然后可以直接像一个正常 Python 类一样使用 Post 和 Comment 来创建对象了
my_post = Post(title="Hello LeanBlog!", content="Life is short, use Python!")

# 除了在创建对象的时候进行初始化数据之外,我们还可以使用 set 方法来对对象进行赋值
my_post.set('title', 'First Blog on LeanBlog')

# 我们可以使用 get 方法来获取 Object 对象上的值
my_post.get('content')  # => "Life is short, use Python!"

# 我们可以直接调用 save 方法来将对象保存到 LeanCloud 服务器上(不需要回调函数,吔!)
try:
    my_post.save()
except LeanCloudError:
    do_something_to_handle_error()

同样的方式,我们可以创建一个 Comment 对象,填充数据,并且将一个 Post 作为一对多的关系添加进来:

Comment = Object.extend('Comment')

my_comment = Comment()
my_comment.set('content', 'Hello World!')
my_comment.set('post', my_post)
try:
    my_comment.save()
except LeanCloudError:
    do_something_to_handle_error()

使用 leancloud.Query 可以从 LeanCloud 上查询已经存在的数据:

from leancloud import Query

# 构造一个 Query 对象
query = Query(Post)
# 调用 find 方法,即可获取最多一百条的 Post
posts = query.find()
for post in posts:
    show_post(post)

# 另外我们还可以直接使用字符串来构造 Query 对象
query = Query('Comment')
# 直接根据 id 来查询 Comment
query.get(comment_id)

大概的介绍就到这里,详细文档可以参考 这里API doc。您可以使用任意自己喜欢的 Python Web 开发框架来配合 LeanCloud Python SDK 来进行开发。另外 LeanCloud 云代码也即将支持 Python 运行环境,到时候您就可以直接将您的代码部署到我们的服务器上来了。

另外如果您使用上遇到任何问题,可以直接在 github 上开源的仓库 中提交 issue,或者在我们的 工单系统 上反馈问题。