自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

番茄鸡蛋的专栏

while(alive){Strive();}

  • 博客(159)
  • 资源 (2)
  • 收藏
  • 关注

原创 安全属性标志详解:HTTPOnly

HTTPOnly Cookie 安全属性详解 HTTPOnly 是 Cookie 的重要安全属性,用于防止 JavaScript 访问敏感 Cookie 数据,从而有效防御 XSS 攻击。当设置 HTTPOnly 标志后,浏览器会禁止通过 document.cookie 读取该 Cookie,但仍会随 HTTP 请求自动发送到服务器。 主要特点: 服务器通过 Set-Cookie 响应头设置 HTTPOnly 标志 兼容所有主流浏览器(Chrome、Firefox、Safari等) 必须与 Secure 标

2026-04-08 17:58:19 93

原创 ValidationError: The ‘X-Forwarded-For‘ header is set but the Express ‘trust proxy‘ setting is false

(如 Nginx、Cloudflare、负载均衡器等),它在请求头中设置了。,但是 Express 没有配置信任代理,导致。解决方案是在 Express 应用中添加。总而言之,错误是因为服务器前面有。无法正确识别用户 IP。

2026-03-26 16:11:11 361

原创 将web服务绑定在 1024 以下的端口上

摘要:在Alibaba Cloud Linux系统中,当Node.js应用尝试绑定443端口时会出现权限错误,因为1024以下端口需要root权限。解决方案包括:1) 使用sudo运行(需注意PATH环境变量问题);2) 改用非特权端口并通过Nginx反向代理;3) 授予Node.js绑定特权端口的能力(最推荐);4) 为用户提权。其中方案3使用setcap命令仅授予特定能力,既满足需求又保障安全性。另外,配合Nginx使用非特权端口是更灵活安全的替代方案。

2026-03-21 18:05:38 398

原创 在JavaScript / HTML中,监听鼠标滚动事件

本文介绍了网页制作中监听鼠标滚动的两种方法:scroll事件用于监听页面或元素的滚动位置变化,适用于懒加载、吸顶效果等;wheel事件用于监听鼠标滚轮操作,可获取滚动方向和力度。文章详细说明了两种事件的基本用法、性能优化技巧(如节流处理)以及注意事项,并对比了它们的适用场景。现代浏览器推荐使用wheel事件,而scroll事件需注意高频触发带来的性能问题。

2026-03-18 23:37:27 457

原创 在HTML & CSS中,user-select属性详解

摘要: CSS的user-select属性控制用户能否选中文本,常用值包括none(禁止选中)、text(允许选中)和all(全选内容)。需配合浏览器前缀(如-webkit-user-select)保证兼容性。适用场景: 推荐开启:文章、代码、表单等需复制的内容。 建议关闭:按钮、滑块等交互元素,避免误操作。 注意事项: 不影响JavaScript编辑内容; 移动端需结合-webkit-touch-callout禁用长按菜单; 优先使用标准语法,保留前缀兼容旧浏览器。 最佳实践:默认全局允许选中,仅对特定U

2026-03-18 23:35:05 523

原创 安装node.js

本文记录了在Alibaba Cloud Linux 3.2104 LTS系统上安装Node.js v24.14.0(LTS)的过程。首先使用curl安装nvm(Node版本管理工具),完成后重启系统使环境变量生效。然后通过nvm安装指定版本的Node.js,最后验证Node.js和npm的版本号(v24.14.0和v11.9.0),确认安装成功。整个过程包含下载安装、环境配置和版本验证三个主要步骤。

2026-03-13 20:50:08 136

原创 通过certbot安装SSL证书

本文记录了在Alibaba Cloud Linux 3系统上安装Certbot并获取SSL证书的过程。首先尝试添加EPEL仓库时出现冲突报错,原因是系统已存在阿里云兼容的epel包。随后直接安装Certbot成功完成。获取证书时使用standalone模式,需输入邮箱地址、同意服务条款等交互信息。最终证书保存在/etc/letsencrypt/live目录下,有效期为90天,并自动设置续期任务。文中还提示了可能出现的端口占用等特殊情况。

2026-03-13 18:15:42 82

原创 在HTML & CSS中,将字体也放入网站

摘要:当用户电脑缺少网站设计字体时,浏览器会默认显示宋体或Arial等字体,影响视觉效果。解决方案包括:1)使用@font-face托管Web字体(推荐WOFF2/WOFF格式);2)引用Google Fonts等在线服务;3)定义跨平台系统字体栈;4)用图标字体替代。需注意字体版权、性能优化(如子集化、font-display: swap)和格式兼容性。示例展示了如何通过CSS加载自定义字体并设置备用字体链。(150字)

