Fastapi框架开发的python 后台API服务程序报错AttributeError: 'NoneType' object has no attribute 'read'
对一套pythonFastapi框架开发的python后台API服务进行压测,在SQL执行的python程序中出现了很多的报错。如下:AttributeError:'NoneType'objecthasnoattribute'read'AttributeError:'NoneType'objecthasnoattribute'settimeout'AttributeError:'NoneType'objecthasnoattribute'sendall'struct.error:unpack_fromrequiresabufferofatleast8 都是在site-packagespymysqlconnections.py文件中遇到的问题,经过几天的排查、思考最后发现是用户的请求进到python程序...[>>…]
Linux什么时候开始使用swap虚拟内存
某天看到服务器上的swap竟然有used数值,可一看服务器的内存free里还有不少呢,那Linux到底是什么时候开始使用swap虚拟内存?它是和一项系统配置相关的,/etc/sysctl.conf配置文件中的vm.swappiness这行。也可以直接使用命令cat/proc/sys/vm/swappiness查看。其默认值是60。即代表服务器的物理内存使用剩余60%时就开始使用swap,swappiness=0的时候表示最大限度使用物理内存,然后才启用swap空间,swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面...[>>…]
网站扫描出的漏洞解决:检测到目标Content-Security-Policy响应头缺失
漏洞1:检测到目标Content-Security-Policy响应头缺失ContentSecurityPolicy(CSP)通过告诉浏览器一系列规则,严格规定页面中哪些资源允许有哪些来源,不在指定范围内的统统拒绝,可以服务器添加Content-Security-Policy头信息来指定规则解决。upgrade-insecure-requests;connect-src*会使安全进行升级,即一个http页面中所有调用的静态资源会自动升级使用https调用。但这样也会产生很多问题,如果调用的资源实际并不支持https的话,这时如果不是线上环境可以不理会,线上环境使用https就没有这样的问题了。在测试环境...[>>…]
亚马逊S3在跨区域调用时出现IllegalLocationConstraintException错误
之前使用亚马逊S3进行文件上传后,在python代码中使用boto3来调用S3提取预签名URl地址。代码如下:client_s3=boto3.client( aws_access_key_id='XXX', aws_secret_access_key='XXX')url=client_s3.generate_presigned_url( ClientMethod='get_object', Params={ 'Bucket':'BUCKET_NAME', 'Key':'CORRECT_KEY' },ExpiresIn=86400)但在使用中发现,可以正常下载目前S3上的一个桶中的文件,然而在下载其它桶的时...[>>…]
Nginx漏洞X-XSS-Protection/Content-Security-Policy响应头缺失等处理
使用一些漏洞扫描工具对服务器进行搜查,总得扫出一些漏洞,比如检测到目标X-...响应头缺失之类的,扫描后报了不少头漏洞问题,之前碰到过也进行了一些修复,主要是在nginx的配置中添加一些配置,见: http://04007.cn/article/1141.html这次又遇到一些,在这里补充一下这次碰到的漏洞问题及解决办法:1.检测到目标X-XSS-Protection响应头缺失HTTPX-XSS-Protection响应头是InternetExplorer,Chrome和Safari的一个特性,当检测到跨站脚本攻击(XSS)时,浏览器将停止加载页面。X-XSS-Protection响应头的缺失使得目...[>>…]
Linux中快捷获取文件完整路径的readlink命令
平常需要得到某个文件的完整路径时,我总是使用pwd查看下当前目录位置,然后复制这个目录位置再复制文件名来取得完整路径,一想有没有比较快的方法一下列出某个文件的完整路径,这样复制一次就可以了。readlink就可以实现我所说的这个问题。readlink是Linux系统中一个常用工具,本身是用来找出符号链接所指向的位置。常用选项如下:-f递归跟随给出文件名的所有符号链接以标准化,除最后一个外所有组件必须存在-e递归跟随给出文件名的所有符号链接以标准化,所有组件都必须存在-n不输出尾随的新行-s缩减大多数的错误消...[>>…]
Docker Swarm容器编排工具的使用体验
DockerSwarm是Docker官方的容器编排工具,它能使用户可以轻松地管理Docker集群。其和Mesos,Kubernetes具有相同的功能,DockerSwarm是Docker的本机集群和编排解决方案,能自动管理容器,自动处理服务的调度和负载均衡,无需手动配置,它包含在DockerEngine中,所以在安装Docker后,就已经有了DockerSwarm。以下是运行DockerSwarm模式的步骤:安装好Docker之后就可以使用,启用DockerSwarm模式: #initdockerswarm时如果存在多个IP就会报错,需要指定IP。--advertise-addrstring初始化一个新的...[>>…]
通过远程主机访问和管理docker
docker是C/S架构构成的,当我们使用dockerversion,可以看到是由客户端和服务端构成。Client:Version: 20.10.2Server: Engine: Version: 20.10.2 默认情况下docker没有打开服务端,其使用的是sock的软件方式api与后端的containerd通讯。需要对docker的systemdservice文件进行修改后方可启动服务器端。找到docker.service文件,在其docker的启动命令中添加如下参数,表示让客户端与服务端分开,让服务端监听主机的...[>>…]
使用Python中的passlib模块实现Django框架中的用户账号密码处理
有一套服务端系统使用的是Django框架开发的,其账号密码也使用的是Django框架原生的账号体系处理,然后我需要在另一套非Django框架的程序中去校验用户的账号密码,在Django中使用的是PBKDF2(Password-BasedKeyDerivationFunction2)加密算法,使用的时候直接调用。 fromdjango.contrib.auth.hashersimportmake_password password='123456' #通过原始密码串直接获得散列密码串 hashed_password=make_password(password) 开始我在原生的python代码块中使用pbkdf2_sha...[>>…]
docker镜像导入导出的两种方法save和load
docker镜像可以使用save和load这套命令进行处理,也可以使用export和import这套命令进行处理。但是其是有所区别的,且两种方法不可混用。即save导出的镜像不能通过import导入。1,文件大小不同使用export导出的镜像文件体积小于save保存的镜像,但也不会差别很大(当然也和你对镜你进行的修改程度相关)。我这里对镜像也安装了不少东西,但一个1.14G,一个1.12G。2,是否可以对镜像重命名dockerimport可以为镜像指定新名称dockerload不能对载入的镜像重命名3,是否可以同时将多个镜像打包到一个文件中dockerexport不支...[>>…]