开发环境共55篇

HTTP条件下载实战:304复用与损坏响应下的缓存保护-97学习网

HTTP条件下载实战:304复用与损坏响应下的缓存保护

附真实本机HTTP实验与12项测试:核对ETag、304复用、资源更新和损坏缓存,先验证JSON再替换文件,明确报错与保留旧数据的边界。
玖柒的头像-97学习网玖柒6天前
10
SSH主机指纹变化:先核对服务器身份-97学习网

SSH主机指纹变化:先核对服务器身份

SSH提示主机身份发生变化时,既可能是服务器重装,也可能连接到了错误主机。先核对原因,再更新记录,比直接清空known_hosts更稳妥。
玖柒的头像-97学习网玖柒13天前
10
接口权限校验:隐藏按钮与对象归属-97学习网

接口权限校验:隐藏按钮与对象归属

页面不给普通用户显示编辑按钮,只是界面选择。真正的授权应在服务端核对当前身份能否操作目标对象,而不能仅凭请求中带了一个记录编号。
玖柒的头像-97学习网玖柒13天前
40
文件上传安全:后缀、类型与内容检查-97学习网

文件上传安全:后缀、类型与内容检查

图片上传入口接受一个以.jpg结尾的名称,并不能证明内容就是安全图片。上传防护应从业务允许什么开始,再把身份、内容、大小与存放位置一起检查。
玖柒的头像-97学习网玖柒13天前
40
网页更新后样式未变:浏览器与站点缓存-97学习网

网页更新后样式未变:浏览器与站点缓存

改了样式却看不到变化,不一定是代码没有保存。浏览器、CDN和网站程序都可能提供缓存,排查时应一次确认一层,避免反复清空所有设置。
玖柒的头像-97学习网玖柒13天前
20
Python代码计时:选择正确的时钟-97学习网

Python代码计时:选择正确的时钟

记录当前日期与测量经过多长时间,是两种不同用途。测量短代码段时,perf_counter提供适合比较时间差的计时值,不应把它直接格式化成日历时间。
玖柒的头像-97学习网玖柒13天前
40
HTTP 304与浏览器缓存:为何仍能显示内容-97学习网

HTTP 304与浏览器缓存:为何仍能显示内容

浏览器请求资源后收到304,不代表服务器返回了一个空白页面。它通常属于条件请求流程,告诉客户端已有缓存可以继续使用,而不再发送同一份响应正文。
玖柒的头像-97学习网玖柒13天前
50
Python subprocess:参数列表与命令字符串-97学习网

Python subprocess:参数列表与命令字符串

调用外部程序时,空格、引号与用户输入的边界很重要。使用参数列表并避免不必要的shell解释,可以让每个参数的含义更明确。
玖柒的头像-97学习网玖柒13天前
60
XSS防护:按输出上下文转义-97学习网

XSS防护:按输出上下文转义

同一段输入放进HTML正文、属性、URL或脚本时,浏览器会按不同规则理解它。输出防护需要知道数据将进入哪里,不能把一个通用替换函数用于所有位置。
玖柒的头像-97学习网玖柒13天前
20
SSRF防护:限制服务端请求的目标范围-97学习网

SSRF防护:限制服务端请求的目标范围

网址预览、远程图片导入等功能会让服务器主动发起请求。服务器所在网络可能拥有用户浏览器没有的访问能力,因此输入一个URL不等于可以请求任意目标。
玖柒的头像-97学习网玖柒13天前
50