2026-03-13 09:57:40 351

原创 在CSP中,比“self”更安全的方案:nonce 、 hash、strict-dynamic

摘要 CSP(内容安全策略)提供了两种精确控制内联脚本/样式的方法:nonce和hash。nonce通过一次性随机值匹配HTTP头与脚本标签,确保只有合法脚本执行;hash则通过计算脚本内容的哈希值进行匹配,适合静态内联脚本。此外,strict-dynamic指令可与nonce配合,允许已信任脚本动态加载的其他脚本自动被信任,避免依赖域名白名单。实际配置需注意随机数生成、哈希计算及动态渲染的性能影响,优先使用nonce/hash而非unsafe-inline,并谨慎处理样式表等特殊情况。

2026-03-12 13:58:16 422

原创 在CSP中,为什么连“self”都视为不安全?

摘要: CSP中单独使用'self'可能不足以保证安全,因其无法防御同源下的用户上传恶意文件、JSONP滥用或反射型XSS攻击。建议组合使用nonce/hash控制内联脚本、启用strict-dynamic信任链机制,并对第三方脚本启用SRI校验。高安全场景可完全依赖nonce替代域名白名单。'self'本身安全,但需结合分层防护策略(如HTTPS强制、沙箱隔离)构建纵深防御。实际配置需根据网站是否含UGC、第三方依赖等调整,例如静态站点用'self'足够,动态内容需引入nonce。(149字) 关键点:

2026-03-12 12:30:04 334

原创 在JavaScript中,使用对象数组、对象(字典)保存数据的区别

本文对比了JavaScript中存储产品数据的两种方式:数组和对象(字典)。数组适合顺序遍历和列表展示,但查找效率低(O(n));对象则提供快速查找(O(1))和更优内存使用,但遍历稍慢。实际应用中可根据场景选择:频繁查找用对象,列表操作用数组,或结合两者优势采用复合结构。数据量较小时差异可忽略,大项目建议根据读写比例、顺序需求等综合考量。

2026-03-12 11:31:44 303

原创 在JavaScript / HTML中,判断指定的元素是否含有某个类

JavaScript 判断元素是否包含类名的常用方法:推荐使用 classList.contains() 方法,简洁可靠;兼容老浏览器可用正则表达式 /\bactive\b/.test(className);也可用 matches() 方法。避免直接使用 indexOf 以防误判。

2026-03-10 22:14:28 98

原创 在JavaScript / HTML中,获取指定元素的父元素

摘要:JavaScript获取元素父节点主要使用parentNode和parentElement属性。parentNode返回任意类型的父节点,parentElement仅返回元素节点。根节点的parentNode返回document,parentElement返回null。文本/注释节点只能通过parentNode获取父元素。查找特定祖先元素可使用closest()方法。这些方法为DOM操作提供了灵活的父子节点访问能力。

2026-03-10 22:01:21 108

原创 增强HTTPS的安全性

本文介绍了如何增强Node.js HTTPS服务器的安全性配置。通过指定安全密码套件(ECDHE/DHE系列)、启用前向保密(配置ECDH曲线)、限制TLS版本(1.2-1.3)以及优先使用强加密算法(honorCipherOrder)等措施,显著提升了TLS/SSL连接的安全性。示例代码展示了基础HTTPS服务器与增强安全配置的对比,重点移除了RSA密钥交换,确保完全前向保密,为Web应用提供更强大的加密保护。

2026-03-10 16:05:38 331

原创 在JavaScript / Node.js中,package.json文件中的依赖项自动选择最新版安装

本文介绍了package.json中依赖版本管理的几种方式。当前配置使用caret(^)范围(如"^4.18.2"),允许自动获取向后兼容的更新。虽然可以使用"latest"标签或"*"通配符自动选择最新版本,但不推荐这种做法,因为这可能导致版本不一致、破坏性更新和可复现性问题。建议保持caret模式,定期运行npm update获取兼容更新,使用npm outdated检查新版本,需要大版本升级时再手动修改package.json。这种平衡方式既

2026-03-07 23:44:09 100

原创 在JavaScript中,在函数内部定义函数

摘要:JavaScript支持在函数内定义嵌套函数(内部函数),这些内部函数可通过闭包访问外部函数的变量,但外部函数无法访问内部变量。嵌套函数常用于封装私有逻辑、创建闭包和模块化代码,其作用域仅限于外部函数内,除非通过返回值暴露。例如内部函数可访问外部变量,但外部无法直接调用内部函数。

