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地址的接口 传统防御方法是,每个...

django开发JWT登录功能流程梳理

django开发JWT登录功能流程梳理 jwt介绍 JWT登录功能,就是返回给用户JWT验证信息做token。后端验证用户信息的时候对信息解密,验证用户是否正确。 jwt分为三部分,header定义加密算法,payload是用户信息,signature是前两部分的base64字符串后再加密。三部分再base64中间用点号连接组成JWT jwt可以是对称加密也可以是非对称加密(私钥加密,公钥解密),秘钥要保存在服务器端不能泄露 登录流程 验证码表 用户表   JWTtoken生成 安装依赖库: https://github.com/jpadilla/django-rest-framework-jwt 注意上面项目其实已经不再维护,不过现在还可以用。如果更高版本的django可以考虑使用下面的库 https://github...

开发后端邮箱注册功能流程梳理

介绍 一开始学后端开发读写数据库容易,但是一到登录注册开发,复杂的流程搞得人望而生畏。 本文对注册流程开发做一个流程梳理的笔记 vue+django的前后端分离项目 所需数据表 验证码数据表   邮箱验证码表 用户表 注册功能流程图 ...

docker容器不用重新构建修改端口映射方法

介绍 docker使用有个限制,就是容器创建以后不能修改端口映射。要修改必须删除容器重新构建。 但是如果我的容器里想添加新的服务器,比如运行多个python程序,没有端口了怎么办呢。 如果习惯用docker做开发环境的话,应该肯定会遇到这个痛点。 本文介绍的方法使用图形界面来修改docker已有容器的端口映射,非常方便。 而且应该是比较原创的,网上搜的教程是没有的 本文定价20元 文章内容 输入密码查看加密内容:   ...

docker容器创建与镜像构建笔记

介绍 本文整理一下docker容器创建与镜像构建的常用命令,基本概念,可以做为速查笔记使用 docker run创建容器 # docker命令 docker run -it \ -p 6011-6050:6011-6050 \ -p 6010:22 \ --name py312all \ --restart always \ -v /home/uadmind/dockerserver/...

python的pip包下载加速与缓存

介绍 本文介绍pip怎么配置默认镜像源加速下载,以及pip的环境机制 默认镜像源配置 windows环境: C:\Users\用户\AppData\Roaming\pip 上面目录添加pip.ini文件 [global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple 然后pip install的时候查看下载的路径是不是清华源就行了。应该是改了立刻生效的 linux环境 在用户目录下新建.pip文件夹,然后创建pip.conf文件 写入下面内容: [global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple linux环境下编辑文件比较麻烦,给了一个python脚本来创建文件和写入 import os ...

django项目结合Vue的生产发布梳理

介绍 django的生产发布与开发环境还是很不一样,本文梳理一下生产发布具体有哪些配置。 statci静态资源收集 django中有很多app,自己建的或者第三方的。这些app都有自己的static目录。 开发的时候,当文件路径是/static的文件,django会去各个app的static目录下寻找有没有对应文件 但是生产的时候,需要执行collect命令,将各个app下的static目录下的文件复制到指定的STATIC_ROOT目录下,然后添加路由就是static路径就到STATIC_ROOT目录下寻找了 python manage.py collectstatic 下面的STATIC_ROOT路径有两种配置, 一种是移动到项目之外的文件夹,这等于说是让nginx来路由静态文件 一种是我这里写的移动到项目的www/static目录下 sett...

python开发桌面应用框架介绍

介绍 平时有些小功能想做成桌面软件方便使用, 有人推荐electron,但是与vue一起打包失败了 还有flutter,C#等,不是很熟练。 梳理一下比较熟悉的python有哪些框架可以用来开发桌面应用 常用框架介绍 上图是让chatgpt帮忙整理的常用的框架的特点 下面是自己尝试的理解 Tkinter:安装最方便,但是不支持原生的webview浏览器组件,与vue等前端结合比较困难就不考虑了 PyQt:不知此python3.12,目前支持的版本好像还是python3.9?也不考虑了 wxPython:相对靠谱,支持浏览器组件,也支持python3.12 非常用框架 别再用老wxPython了!wxPython浴火重生Phoenix项目:一个全新的wxPython实现,比以前更好、更强、更快 https://mp.weixin.qq.com/s/...

ssh和sftp工具介绍

介绍 之前一直使用xshell和xftp,但是总感觉不太好用。就整理了一下其他几款相关工具,也不是特别好用,就做个对比吧 electerm 官网 https://github.com/electerm/electerm/releases 这是我感觉最合适替代xshell的,主要是文件管理支持本地和远程,这个和xftp类似。但是弥补了xftp和xshell要同时开两个软件的问题。 缺点是感觉打开速度不够快 Tabby https://github.com/Eugeny/tabby/releases 中规中矩,做ssh终端还行,最大特点是可以直接编辑远端的文件,保存修改自动上传。 但是没有本地文件路径 Xterminal https://www.terminal.icu/ 优点是可以看服务器信息的监控,可以管理一些常用的命令保存在书签里 缺点是打开速...

pnpm使用介绍

介绍 一般前端项目使用npm做包管理,下载依赖包到项目node_modules文件夹下。 但是发现一个基础项目node_modules文件夹就有几百兆,每个项目都要下载一次,太占硬盘。 pnpm可以解决这个问题,它下载依赖的时候下载到全局文件夹,然后通过硬链接的方式关联到项目node_modules文件夹下。 但是具体配置还挺多的,网上教程也不够详细,这里总结一下配置和使用方法万一有写的不对,欢迎指正。 安装 npm install -g pnpm 先全局安装pnpm 然后打开下面文件,没有就创建 C:\Users\用户名\.npmrc registry=https://registry.npmmirror.com/ global-bin-dir=D:\greensoft\IDE\pnpm_modules_repo cache...
切换注册

登录

忘记密码 ?

切换登录

注册