为Flask应用程序添加安全功能,以防止某些基本威胁。

Flask-Mitten的Python项目详细描述


什么是长颈连指手套?

为Flask应用程序添加安全功能,以防止某些基本威胁。

功能

烧瓶手套支持烧瓶应用,以防止以下威胁。

  • 单击顶进
  • CSRF
  • 通过抓取横幅进行信息披露
  • JSON劫持
  • 会话固定

它捆绑了以下烧瓶扩展的功能。

更多细节,请参见实现。

用法

安装

使用以下命令安装扩展:

pip install Flask-Mitten

配置

将扩展应用于您的应用程序:

from flaskext.mitten import Mitten
app = Flask(__name__)
mitten = Mitten(app)

请求头被重写以防止点击劫持和信息泄漏。

如果您想设置自己的横幅,可以这样做:

mitten.banner = "My Nice Banner!"

防止会话固定

登录后,调用会话对象的重新生成方法:

session.regenerate()

会话id将重新生成,并防止会话固定。

要放弃会话,请调用销毁方法:

session.destroy()

防止csrf

若要嵌入CSRF令牌,请在模板中添加以下行:

<input type="hidden" name="_csrf_token" value="{{ csrf_token() }}" />

POST请求会自动受到CSRF保护。

如果要从csrf保护中排除路由,请使用csrf免除装饰符:

@mitten.csrf_exempt
@app.route('/public_api/', methods=['POST'])
def public_api():
    return "result", 200

防止json劫持

如果发送json响应,可以使用json修饰符来避免json劫持或通过直接浏览呈现json响应:

@mitten.json
@app.route('/json_api/')
def json_api():
    return jsonify(result='success')

更多

有关更多详细信息,请参见示例应用程序。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在一个问题被连续正确回答三次/并添加差异后,我如何将程序循环回开始   Java中未实例化的匿名类   java如何在Android中录制视频,只允许横向模式和最长时间录制时间   java从另一个活动发送实时消息   多线程java线程和互斥   java禁用Spring安全日志   JAVA伊奥。StreamCorruptedException:在与子级和父级ProcessBuilder通信时写入子级中的标准输出时,流头无效   使用Java(HttpURLConnection)对Restheart进行身份验证(对于Mongodb)   java如何解决Jenkins中的SAXParseException?   java为什么我需要mockito来测试Spring应用程序?   计算sin-cos和tan时缺乏精度(java)   java Hibernate。不同项目中相同一对一映射的不同行为   java图像滑块:如何使用JavaFX将图像放在另一个图像上   java Mockito在使用when时抛出NotAMockException   http Java servlet发送回响应