2026-03-05 16:28:22 36

原创 在JavaScript / HTML中,事件委托和普通绑定事件的区别

事件委托与普通事件绑定的核心区别在于监听目标和处理方式。事件委托将监听器绑定到父元素,利用事件冒泡统一处理子元素事件,相比普通绑定具有三大优势:1)减少内存占用,避免为每个子元素单独绑定;2)自动支持动态添加的元素,无需重新绑定;3)逻辑集中便于维护。虽然需要判断目标元素,但这种轻微复杂度远小于其带来的性能和管理优势,特别适合处理大量或动态元素场景。

2026-03-05 10:42:47 94

原创 在c#中,在windows 7 sp1中阻止窗口关闭

摘要:本文介绍了在Windows 7 SP1环境下使用C#阻止窗口关闭的三种方法。推荐处理FormClosing事件,通过设置e.Cancel=true实现条件性阻止;拦截系统关闭消息可实现更彻底的阻止;禁用关闭按钮最简单但会移除所有控制按钮。文章详细说明了每种方法的实现代码和适用场景,并强调需区分FormClosing与FormClosed事件,前者可用于取消关闭,后者仅能执行清理工作。

2026-02-28 21:30:26 593

原创 在HTML & CSS中,nth-child、nth-of-type详解

CSS伪类选择器:nth-child和:nth-of-type详解 :nth-child()和:nth-of-type()是CSS中常用的伪类选择器,用于精准选择特定位置的子元素。nth-child根据元素在父容器中的所有子元素中的位置进行选择,支持数字、关键字(odd/even)和公式(an+b)三种参数形式,常用于表格隔行变色、列表特殊样式等场景。nth-of-type则只考虑同类型元素的位置,更适合混合元素类型的情况。两者关键区别在于:nth-child计算所有子元素,而nth-of-type仅计算同

2026-02-25 11:50:20 734

原创 在JavaScript中,slice使用详解

JavaScript 的 slice() 方法用于提取数组或字符串的部分内容,返回新对象且不修改原对象。它支持正负索引,提取范围为 [start,end)。对于数组,slice() 是浅拷贝,仅复制基本类型值或对象引用,修改新数组中的对象会影响原数组。字符串的 slice() 用法类似。与 splice() 不同,slice() 不会改变原数据。如需深拷贝对象数组,可使用 JSON.parse(JSON.stringify()) 或 structuredClone() 等方法。

2026-02-25 09:33:15 610

原创 在HTML & CSS中,如何计算CSS特异性

CSS特异性决定了样式规则的优先级,其计算方法基于四元组(a,b,c,d),分别对应内联样式、ID选择器、类/伪类选择器和元素选择器的数量。通过案例对比,如header .title nav div(0,0,1,3)比.header_title_products_item(0,0,1,0)优先级更高,展示了特异性从左到右逐位比较的规则。提高特异性的方法包括添加更具体的选择器路径、使用ID选择器或!important声明,但应避免过度嵌套和滥用!important。理解特异性机制有助于有效解决样式冲突问题。

2026-02-24 15:10:39 611

原创 在JavaScript中,函数的可选参数

摘要:JavaScript支持通过多种方式实现函数可选参数:1) ES6默认参数语法直接为形参赋默认值;2) ES5通过检查undefined手动设置默认值;3) 使用arguments对象处理参数;4) 剩余参数(...)收集不定数量参数。所有参数本质上都是可选的,未传值会变为undefined。推荐使用ES6默认参数语法,因其简洁且只在参数为undefined时生效,而不影响null等假值。这些方法使JavaScript函数参数处理非常灵活。

2026-02-23 10:22:22 53

原创 在HTML & CSS中,CSS选中第二个指定类型的子元素的方法

摘要:要选中HTML中第二个img元素,可通过CSS选择器实现。推荐使用img:nth-of-type(2),它只计算img元素,不受其他子元素影响。也可用img:nth-child(2)或相邻兄弟选择器img + img。nth-of-type方法最健壮,能准确选择特定位置的同类型元素。(98字)

2026-02-23 10:20:25 137

原创 在HTML & CSS中,图片嵌入文字方法

本文介绍了网页制作中实现图片嵌入文字的5种方法:1)将图片作为行内元素直接插入文本;2)使用float属性实现文字环绕;3)通过CSS Shapes实现不规则形状环绕;4)将图片设为文字背景;5)利用background-clip实现图片填充文字效果。每种方法都提供了代码示例,适用于不同设计场景,从简单图标到艺术标题均可实现。开发者可根据具体需求选择合适的方法或组合使用。

