介绍
日志记录是非常实用的开发工具,之前学的教程里没介绍过,还是用chatgpt的时候它告诉我的。
用下来发现和android的log工具非常像,甚至更加好用。
logging在普通python程序中也可以使用,在django中则配置更加方便
本文也完全根据chatgpt教学整理成笔记完成
django中使用logging
下面是一个例子
#在setting文件中配置日志记录器格式
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'verbose': {
'format': '{lev...
django的自定义用户,自定义用户验证
介绍
django的自定义用户和自定义用户验证是常用操作,但是新手很容易搞迷糊
本文整理一下
自定义用户
# 先定义用户model
from django.contrib.auth.models import AbstractUser
class UserProfile(AbstractUser):
nick_name = models.CharField(max_length=50, verbose_name=u"昵称", default="")
birday = models.DateField(verbose_name=u"生日", null=True, blank=True)
gender = models.CharField(max_l...
django用QQ邮箱发送SMTP邮件踩坑笔记
介绍
django发送邮件是比较常见的需求,国内比较普遍使用的QQ的SMTP发送邮件服务
但是网上教程还是挺多坑,尝试半天终于成功了,这里记录一下
QQ邮箱配置
QQ邮箱设置里点击管理服务
生成授权码
点击查看配置SMTP和IMAP方法,其实下面讲不对
具体配置
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.qq.com'
EMAIL_PORT = 25 # 关键这个端口,必须写25,按官网的端口都没用
EMAIL_USE_TLS = False
EMAIL_HOST_USER = '' # 你的邮箱地址
EMAIL_HOST_PASSWORD = ...
开发后端找回密码功能流程梳理
介绍
之前文章介绍了注册和登录,本文梳理一下找回密码的流程
找回密码流程
...
JWT是否可以避免XSS攻击和CSRF攻击
JWT介绍
JWT是一种适合分布式的用户身份验证方式,特点是不同微服务可以独立验证用户身份,获取用户身份信息。
前端使用JS将JWT放在header中手动发送给服务端,服务端验证header中的JWT字段,而非cookie信息
XSS跨站脚本攻击
用户访问网页的时候,执行了源网站没有的JS脚本
比如
将js脚本添加的url地址后面
源服务器被黑客攻击,网页夹带了黑客的JS脚本
结论:
JWT无法避免XSS攻击,因为js脚本可以从store中获取用户的jwt令牌
CSRF攻击
用户在登录源网站的情况下,在不知情的情况下调用了目标网站的接口(带着cookie)
典型场景,比如伪造的网站B有一个图片src地址是源网站A的。
用户登录A网站的前提下,访问B网站,会在不知情的情况下自动带着A网站的cookie请求了B网站的src地址的接口
传统防御方法是,每个...