在要求输入邮箱的文本域,请填写真实的邮件地址。非真实邮件地址,将收不到回复信息。

 分类:代码世界

Wavesurfer.js一个开源的音频可视化库

Wavesurfer.js Wavesurfer.js是一个基于JavaScript的开源音频波形可视化库。它利用Web Audio API和HTML5 Canvas技术,为音频数据提供了丰富的可视化展示方式。Wavesurfer.js的主要目标是提供一种灵活且易于集成的工具,使开发者能够在网页上创建交互式音频波形可视化。 特点 跨平台兼容性:由于Wavesurfer.js是基于Web标准构建的,因此它可以在任何支持Web Audio API和Canvas的浏览器上运行,包括桌面和移动设备。 多格式支持:Wavesurfer.js支持多种音频格式,如WAV、MP3、OGG等,使开发者能够方便地加载和显示不同类型的音频文件。 高度可定制:Wavesurfer.js提供了丰富的配置选项和API,允许开发者根据自己的需求定制波形的外观、行为以及交互方式。...

2个月前 (02-21) 338℃ 0评论 1喜欢

Docker使用NPM安装CNPM失败

背景 项目使用jenkins自动构建应用,原本构建没有没有什么问题,一天突然就发生了异常且多次重试结果并没有改变。为了更快的构建完成项目,所以就找到简单的处理方法来解决问题。 异常信息 RUN npm install -g cnpm@7.1.0 –registry=https://registry.npm.taobao.org—> Running in 47877716e592[91mnpm ERR! [0m[91mcode CERT_HAS_EXPIRED[0m[91mnpm ERR![0m[91m errno CERT_HAS_EXPIRED[0m[91mnpm ERR![0m[91m request to https://registry.npm.taobao.org/cnpm failed, reason: certifica...

3个月前 (01-22) 831℃ 0评论 0喜欢

开源在线文档预览解决方案kkFileView

背景 因需要进行文档在线预览,所以才有以下内容。因付费方案不在选择范围,所以只能寻求免费开源的解决方案。经过查找发现除了LibreOffice 、OnlyOffice、kkFileView以外并没有发现其他可用的方案,也许是自己原因没有找到其他开源解决方案吧!由于没有在线编辑的需求,经过对比kkFileView部署以及使用极其简单,所以就选择了kkFileView。 kkFileView kkFileView为文件文档在线预览解决方案,该项目使用流行的spring boot搭建,易上手和部署,基本支持主流办公文档的在线预览,如doc,docx,xls,xlsx,ppt,pptx,pdf,txt,zip,rar,图片,视频,音频等等 项目特性 使用spring boot开发,预览服务搭建部署非常简便 rest接口提供服务,跨平台...

3个月前 (01-17) 372℃ 0评论 0喜欢

JS录音获取麦克风权限被拒绝访问

背景 因业务需求原因,需要在网页上进行录音,使用Javascript来进行操作,完成录音并保存上传到指定服务器。实现相关代码后进行测试,发现访问音频设备最后被拒绝。 原因 网页上反馈的异常信息如下图所示 经过再次的查看,确认未经处理的异常信息如下: DOMException: Permission denied by system 查下浏览器的设置,浏览器是否禁用麦克风,经过确认浏览器并没有发现什么问题。 浏览器各项检查都非常的正常,尝试录音错误依然再次出现,按道理来讲,应该是没有什么问题的。就目前情况而言,的确可能存在不讲道理的情况呀。随后更换一台电脑进行了一下测试,经过测试发现没有任何问题,正常录音。这就诡异了!也许是音频硬件原因?将这音频设备在其他电脑上进行再次确认,测试结果还是没有问题。这就让人郁闷了. ...

6个月前 (11-09) 633℃ 0评论 0喜欢

在Docker容器下使用.net 5统计图中文乱码的问题

背景 客户新提需求,需要增加一张报表,报表需要增加统计图表。因为客户需要将数据以及统计图表一并导出到word中,所以没有使用前端统计相关的类库,比如:echarts、highcharts等库。虽然可以使用前端相关类库导出word,但是并不能满足现有需求。后台服务使用的是.net 5,统计图完成后发现中文出现乱码。如下图: 问题 出现以上乱码问题,其一可能是统计类库不支持中文导致的,也有可能是docker镜像中缺少相应的中文字体。因为在本地开发环境测试并没有问题,更新到测试环境后才发现以上乱码情况,所以应该是镜像中缺少相关中文字体而导致的。 解决 既然是缺少中文字体,那就安装字体就行了。在Windows系统中复制需要的字体到新建名称为chinese文件夹下,将此文件夹放到与dockerfile同一目录下即可。dockerfile文件中新增内容如...