2026-02-23 10:16:06 696

原创 在JavaScript / HTML中,img标签loading lazy加载时机详解

简单来说,你可以把“这张图不急,等用户快看到它时再加载,而且加载时别影响页面整体加载完成的时机。

2026-02-23 10:13:18 439

原创 在JavaScript / HTML中,数组查找第一个符合要求元素

JavaScript数组的find()方法可以快速查找第一个符合条件的元素,语法简洁高效。该方法遍历数组,对每个元素执行回调函数,返回第一个使回调返回true的元素值,未找到则返回undefined。示例展示了查找第一个大于10或偶数的元素。相比手动循环实现,find()更简洁,且找到匹配项后立即停止遍历。类似方法有findIndex()返回索引、filter()返回所有匹配项。注意find()是ES6特性,旧环境需polyfill支持。

2026-02-19 14:03:18 127

原创 在JavaScript / HTML中,模板克隆并添加监听的注意事项

摘要:在网页开发中,可以在克隆<template>内容后先为节点添加事件监听,再插入DOM。这种做法完全有效,因为事件监听绑定在节点对象上,与DOM连接状态无关。需要注意区分操作的是模板内容(template.content)还是模板本身,且事件委托需在父容器存在时绑定。这种方式有助于提前准备交互逻辑,使代码更清晰易维护。

2026-02-19 13:43:26 312

原创 在HTML & CSS中,Animation 属性使用详解

CSS Animation 属性详解:本文全面介绍了CSS动画的实现方法,包括@keyframes规则定义动画序列和animation属性应用动画。详细讲解了8个子属性:动画名称、时长、时间函数、延迟、迭代次数、方向、填充模式和播放状态,并提供了简写语法。通过多个示例展示了如何创建弹跳、颜色变化、旋转和卡片入场等动画效果,包括如何设置延迟和暂停动画。文章最后提供了一个综合示例,展示了如何同时应用多个动画效果。

2026-02-19 00:47:50 471

原创 在HTML & CSS中,letter-spacing详解

摘要:本文探讨HTML中使用letter-spacing时固定单位(如px)的问题:小字体间距过大,大字体间距过小。推荐使用相对单位em,使间距随字体大小自动缩放。文章提供CSS代码示例,说明注意事项(如继承行为),对比固定与相对间距效果,并指出em是最佳解决方案。通过em单位可确保字间距始终保持视觉比例协调。

2026-02-19 00:46:29 437

原创 在c#中,string.replace会替换所有满足条件的子字符串,如何只替换一次

摘要:本文介绍了在C#中仅替换字符串中第一个匹配项的6种方法。主要解决方案包括:1) 使用Regex.Replace并指定替换次数;2) 自定义扩展方法实现单次替换;3) 使用StringBuilder优化性能;4) 利用C# 8.0的Span<T>特性;5) 基于Substring和StringComparison实现;6) 通用扩展方法支持多种替换策略。这些方法均提供了代码示例,可满足不同场景下仅替换首个匹配项的需求,同时支持区分大小写等高级功能。

2026-02-19 00:26:33 99 1

原创 在c#中,如何在字符串的第x个字符位置插入字符

本文介绍了在C#字符串指定位置插入字符的6种方法:1)使用String.Insert()方法;2)Substring()拼接;3)StringBuilder;4)字符数组处理;5)Span<T>高性能方案;6)LINQ方法。其中String.Insert()最为简洁,StringBuilder适合多次插入,Span<T>性能最佳。文章还提供了扩展方法实现、多插入点处理方案和性能比较,推荐根据需求选择合适方法,并强调了索引范围验证和性能注意事项。最佳实践建议简单插入使用String.I

2026-02-18 00:43:07 170

原创 在c#中,如何删除字符串中的第x个字符

摘要:本文介绍了C#中删除字符串指定位置字符的5种方法:1)使用String.Remove()方法(最简洁);2)Substring拼接;3)StringBuilder(适合多次修改);4)字符数组处理;5)LINQ方法。文章提供了完整示例代码和注意事项,包括索引范围检查、性能考虑和边界情况处理。推荐使用String.Remove()作为首选方法,因其简洁高效。同时给出了扩展方法和安全处理函数,便于实际应用。

2026-02-18 00:42:17 251

原创 在HTML & CSS中,display属性使用详解

CSS display属性详解:控制元素布局的核心属性,包括块级(block)、内联(inline)、内联块(inline-block)和无显示(none)等基本值,以及现代布局系统flex和grid。文章通过代码示例展示了不同display值的应用场景和特性,如块级元素独占一行、内联元素不换行、flex弹性布局和grid网格布局等。还介绍了表格相关的display值,并提供了完整的display值参考表,帮助开发者根据需求选择合适的布局方式。

