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

 分类:代码世界

一个基于Web的PDF 操作工具

Stirling-PDF 这是一个使用Docker的强大的、本地托管的基于web的PDF操作工具。它使您能够对PDF文件执行各种操作,包括拆分、合并、转换、重新组织、添加图像、旋转、压缩等。这个本地托管的web应用程序已经发展到包含一套全面的功能,可以满足您的所有PDF要求。Stirling PDF不会出于记录保存或跟踪目的发起任何出站请求。所有文件和PDF要么仅存在于客户端,要么仅在任务执行期间驻留在服务器内存中,要么临时驻留在仅用于执行任务的文件中。到那时,用户下载的任何文件都将从服务器上删除。 特征 深色模式支持。 自定义下载选项 并行文件处理和下载 自定义 ‘Pipelines’ 以在队列中运行多个功能 用于与外部脚本集成的 API 可选的登录和身份验证支持(请参阅此处的文档) 数据库备份和导...

3周前 (10-31) 84℃ 0评论 0喜欢

Windows 11系统使用SCP上传文件到Linux服务器

SCP命令 SCP(Secure Copy)是一种基于SSH(Secure Shell)的安全文件传输协议,可以在Windows和Linux之间安全地传输文件。在最新系统Windows 11中无需安装其他第三方应用即可实现。 Windows上传文件到Linux服务器 scp 需要上传的文件路径 远程服务器用户@远程服务器IP:远程服务器对应的目录 例如: scp server.csr root@192.168.1.10:/data/web/ssl/ Windows上传文件夹到Linux服务器 scp -r 需要上传的目录 远程服务器用户@远程服务器IP:远程服务器对应的目录 例如: scp -r ssl root@192.168.1.10:/data/web/ Linux服务器下载文件到本地Windows sc...

2个月前 (09-20) 702℃ 0评论 1喜欢

HOST头攻击问题IIS服务解决方案

背景 客户反馈站点存在Host头攻击的问题,并给了测试结果,这是以前的老项目,出现这个问题也不算奇怪,如下图所示: 如果修改应用程序的话需要的时间可能更长,为了尽快的解决就是用了一个非常成熟并简单的方案,不需要修改程序。使用微软官方提供的URL重写组件,安装后进行相关配置即可。 解决方案 安装IIS组件URL重写 官网进行下载: IIS官网下载URL重写组件 URL重写规则设置 选中需要配置的站点,可以看到[URL重写],如下图所示: 双击[URL重写],右侧点击【添加规则】,并选择【请求阻止】,如下图所示 添加规则如下(模式中填写对应的网站ip和端口号),如下图所示: 确定后可见如下规则内容,双击规则项目。如下图所示: 修改如下配置后选择应用即可 通过以上...

4个月前 (07-23) 400℃ 0评论 0喜欢

Docker设置新的镜像仓库地址

背景 使用Docker拉取镜像,发现有异常提示,经过排查发现是镜像站点关闭了。在互联网上找了很多公共的镜像都基本关闭了,163、百度云、腾讯云等云镜像站点基本关闭了,经过查找各种大学的Docker镜像站点也都下线了。只能继续查找可用的镜像站点,找到后更改Docker镜像站点。 Docker镜像设置 Ubuntu/CentOS 安装/升级Docker客户端 推荐安装1.10.0以上版本的Docker客户端,参考文档docker-ce 配置镜像加速器 针对Docker客户端版本大于 1.10.0 的用户您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器 sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF'...

6个月前 (06-08) 834℃ 0评论 0喜欢

MYSQL InnoDB引擎日志表损坏修复

背景 客户发消息说系统突然登录不上,验证码都出不来。当看到这个消息的时候觉得应该挺简单的,觉得大概率是应用程序挂了,决定临时使用重《重启》大法。登录应用服务进行查看发现服务在重启中,尝试重启也无效,就查看了相关日志发现是MySQL服务连接不上了。接下来就只能看下MySQL 服务出现什么问题并想办法尝试解决。 问题 登录MySQL服务器发现服务在启动中并且一直处于这个状态。停止服务MYSQL服务并尝试重启,问题依然存在。MYSQL的状态一直就是这个Server startup in progress,如下所示: mysqld.service – MySQL ServerLoaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)Act...

6个月前 (05-31) 751℃ 0评论 0喜欢

JavaScript录音错误浏览器不支持getUserMedia

背景 新项目有一个新的需求,需要用到浏览器录音。在本地进行测试的时候并没有发现问题,部署以后访问就出现了如下错误: 浏览器不支持 getUserMedia 经过了解得知getUserMedia 是默认不支持 http 访问的,必须要用 https 协议且需要合法的域名。 解决方法 使用https协议访问 申请域名并配置SSL证书,实现HTTPS协议请求访问即可避免此问题 配置浏览器临时解决方案 打开谷歌浏览器,在地址栏中输入chrome://flags/#unsafely-treat-insecure-origin-as-secure后并回车可见如下内容: 将目标网站输入到Insecure origins treated as secure中,然后将Disabled下拉改为Enabled。使用此方法即可临时解决无法...

7个月前 (04-30) 836℃ 0评论 0喜欢

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,允许开发者根据自己的需求定制波形的外观、行为以及交互方式。...

9个月前 (02-21) 1271℃ 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...

10个月前 (01-22) 1552℃ 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接口提供服务,跨平台...

10个月前 (01-17) 1123℃ 0评论 0喜欢

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

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

1年前 (2023-11-09) 1481℃ 0评论 0喜欢

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

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

1年前 (2023-09-24) 1135℃ 0评论 1喜欢

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

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

1年前 (2023-08-30) 1014℃ 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字段中是否包含特定的字符串,符合规则的则禁止访问。具体实现如下: ...

1年前 (2023-07-21) 2811℃ 0评论 1喜欢

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

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

1年前 (2023-07-16) 1405℃ 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 ^/(&#...

1年前 (2023-06-15) 1211℃ 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等。 支持批量...

2年前 (2023-05-16) 1447℃ 0评论 3喜欢

安全架构设计基本原则

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

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

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

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

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

安全风险状况说明

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

2年前 (2023-02-24) 1362℃ 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...

2年前 (2023-02-23) 1365℃ 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...

2年前 (2022-12-03) 1715℃ 0评论 16喜欢

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

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

2年前 (2022-11-21) 3376℃ 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) 1291℃ 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) 891℃ 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) 2321℃ 0评论 4喜欢