7个月前 (09-24) 622℃ 0评论 1喜欢

迁移网站更改域名后一个可以使用的301跳转方案

背景 最初,由于购买cc域名不支持备案,所以就使用了阿里云香港云空间。自从2016年网站应用由.net应用BlogEngine.NET改为WordPress至今都使用的阿里云香港云空间。稳定倒是挺稳定的,就是一直感觉访问速度比较慢,本以为是阿里云香港云空间本是这样,就没有研究其慢的真实原因,当然这已经是后话了。 今年云空间快要到期的时候,突然想将网站迁移到国内,为了不在备案期间停止域名访问,就更换了域名。当域名更换完成,空间迁移完毕,貌似一切准备就绪,发现原来空间即将到期,留给301跳转的时间非常不足。本想使用阿里云DNS解析进行301跳转,这个也是最优的解决方案,无奈的是域名必须进行备案且是两个域名都必须备案。如果原来的域名也参与备案的话,网站就需要停止访问了,为了避免这种情况,只能放弃使用此方法。 发现 续费原来空间或者购买腾讯云和百度云等在价格上是不划算的。...

8个月前 (08-30) 528℃ 0评论 0喜欢

Nginx禁止指定UA、IP或者IP段访问

背景 在管理后台修改一些内容的时候,想到很久之前安装的重定向插件Redirections,随便就看一下。这不看不知道,看到了就差点大声尖叫。没有想到这么多对站点无意义的请求命中之前设置的重定向规则,一眼就可以发现请求UA不正常。例如:Apache-HttpClient、python-requests等 这种是一些非法采集的应用,觉得还是要对这类UA进行一些限制,例如:禁止指定UA访问、拒绝IP或者IP段的访问等。 现在服务已经由原来的Apache迁移到了Nginx服务上运行,所以现在的处置方案针对Nginx的。 Nginx禁止特定UA访问 在Nginx中有一个内置变量$http_user_agent,表示HTTP请求头中的User-Agent字段。使用正则表达式匹配User-Agent字段中是否包含特定的字符串,符合规则的则禁止访问。具体实现如下: ...

9个月前 (07-21) 1242℃ 0评论 1喜欢

HTML5音频资源加载失败的处理方法

背景 页面加载很多音频标签,音频资源一些加载不成功,音频标签不可用,并且排除以下几种情况: 检查音频的链接是否有效 检查音频格式是否支持 检查网络连接是否通畅 如果确认以上内容没有任何问题,则是页面加载过多的音频资源而导致部分音频资源加载失败。可以使用JavaScript进行资源加载重试,当然重试的策略需要进行限制,避免无限制尝试。 实现方式 以下是使用JavaScript代码实现自动重新加载资源的一个简单的示例,当音频标签加载失败时,它会自动尝试重新加载音频: const audio = document.querySelector('audio'); audio.addEventListener('error', () => { audio.load(); }); 在上面示例中,首先选择了音频标签,并添加了一个...

10个月前 (07-16) 613℃ 0评论 1喜欢

WordPress由Apache迁移到Nginx出现404问题的解决方法