2026-02-18 00:41:04 291

原创 在HTML & CSS中,可能导致父元素无法根据子元素的尺寸自动调整大小的情况

摘要: CSS中width/height: auto失效的常见原因包括:子元素绝对定位脱离文档流、浮动导致高度塌陷、display属性限制、Flex/Grid容器影响、盒模型计算等。解决方案需针对不同场景,如清除浮动(overflow:hidden/clearfix)、调整布局方式(Flex/Grid)、使用inline-block或fit-content等。调试时可通过开发者工具检查计算样式、盒模型约束。具体问题需结合代码分析选择适配方案。(150字)

2026-02-18 00:40:08 305

原创 在HTML & CSS中,img标签固定宽度时,img和图片保持比例缩放

在HTML中实现图片自动调整大小并保持比例缩放,可通过多种CSS方法实现: 最常用方法:width: 100%; height: auto;,让图片宽度填满容器,高度按比例缩放 防止拉伸:使用max-width: 100%,保持小图片原始尺寸 精确控制:object-fit: contain确保图片完整显示,可能留白 现代方案:aspect-ratio保持原始宽高比(浏览器支持有限) 推荐使用第一种方法,兼容性好且实现简单。响应式设计建议组合使用max-width: 100%和height: auto。需要

2026-02-18 00:38:49 162

原创 在c#中,缩放jpg文件的尺寸

这篇文章介绍了两种在C#中调整JPG图像宽度的方法。第一种使用System.Drawing库,将图像宽度调整为365像素(默认值),高度按比例自动缩放,支持自定义输出路径和质量参数(1-100)。该方法适用于.NET Framework 4.6+或.NET Core/.NET 5+(需安装System.Drawing.Common)。第二种方案解决了覆盖原文件的问题,通过内存加载方式避免文件锁定冲突,当输入输出路径相同时自动覆盖原文件。文章还提供了跨平台推荐方案SixLabors.ImageSharp,适合

2026-02-18 00:35:13 527

原创 在JavaScript / HTML中,在html的元素中寻找第X个某元素

摘要:获取HTML中第3个span元素的4种方法:1)使用:nth-child(3)选择器直接定位;2)通过querySelectorAll获取所有span后取索引2;3)用getElementsByClassName按类名获取后索引;4)使用:nth-of-type(3)选择器。注意索引从0开始,第3个元素对应索引2。推荐使用:nth-child或querySelectorAll方法,通用性强且可靠。(149字)

2026-02-18 00:31:07 234

原创 在c#中,实现把图片文件拖动到pictureBox控件上

本文介绍了在C# WinForms中实现图片拖拽到PictureBox控件的方法。主要步骤包括:设置PictureBox的AllowDrop属性为true以接收拖放;处理DragEnter事件验证文件类型;处理DragDrop事件加载图片。关键点涉及资源释放、异常处理和文件格式检查。文章提供了完整示例代码,并说明了WinForms与WPF实现方式的区别。

2026-02-18 00:27:20 337

原创 在c#中,使用windows自带功能将文件夹打包为ZIP

摘要:C# 提供了 System.IO.Compression 命名空间来压缩文件夹为 ZIP 文件。主要方法是 ZipFile.CreateFromDirectory,支持基本压缩和高级选项,如压缩级别控制、是否包含源目录等。使用时需注意异常处理和文件权限问题,在 .NET Framework 中需额外引用程序集。对于复杂需求,可考虑第三方压缩库。该方法适用于大多数简单的文件夹压缩场景。

2026-02-18 00:25:34 360

原创 在c#中,控件的事件执行耗时操作导致窗体无法及时处理绘制、鼠标点击

摘要 解决C# WinForms/WPF按钮点击后窗口卡顿问题,关键在于避免UI线程执行耗时操作。推荐使用async/await结合Task.Run将耗时任务移至后台线程执行: WinForms示例: private async void button1_Click(object sender, EventArgs e) { listBox1.Items.Add("开始处理..."); string result = await Task.Run(() => DoHeavyWork()); listBox1

2026-02-18 00:22:42 611

扫雷.xlsm下载即玩

用excel2016做的扫雷。 操作: 标雷 - 左键单击 挖掘 - 双击 取消标雷 - 右键单击。

2020-03-27

Win7X64显示/隐藏桌面图标

64位Win7,需要framework4.5,实现桌面右击点查看->显示桌面图标的功能。

2013-01-23

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除