Flask的奥秘二
2020-07-14 05:46
253 查看
一、flask中的session
首先我们了解一下session和cookie
- session被用于记录用户的状态,它是运行在服务器端的,根据session id来获取用户的状态
- cookie用于记录用户信息的,运行在客户端,与session有一定的关系,session id就是从cookie中获取的,如果用户禁止使用cookie,那么session也会无法使用,除非是手动传递session id
在flask中,session的本质是一个字典
flask中如何使用session来记录用户的数据呢?
- 导入session,并要设置配置文件(下一个小节讲)
from flask import session app = Flask(__name__) # 这个是为了确保安全性的,可以设置任意值 app.secret_key = ''
- 使用session
# 存入信息(字典添加元素的方法) session['key'] = value # 取出信息 data = session.get("key")
二、配置flask的方法
这里只说几种常用的方法
实例化一个Flask对象为app
1、直接调对象的属性来设置值
app.secret_key = " "
2、调用app的config属性来设置值
app.config[“secret_key”] = " "
3、根据py文件来设置值
app.config.from_pyfile(“文件路径”)
setting.py中代码:
SECRET_KEY = '123456'
4、根据类来设置值
app.config.from_object(“文件名.类名”)
setting.py中代码:
class config(object): SECRET_KEY = '123456'
- …
配置参数的默认值:
{ 'DEBUG': get_debug_flag(default=False), 是否开启Debug模式 'TESTING': False, 是否开启测试模式 'PROPAGATE_EXCEPTIONS': None, 'PRESERVE_CONTEXT_ON_EXCEPTION': None, 'SECRET_KEY': None, 'PERMANENT_SESSION_LIFETIME': timedelta(days=31), 'USE_X_SENDFILE': False, 'LOGGER_NAME': None, 'LOGGER_HANDLER_POLICY': 'always', 'SERVER_NAME': None, 'APPLICATION_ROOT': None, 'SESSION_COOKIE_NAME': 'session', 'SESSION_COOKIE_DOMAIN': None, 'SESSION_COOKIE_PATH': None, 'SESSION_COOKIE_HTTPONLY': True, 'SESSION_COOKIE_SECURE': False, 'SESSION_REFRESH_EACH_REQUEST': True, 'MAX_CONTENT_LENGTH': None, 'SEND_FILE_MAX_AGE_DEFAULT': timedelta(hours=12), 'TRAP_BAD_REQUEST_ERRORS': False, 'TRAP_HTTP_EXCEPTIONS': False, 'EXPLAIN_TEMPLATE_LOADING': False, 'PREFERRED_URL_SCHEME': 'http', 'JSON_AS_ASCII': True, 'JSON_SORT_KEYS': True, 'JSONIFY_PRETTYPRINT_REGULAR': True, 'JSONIFY_MIMETYPE': 'application/json', 'TEMPLATES_AUTO_RELOAD': None, }
三、模板
1、flask使用的是jinja2模板,所以与django的使用方法相似,就是当要调用函数的时候,flask需要括号,而django不需要
2、在前端可以使用管道safe防止xss攻击,在后端可以使用Markup函数防止xss攻击
前端如:{{f()|safe}}
后端如:
def fun(): return Markup("<h1>hahaha</h1>") @app.route('/') def index(): return render_template('model.html', f=fun) # 传递一个函数
XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。
ps:不行了,不行了,太困了,睡觉了.
相关文章推荐
- Flask的奥秘五
- Flask的奥秘四
- Flask的奥秘三
- flask笔记(2)
- flask 单元测试
- Flask+Nginx+Gunicorn+Redis+Mysql搭建一个小站
- Dec-21th-Flask-note
- 白帽学院靶场之编辑器的奥秘(一)
- 2018最新网易云课堂Python Flask框架全栈开发
- python web开发 之 flask教程(二)
- 网易云课堂Python Flask框架全栈开发(200课全)
- windows 7 下安装eclipse,python,pydev,flask步骤
- Flask01
- Flask 安装和配置(RedHat环境)
- flask中的蓝图实现模块化的应用
- Flask 多文件基本结构
- Ubuntu 14.04 配置 Nginx + uWSGI 托管 virtualenv 下 Flask 应用的一点注意事项
- Flask入门(五)~request模块的属性及上下文
- 【翻译】使用nginx作为反向代理服务器,uWSGI作为应用服务器来部署flask应用
- python—Flask学习3------输出"Hello World"