背景 虚拟主机即将到期且位置在香港,为了网站更好的访问速度索性就迁回大陆。在好多年前购买的时候只有Apache可选,这次迁回有Nginx可以选择,官方有说这个性能更加的强劲,所以这次就选了Nginx服务。数据以及文件很容易就完成了迁移,本想万事大吉,随便点击了几下测试全是404,其中包括文章、分类、标签、搜索、分页、站点地图、日期等全部404。WordPress后台固定链接设置的是日期和名称,应该就是URL重写的问题了。在使用Apache的虚拟主机的时候是默认的有相关配置的,但是新购的Nginx虚拟主机就没有这种配置了。所以,只有自己来进行URL的重写配置。 Nginx解决方法 Nginx重写URL配置内容如下: location / { if (!-e $request_filename) { rewrite ^/(&#...

11个月前 (06-15) 669℃ 0评论 1喜欢

Syncfusion.DocIO.Net.Core操作Word的第三方组件无限制版

背景 一些朋友推荐处理Word可以使用Syncfusion.DocIO,说是API比较好用而且还支持doc格式的文件,因此就了解一下。经过测试确认是比一些开源的处理库好用一点,支持相对来说比较完善,就因为这些所以才会有这篇介绍的内容。 Syncfusion.DocIO.Net.Core Syncfusion.DocIO.Net.Core是Syncfusion的一组.NET组件,用于创建、编辑和转换Microsoft Word文档。它支持多种文件格式,包括.docx、.rtf、.txt等。它提供了一组易于使用的 API,可以帮助开发人员轻松地创建、读取和修改 Word 文档。 主要功能 创建Word文档并添加内容、表格、图片等元素。 编辑Word文档中的文本、表格、图片等内容。 将Word文档转换为其他格式,如PDF、HTML等。 支持批量...

12个月前 (05-16) 808℃ 0评论 3喜欢

安全架构设计基本原则

安全原则 在应用系统软件开发设计的过程中,对应用系统的总体设计应当满足如下安全原则 原则说明最小权限原则Least Privilege 应用软件的每个模块如进程、用户只能访问当下所必需的信息或者资源。赋予每一个合法动作最小的权限,以保护数据以及功能避免受到错误或者恶意行为的破坏。权限分离原则Separation of Duties对业务的操作、管理和审计权限应该由软件中的不同角色的用户分别承担;普通用户和管理员用户信息应该存放在不同的数据表中。深度防御原则Defense in Depth在应用程序对业务数据进行处理的每个阶段都要考虑安全性问题,不能仅在某个阶段做安全防御,这样单点防御一旦被突破将造成安全风险。容错保护原则Fail Secure当程序出现故障时或系统异常当系统失败时,可以进入到一个失败保护的状态。如果用户请求失败,系统仍可保...

1年前 (2023-03-29) 1142℃ 0评论 1喜欢

使用Fiddler进行移动端(手机)抓包

背景 客户一个定制企业微信相关内容,其中自动登录成功某些功能不正常,手动登录的又未复现问题,程序都是相同的且问题确实存在。准备使用抓包看一下企业微信自动登录与非自动登录的行为区别,抓包工具选用了大名鼎鼎的Fiddler。 Fiddler Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据(指cookie,html,js,css等文件)。 Fiddler 要比其他的网络调试器要更加简单,因为它不仅仅暴露http通讯还提供了一个用户友好的格式。 Fiddler 是用C#写出来的,它包含一个简单却功能强大的基于JScript.NET 事件脚本子系统,它的灵活性非常棒,可以支持众多的http调试任务,并且能够使用.net框架语言进行扩展。 操作设置 设置允许远程...

1年前 (2023-03-14) 1100℃ 0评论 1喜欢

安全风险状况说明

安全风险状况等级说明 良好状态   信息系统处于良好运行状态,没有发现或只存在零星的低风险安全问题,此时只要保持现有安全策略就满足了本系统的安全等级要求。预警状态信息系统中存在一些漏洞或安全隐患,此时需根据评估中发现的网络、主机、应用和管理等方面的问题对进行有针对性的加固或改进。严重状态信息系统中发现存在严重漏洞或可能严重威胁到系统正常运行的安全问题,此时需要立刻采取措施,例如安装补丁或重新部署安全系统进行防护等等。紧急状态信息系统面临严峻的网络安全态势,对组织的重大经济利益或政治利益可能造成严重损害。此时需要与其他安全部门通力协作采取紧急防御措施。 漏洞等级状况说明 低危漏洞 对系统造成较小的影响,攻击成本高,攻击场景较为苛刻,不会直接影响到系统的正常运行,攻击者可能无法通过该漏洞获得权限。中危漏洞对系统造成一般的影响,攻...

1年前 (2023-02-24) 740℃ 0评论 0喜欢

Docker构建VUE项目NPM构建134异常

背景 一个前端的VUE项目,需要打一个Docker的镜像离线包。通过命令行构建镜像,通过等待比较长的时间后,NPM构建抛出异常。 异常内容 以下是关于这次异常的详细信息: => ERROR [build-stage 10/10] RUN npm run build 1222.9s ------ > [build-stage 10/10] RUN npm run build: #18 7.649 #18 7.649 > vue-antd-admin@0.7.4 build /app #18 7.649 > vue-cli-service build #18 7.649 #18 24.59 #18 2...

1年前 (2023-02-23) 771℃ 0评论 0喜欢

Chrome浏览器中的XPath

背景 某一个应用自动在网页上获取一些文本内容,本来是通过document.querySelector来找指定节点。经过一段时间网页貌似升级了,一些节点的class属性的值会出现随机的变动,每次class属性的值都会不一样。最初的方式就失去了作用,根据节点内容的分析发现可以通过xpath来获取。曾经在IE浏览器上使用过XPath,并且API相当简单。在非IE浏览器上貌似没有这么好用。以下内容在Chrome浏览器进行尝试,经过测试可以完成自己的预期工作。 浏览器支持 Mozilla是根据DOM标准来实现对XPath的支持的。DOM Level 3附加标准DOM Level 3 XPath定义了用于在DOM中计算XPath表达式的接口。遗憾的是,这个标准要比微软直观的方式复杂得多。虽然有好多与XPath相关的对象,最重要的两个是:XPathEvaluator和XPathRes...

1年前 (2022-12-03) 1150℃ 0评论 16喜欢

Javascript判断当前页面是否处于激活状态

背景 现有一个考试项目,当在浏览器进行考试时需要判断用户是否存在切屏,如果切屏就对当前考试进行自动强制交卷。浏览器中可通过window对象的onblur、onfocus判断,或者document的hidden属性判断。 获取焦点(onfocus)和失去焦点(onblur) 关于是否失焦点,浏览器对象有onfocus 和 onblur事件可以监听。但是触发这两个事件的前提是页面之前是获取焦点的,就是说要是激活的。也就是说页面刚刚渲染完,用户在没有页面上任何操作时,页面是不会正常监听这两个事件的;或者页面在打开状态下,但是触发了onblur之后并无页面操作的情况下也不会正常监听这两个事件。直到,用户操作页面触发focus,之后离开页面才会触发blur,再次点击到当前页面时才会触发focus,如此反复都会触发相应的事件。 onblur 在chrome浏览器下,点击...

1年前 (2022-11-21) 1922℃ 0评论 5喜欢

在非HTTPS站点中使用Content Security Policy引发的问题

背景 有一个客户需要对以前老项目部分功能进行升级,需要升级页面按照最新版本的内容进行更新,测试发现页面无法加载。F12使用开发者工具发现所有资源文件异常,所有的资源文件竟然自动将HTTP协议换成 HTTPS 协议。异常信息如下图所示: 项目目前部署是非HTTPS的,很奇怪为什么会自动转换为HTTPS资源。经过排查在异常页面中发现了问题,在head节点下发现以下代码 <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests"> 以上内容会将HTTP协议自动转换为HTTPS协议。 Content-Security-Policy Content-Security-Policy(CSP)允许站点管理者控制用户代理能够为指定的页面加载哪些资源。除了少...

2年前 (2022-10-25) 786℃ 0评论 13喜欢

使用ABP框架UI找不到文件的异常

背景 自己的一个小应用使用了ABP框架最新内容创建了一个项目模板,为了快速的完成第一版就是用来ABP自带的UI框架。在测试项目模板正常与否的时候发现关于UI方面的异常信息,第一次使用ABP官方提供的UI框架,所以先在此做一下记录。 以下是异常信息: AbpException: Could not find the bundle file ‘/libs/abp/core/abp.css’ for the bundle ‘LeptonXLite.Global’! 解决方法 安装 abp cli命令行工具,地址 https://docs.abp.io/zh-Hans/abp/latest/CLI执行 abp install-libs,会自动把本项目最小依赖安装包自动安装到 /wwwroot...

2年前 (2022-10-05) 546℃ 0评论 14喜欢

.Net Core获取Window系统机器码

背景 因为朋友想做一个软件认证相关的东西,所以考虑到关于电脑唯一标识机器码的问题。关于机器码之前并没有真正实现过,也只是了解大概的原理。今天就做一下简单记录,以便以后使用。 机器码 机器码指的是软件根据计算机的硬件信息,例如:CPU、内存、主板序列号等,按照一定的算法生成的一串无规律的字符串,并且在不同计算机上生成的机器码是不一样的,因为每台计算机的硬件信息不一样。机器码,也叫序列号、认证码、注册申请码等。 代码实现 using System.Management; using System.Runtime.InteropServices; namespace HonourWorld.Core.Common { public sealed class MachineCode { private read...

2年前 (2022-10-04) 1321℃ 0评论 4喜欢

判断登录的QQ是否已经加入指定的QQ群之二

背景 任何事情都有一个原由,本篇内容也不例外。如标题所示,关于判断登录的QQ是否已经加入指定的QQ群的问题。为什么是之二?因为之前已经写过一次相关内容了。既然曾经已经写过一次为什么还要写第二次?因为今天早上收到了一个邮件通知,这个是博客评论通知,有人评论就以邮件形式告知。评论内容是这样的:c#那个QQ群验证已经无法使用了能更新下吗。如下图所示: 没有错,就如我回复的一样,示例程序的代码的确不可以用了,不过思路依然可以使用。 分析 其实没有什么好分析的,思路与上次一样。只是上次验证的地址(http://qun.qzone.qq.com)无效了,可能是下线了吧!不过QQ也有关于群里管理的网站(https://qun.qq.com/),这个网站依然可以实现这样的操作。实现比较简单,访问网址https://qun.qq.com/member.html并登录,然后通...

2年前 (2022-09-25) 1446℃ 6评论 8喜欢

.NET CORE实现SHA1

背景 因业务需求,需要保存一些指定的字符串,但这些字符串可能相同。为了避免重复存储造成数据大量冗余,所以需要对这些字符串进行一些散列计算。使这一些相同的字符串产生唯一的标识,实现业务上的需求。关于字符串散列算法还是比较多的,例如:MD2、MD4、MD5、Sha1、Sha256、Sha512等等,在结合字符串散列碰撞以及散列最终长度考虑,最后选中Sha1作为此次散列算法。 SHA-1 (英语:Secure Hash Algorithm 1,中文名:安全散列算法1)是一种密码散列函数,美国国家安全局设计,并由美国国家标准技术研究所(NIST)发布为联邦数据处理标准(FIPS)。SHA-1可以生成一个被称为消息摘要的160位(20字节)散列值,散列值通常的呈现形式为40个十六进制数。 .NET CORE 实现 SHA1 以下是使用.Net Core自带类库...

2年前 (2022-09-24) 896℃ 2评论 2喜欢

使用Nginx配置资源目录达到下载目的

背景 实施人员临时需要在客户服务器上配置一个可下载的目录,为了可以在内网进行交换文件。 Nginx配置 location /resources { #下载的资源目录 绝对路径 最后 "/" 结尾 alias /app/smart/logs/; autoindex on; autoindex_format html; #以html风格将目录展示在浏览器中 autoindex_exact_size off; #切换为 off 后,以可读的方式显示文件大小,单位为 KB、MB 或者 GB autoindex_localtime on; #以服务器的文件时间作为显示的时间 client_max_body_size 4...

2年前 (2022-09-05) 702℃ 0评论 10喜欢

WordPress自动对没有alt属性的img添加alt属性

背景 使用了微软必应搜索的站长工具,看到必应搜索工具中SEO报告提示错误蛮多。主要有两个错误提示,其中一个是关于页面描述内容长短问题,另外一个就是img标签没有alt属性的问题。页面固定img标签的alt属性比较容易改,而文章内容的img标签的alt属性就没有那么方便了。 博客使用的是wordpress,其实处理起来也没有那么麻烦。一种方法就是使用现成的插件,例如:SEO Friendly Images,另一种就是在使用模板目录下,找到functions.php函数文件添加自定义函数处理。 这里提供自定义函数,内容如下: //Wordpress判断并自动添加图片ALT属性 function image_alt($imgalt) { global $post; $title = $post->post_title; $imgUrl = "/&...

2年前 (2022-08-07) 653℃ 0评论 22喜欢

MYSQL修改数据库、表、字段字符集

背景 由于mysql低版本暴了漏洞,所以客户就升级了mysql版本。升级到了最新版8.0.30,升级最新版后,应用就再也查不出数据,恢复到最初的版本有可以查到数据。经过确认最初数据库的表字符集为utf8,升级后这些字符集自动修改为utf8mb3。新版本数据库移除了utf8字符集,而应用本身不支持utf8mb3,所以需要修改这些字符集。经过再次确认最新版mysql以及应用都支持utf8mb4,最终决定修改字符集为utf8mb4。 修改字符集 数据库 ALTER DATABASE 数据库名称 DEFAULT CHARACTER SET 编码名称 [COLLATE ...]; 例如: ALTER DATABASE activity CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci; 表...

2年前 (2022-08-05) 885℃ 0评论 2喜欢

.NET CORE引用Aspose.Words的异常Could not load file or assembly

背景 引用了一个第三方的dll库,编译无任何异常提示,但是运行就报异常。自从有了Nuget基本没有再使用直接引用dll这种方式了。经过确认dll也设置了输出到目录,在 bin目录也的确存在此dll库。 异常信息 Could not load file or assembly ‘Aspose.Words, Version=20.6.0.0, Culture=neutral, PublicKeyToken=716fcc553a201e56’. 系统找不到指定的文件。System.IO.FileNotFoundException: Could not load file or assembly ‘Aspose.Words, Version=20.6.0.0, Culture=neutral, PublicKeyToken=716fcc553...

2年前 (2022-08-01) 629℃ 0评论 4喜欢