Google App Engine 安全脚手架 Python 2.7 项目教程
gae-secure-scaffold-python 项目地址: https://gitcode.com/gh_mirrors/ga/gae-secure-scaffold-python
1. 项目介绍
项目概述
gae-secure-scaffold-python
是一个为 Google App Engine 的 Python 2.7 运行时环境设计的开源项目。该项目提供了一个安全的脚手架,帮助开发者在其基础上构建安全的应用程序。请注意,这不是一个官方的 Google 产品。
主要功能
- 安全头设置:默认设置了一系列安全头,如
Strict-Transport-Security
、X-Frame-Options
、X-XSS-Protection
等,以防止跨站脚本攻击(XSS)和跨站请求伪造(CSRF)。 - 模板系统:强制使用 Django/Jinja2 模板系统,避免通过字符串拼接构建 HTML。
- XSRF 保护:默认对非 GET、HEAD 或 OPTIONS 请求进行 XSRF 令牌验证。
- API 修复:对一些使用不安全默认值的 API 进行修复。
项目结构
/
:顶级目录,包含通用文件,如app.yaml
。/js
:未编译的 JavaScript 资源。/src
:所有源代码。/static
:静态内容。/templates
:Django/Jinja2 模板。/templates/soy
:Closure Templates。
2. 项目快速启动
环境准备
确保你已经安装了以下软件:
node.js >= 0.8.0
git
curl
依赖设置
从项目的根目录执行以下命令:
git submodule init
git submodule update
cd closure-compiler
mvn -pl externs/pom.xml pom-main.xml pom-main-shaded.xml
cd ../closure-templates && mvn && cd ..
npm install
mkdir $HOME/bin
cd $HOME/bin
npm install grunt-cli
export PATH=$HOME/bin/node_modules/grunt-cli/bin:$PATH
本地开发
运行开发服务器:
grunt clean
grunt
grunt appengine:run:app
部署
部署到 App Engine:
grunt clean
grunt --appid=<appid>
grunt appengine:update:app --appid=<appid>
3. 应用案例和最佳实践
案例1:静态网站
使用
app.yaml
配置文件来服务一个静态网站,包括主页和所有静态资源。通过 HTTPS 和安全头来确保安全性。
案例2:多语言网站
配置一个根页面处理器,根据
Accept-Language
头将访问者重定向到
/intl/<code>
。
案例3:安全 Flask 应用
使用
securescaffold
创建一个具有安全默认值的 Flask 应用,并展示如何自定义和扩展应用以满足常见需求。
4. 典型生态项目
Closure 编译器
用于编译 JavaScript 资源,确保代码的安全性和性能。
Closure 模板
用于生成 HTML 模板,支持上下文自动转义,防止 XSS 攻击。
Flask
一个轻量级的 Python Web 框架,结合
securescaffold
可以构建安全的 Web 应用。
通过以上步骤,你可以快速上手并安全地开发基于 Google App Engine 的 Python 2.7 应用。
gae-secure-scaffold-python 项目地址: https://gitcode.com/gh_mirrors/ga/gae-secure-scaffold-python
版权归原作者 陈昊和 所有, 如有侵权,请联系我们删除。