王新阳

wangxinyang

lodop打印控件-关于谷歌Chrome浏览器94版跨域问题的解决方案

谷歌浏览器再次迈出激进安全步骤,Win10+Chrome94版阻断http页面访问localhost服务, 这一举动广泛影响了Web模式的设备管理系统,例如路由服务、打印服务等,其中也包括C-Lodop软件。 安全是个美好的托词,真正让谷歌贸然行动的动机是大力推广https协议,而https背后是TLS证书, TLS证书背后是浏览器厂商的年费分成,利益巨大...闲话少说,解决方案如下:

有四种方法,选其一就行:

一、网站改用HTTPS方式(彻底方案)

二、安装最新的C-Lodop6.564及后版本,并更新LodopFuncs.js文件;

三、手动修改客户浏览器安全设置,在Chrome地址栏输入:chrome://flags/#block-insecure-private-network-requests

看到底色泛黄的“Block insecure...”项的 Default 值,改选成 Disabled然后窗口下方会出现蓝底的Relaunch按钮,点它重启浏览器。

四、客户端改用低版本Chrome(94版前)浏览器,简单办法是安装360急速版(Chrome内核)

注:微软的浏览器Edge94版因为采用了Chrome内核,故以上解决方案也适用。

系统存在支持SSL中等强度密码套件(SWEET32)

转自:https://blog.csdn.net/qq_38254635/article/details/128400965

gpedit.msc 》 计算机配置 》管理模板》网络》SSL配置设置》SSL密码套件顺序》启用

TLS_AES_256_GCM_SHA384、TLS_AES_128_GCM_SHA256、TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384、TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256、TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384、TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256、TLS_DHE_RSA_WITH_AES_256_GCM_SHA384、TLS_DHE_RSA_WITH_AES_128_GCM_SHA256、TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384、TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256、TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384、TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256、TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA、TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA、TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA、TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA、TLS_RSA_WITH_AES_256_GCM_SHA384、TLS_RSA_WITH_AES_128_GCM_SHA256、TLS_RSA_WITH_AES_256_CBC_SHA256、TLS_RSA_WITH_AES_128_CBC_SHA256、TLS_RSA_WITH_AES_256_CBC_SHA、TLS_RSA_WITH_AES_128_CBC_SHA、TLS_RSA_WITH_3DES_EDE_CBC_SHA、TLS_RSA_WITH_NULL_SHA256、TLS_RSA_WITH_NULL_SHA、TLS_PSK_WITH_AES_256_GCM_SHA384、TLS_PSK_WITH_AES_128_GCM_SHA256、TLS_PSK_WITH_AES_256_CBC_SHA384、TLS_PSK_WITH_AES_128_CBC_SHA256、TLS_PSK_WITH_NULL_SHA384、TLS_PSK_WITH_NULL_SHA256

改为:

TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P384,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA_P384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA_P384,TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384_P384,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256_P384,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384_P384,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256_P384,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA_P384,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA_P384,TLS_DHE_DSS_WITH_AES_256_CBC_SHA256,TLS_DHE_DSS_WITH_AES_128_CBC_SHA256,TLS_DHE_DSS_WITH_AES_256_CBC_SHA,TLS_DHE_DSS_WITH_AES_128_CBC_SHA,TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA

重启系统,即可。

检查方法:

下载安全 nmap-7.93-setup.exe。
安装好之后,Win + R 输入 cmd,假设要检测的域名是 xxx.com
输入:nmap -sV --script ssl-enum-ciphers -p 443 xxx.com

没问题时如下图:

下图是有问题的情况:


MySQL数据库开启审计功能

来源:https://www.shuzhiduo.com/A/kvJ3wgegJg/

数据库审计主要用于监视并记录对数据库服务器的各类操作行为,并记入审计日志或数据库中以便日后进行跟踪、查询、分析,以实现对用户操作的监控和审计。审计是一项非常重要的工作,也是企业数据安全体系的重要组成部分。

1、查看General Log开启情况:执行SQL命令show variables like '%general_log%' ;可以看到默认general_log是OFF的

2、开启General Log: 执行SQL命令set global general_log=on 而后查看general_log打开了

3、验证:general_log打开后,所有SQL的访问都会记录在general_log_file指向的日志文件。

开启General Log只要用户执行了操作,无论对错,MySQL就会记录日志,这样的话日志量会非常庞大,对数据库效率有影响。所以我们一般不建议开启开功能,个别情况下可能会临时的开一段时间以供排查故障等使用。对于生产环境中任务繁重的MySOL数据库,启用审计会引起服务器的高昂成本,因此建议采用第三方数据库审计产品收集审计记录。


layui自动触发select事件

来源:https://toscode.gitee.com/layui/layui/issues/I5JMRW

$(obj).siblings("div.layui-form-select").find("dl dd[lay-value='"+value+"']").click();

linux常用命令

来源:https://mp.weixin.qq.com/s/R9WWP63BYTQZBYGqZ07W0A

文件管理

目录操作

切换目录 cd

查看目录 ls

  • -l   列出文件详细信息 或者直接ll
  • -a   列出当前目录下所有文件及目录,包括隐藏的a(all)

创建目录 mkdir

  • -p      创建目录,若无父目录,则创建p(parent)

输出信息 echo

打印文件到命令行(查看文件) cat

改变文件所属用户 chown

改变文件所属组 chgrp

下载文件 wget

在文本文件中查找某个字符串 grep

统计文本中行数、字数、字符数 wc

部分显示 more/less

查找文件 find / -name 'auto.cnf'

创建空文件 touch

复制文件 cp

移动或重命名 mv

删除文件 rm

  • -r    递归删除,可删除子目录及文件

  • -f    强制删除

删除空目录 rmdir

树形结构显示目录,需要安装tree包  tree

显示当前目录 pwd

创建链接文件 ln

分页显示文本文件内容 more、less

显示文件头、尾内容  head、tail

vim操作

进入编辑器 vi/vim,vim三种模式:命令模式、插入模式、编辑模式。使用ESC或i或:来切换模式。

  • 进入编辑模式插入 i
  • 退出编辑模式 esc
  • 保存:后面输入w
  • 退出:后面输入q
  • 不保存退出:后面输入q!
  • 显示行号 set number
  • 查找关键字 /xxxx 按n跳到下一个,shift+n上一个
  • 复制光标所在行,并粘贴 yyp
  • h(左移一个字符←)、j(下一行↓)、k(上一行↑)、l(右移一个字符→)

打包压缩相关命令

打包压缩 tar\gzip\bzip2

  • -c归档文件
  • -x  压缩文件
  • -z gzip压缩文件
  • -j bzip2压缩文件
  • -v 显示压缩或解压缩过程 v(view)
  • -f 使用档名

例:

只打包,不压缩:tar -cvf /home/abc.tar /home/abc

打包,并用gzip压缩:tar -zcvf /home/abc.tar.gz /home/abc

打包,并用bzip2压缩:tar -jcvf /home/abc.tar.bz2 /home/abc

如果想解压缩,就直接替换上面的命令 tar -cvf / tar -zcvf / tar -jcvf 中的"c" 换成"x" 就可以了。

Linux管道

将一个命令的标准输出作为另一个命令的标准输入。也就是把几个命令组合起来使用,后一个命令除以前一个命令的结果。

例:grep -r "close" /home/* | more    在home目录下所有文件中查找,包括close的文件,并分页输出。

文件权限管理

三种基本权限

R:读,数值表示为 4

W:写,数值表示为 2

X:可执行,数值表示为1

[root@VM-16-2-centos ~]# ll
total 597952
-rw------- 1 root root  12387614 Aug 29  2021 apache-zookeeper-3.7.0-bin.tar.gz
-rw-r--r-- 1 root root 113304268 May  3 12:22 jdk-8u281-linux-x64.rpm

如上所示,jdk-8u281-linux-x64.rpm文件的权限为-rw-r--r--,一共十个字符,分成四段。

  • 第一个字符"-"表示普通文件;这个位置还可能会出现l链接;d表示目录

  • 第二三四个字符rw-表示当前所属用户的权限,所以用数值表示为 4+2=6

  • 第五六七个字符r--表示当前所属组的权限,所以用数值表示为 4

  • 第八九十个字符r--表示其他用户权限,所以用数值表示为 4

所以操作此文件的权限用数值表示为 644

更改权限

更改权限:sudo chmod [u所属用户  g所属组  o其他用户  a所有用户]  [+增加权限  -减少权限]  [r  w  x]  目录名

例如:有一个文件 filename,权限为-rw-r----x ,将权限值改为-rwxrw-r-x,用数值表示为765

sudo chmod u+x g+w o+r filename 也可以用数值表示 sudo chmod 765 filename

运行程序

命令行运行

运行./filename

退出ctrl+c

后台运行

运行 nohup command >out.file 2>&1 &

退出 ps -ef |grep 关键字 |awk '{print $2}'|xarg kill -9

服务方式运行

设置开机启动 systemctl enable

启动systemctl start

关闭systemctl stop

系统相关

系统管理命令

显示指定文件的详细信息,比ls更详细 stat

显示在线登陆用户 who

显示当前操作用户whoami

显示主机名hostname

显示系统信息uname

动态显示当前耗费资源最多进程信息top

显示瞬间进程状态  ps \ ps -aux

查看目录大小 du -h /home (带有单位显示目录信息)

查看磁盘大小 df -h (带有单位显示磁盘信息)

查看网络情况 ifconfig

测试网络连通 ping

显示网络状态信息 netstat

命令不会用了,看文档 如:man grep

[root@VM-16-2-centos ~]# man grep
GREP(1)                    General Commands Manual                       GREP(1)
NAME
       grep, egrep, fgrep - print lines matching a pattern

SYNOPSIS
       grep [OPTIONS] PATTERN [FILE...]
       grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]
……

清屏 clear

对命令重命名 alias ,如:alias showmeit="ps -aux" ,解除使用unaliax showmeit

杀死进程 kill,可以先用ps 或 top命令查看进程的id,然后再用kill命令杀死进程。kill -9 强制删除

防火墙

查看防火墙状态 firewall-cmd --state

停止防火墙 systemctl stop firewalld.service

禁止firewall开机启动 systemctl disable firewalld.service

关机和重启

关机 shutdown -h now

  • -r 关机重启

  • -h 关机不重启

  • now 立刻关机

重启 reboot

关机  halt

网络配置

查看网卡信息 ifconfig

网络配置 /etc/sysconfig/network-script/ifcfg-eth0

配置网卡 /etc/udev/rules.d/70-persistent-net.rules

用户管理

创建用户 useradd

设置密码 passwd

  • 存储组账号 /etc/group

  • 系统用户配置文件 /etc/passwd

存储用户账号的密码 /etc/shadow

存储用户组账号的密码/etc/gshadow

用户名useradd

用户名userdel

用户名adduser

组名groupadd

组名groupdel

给root设置密码passwd root

su root

su - root

系统环境变量/etc/profile

用户环境变量bash_profile

用户环境变量.bashrc

su user 切换用户,加载配置文件.bashrc

su - user 切换用户,加载配置文件/etc/profile ,加载bash_profile

更改文件的用户及用户组

sudo chown [-R] owner[:group] {File|Directory}

-rw-r--r-- 1 root root 113304268 May  3 12:22 jdk-8u281-linux-x64.rpm

例如:还以 jdk-8u281-linux-x64.rpm 为例。属于用户root,组root

要想切换此文件所属的用户及组。可以使用命令。

sudo chown daley:java jdk-8u281-linux-x64.rpm

安装软件

下载rpm安装包方式

安装 rpm -i jdk-XXX_linux-x64_bin.rpm

查找 rpm -qa | grep jdk

列表 rpm -qa | more

ubuntu dpkg 方式

查找dpkg -I | grep jdk

列表dpkg -I | more

安装dpkg -i jdk-XXX_linux-x64_bin.deb

yum方式

搜索 yum search jdk

安装 yum install java-11-openjdk.x86_64

删除 yum erase java-11 -openjdk.x86 64

配置文件 /etc/yum.repos.d/CentOS-Base.repo

ubuntu apt-get 方式

搜索 apt・cache search jdk

安装apt-get install openjdk-9-jdk

删除apt-get purge openjdk-9-jdk

配置文件/etc/apt/sources. Iist

下载压缩文件方式

编辑 .bashrc

环境变量配置

  • 打开环境变量文件 vi /etc/profile

  • 配置环境变量 export JAVA_HOME=/root/j d k-XXX_lin ux-x64

  • export PATH=$JAVA HOME/bin:$PATH

  • 刷新配置 source /etc/profile

HTML中的Meta标签详解

来源:https://zhuanlan.zhihu.com/p/56233041

emta标签的组成:
meta标签分两大部分:HTTP-EQUIV和NAME变量。


HTTP-EQUIV:

HTTP-EQUIV类似于HTTP的头部协议,它回应给浏览器一些有用的信息,以帮助正确和精确地显示网页内容。
常用的HTTP-EQUIV类型有:
1.expires(期限):
说明:可以用于设定网页的到期时间。一旦网页过期,必须到服务器上重新调阅。
用法:<META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">
注意:必须使用GMT的时间格式。
2.Pragma(cach模式):
说明:禁止浏览器从本地机的缓存中调阅页面内容。
用法:<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
注意:这样设定,访问者将无法脱机浏览。
3.Refresh(刷新):
说明:需要定时让网页自动链接到其它网页的话,就用这句了。
用法:<META HTTP-EQUIV="Refresh" CONTENT="5;URL=http://www.yahoo.com">
注意:其中的5是指停留5秒钟后自动刷新到URL网址。
4.Set-Cookie(cookie设定):
说明:如果网页过期,那么存盘的cookie将被删除。
用法:<META HTTP-EQUIV="Set-Cookie" CONTENT="cookievalue=xxx;
expires=Wednesday, 21-Oct-98 16:14:21 GMT; path=/">
注意:必须使用GMT的时间格式。
5.Window-target(显示窗口的设定):
说明:强制页面在当前窗口以独立页面显示。
用法:<META HTTP-EQUIV="Window-target" CONTENT="_top">
注意:用来防止别人在框架里调用你的页面。
6.Content-Type(显示字符集的设定):
说明:设定页面使用的字符集。(我们在前面字体设计中已经介绍过它的作用)
用法:<meta http-equiv="Content-Type" content="text/html; charset=gb2312">


NAME变量:
meat标签的NAME变量语法格式是:
<META NAME="xxx" CONTENT="xxxxxxxxxxxxxxxxxx">
其中xxx主要有下面几种参数:
1.Keywords(关键字):
说明:keywords用来告诉搜索引擎你网页的关键字是什么。
举例:<META NAME ="keywords" CONTENT="life, universe, mankind, plants,
relationships, the meaning of life, science">
2.description(简介):
说明:description用来告诉搜索引擎你的网站主要内容。
举例:<META NAME="description" CONTENT="This page is about the meaning of
life, the universe, mankind and plants.">
3.robots(机器人向导):
说明:robots用来告诉搜索机器人哪些页面需要索引,哪些页面不需要索引。
CONTENT的参数有all,none,index,noindex,follow,nofollow。默认是all。
举例:<META NAME="robots" CONTENT="none">
4.author(作者):
说明:标注网页的作者
举例:<META name="AUTHOR" content="ajie,ajie@netease.com">

html标签meta 隐藏来源禁用Referrer的方法

<meta name="referrer" content="no-referrer">

eferrer 的值

  • 空字符串
  • no-referrer
  • no-referrer-when-downgrade
  • same-origin
  • origin
  • strict-origin
  • origin-when-cross-origin
  • strict-origin-when-cross-origin
  • unsafe-url

默认值: 一般浏览器的默认值是 no-referrer-when-downgrade
no-referrer: 所有请求不发送 referrer
no-referrer-when-downgrade: 当请求安全级别下降时不发送 referrer。目前,只有一种情况会发生安全级别下降,即从 HTTPS 到 HTTP。HTTPS 到 HTTP 的资源引用和链接跳转都不会发送 referrer。
same-origin:对于同源的链接和引用,会发送referrer,其他的不会。
origin:会发送 referrer,但只会发送源信息。源信息包括访问协议和域名。
strict-origin:这个相当于 origin 和 no-referrer-when-downgrade 的 AND 合体。即在安全级别下降时不发送 referrer;安全级别未下降时发送源信息。
注意:这个是新加的标准,有些浏览器可能还不支持。
origin-when-cross-origin:这个相当于 origin 和 same-origin 的 OR 合体。同源的链接和引用,会发送完全的 referrer 信息;但非同源链接和引用时,只发送源信息。
strict-origin-when-cross-origin:这个比较复杂,同源的链接和引用,会发送 referrer。安全级别下降时不发送 referrer。其它情况下发送源信息。注意:这个是新加的标准,有些浏览器可能还不支持。
unsafe-url:无论是否发生协议降级,无论是本站链接还是站外链接,统统都发送 Referrer 信息。正如其名,这是最宽松而最不安全的策略。

<meta name="referrer" content="never">

注意:此方法会破坏浏览器原有的 referer 策略,所有从包含了上面标签的页面中发起的请求将不会携带referer。慎用!

参数

referer 的 metedata 属性可设置content属性值为以下集合:

  • never
  • always
  • origin

结果
如果referer-policy的值为never:删除http head中的referer;
如果referer-policy的值为default:如果当前页面使用的是https协议,而正要加载资源使用的是普通的http协议,则将http header中额referer置为空;
如果referer-policy的值origin:只发送origin部分;
如果referer-policy的值为always:不改变http header中的referer的值;

举例
如果页面中包含了如下 meta 标签,所有从当前页面中发起的请求将不会携带 referer:<meta name="referrer" content="never">

如果页面中包含了如下 meta 标签,则从当前页面中发起的 http请求将只携带 origin 部分:<meta name="referrer" content="origin">

原文链接:https://blog.csdn.net/putongdeyang/article/details/123404044

服务器安全笔记

请输入查看密码:

国内常用前端静态资源公共库

转自:https://azpay.cn/post/210.html

BootCDN 是 极兔云 联合 Bootstrap 中文网 共同支持并维护的前端开源项目免费 CDN 服务,致力于为 jQuery、Bootstrap、Vue.js 一样优秀的前端开源项目提供稳定、快速的免费 CDN 加速服务。BootCDN 所收录的开源项目主要同步于 cdnjs 开源项目仓库。

官网:https://www.bootcdn.cn

Staticfile CDN 是由国内优秀的云存储服务商 七牛云 提供存储和加速赞助,技术社区掘金支持。同步国外 cdnjs 源站,同时由国内开源贡献者提交其它有价值的库。

官网:https://www.staticfile.org

360 前端静态资源库是由奇舞团支持并维护的开源项目免费 CDN 服务,支持 HTTPS 和 HTTP/2,囊括上千个前端资源库和 Google 字体库。该站静态资源库数据均同步于 cdnjs 开源项目仓库。

官网:https://cdn.baomitu.com

字节跳动静态资源库支持多协议、资源动态拼接、快速检索及资源的动态更新,安全、稳定、实时。本网站静态资源定期同步自 cdnjs ,有多个文件拼接的功能。

官网:https://cdn.bytedance.com

IIS web.config设置Access-Control-Allow-Origin

来源:https://www.jianshu.com/p/85855a991275

方法一:添加自定义header,缺点是不支持正则,只能设置一个网站,或者*对全部网站开放

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
	<httpProtocol>
	  <customHeaders>
		   <add name="Access-Control-Allow-Origin" value="https://www.domain1.com" />
	  </customHeaders>
	</httpProtocol>
    </system.webServer>
</configuration>

方法二:使用正则,可添加多个,需要安装微软的URL Rewrite组件

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
	<rewrite>
		<outboundRules>
			<rule name="AddCrossDomain">
				<match serverVariable="RESPONSE_Access_Control_Allow_Origin" pattern=".*" />
				<conditions logicalGrouping="MatchAll" trackAllCaptures="true">
					<add input="{HTTP_ORIGIN}" pattern="(https?://((www\.)?domain1\.com|(www\.)?domain2\.cn))" />
				</conditions>
				<action type="Rewrite" value="{C:0}" />
			</rule>
		</outboundRules>
        </rewrite>
    </system.webServer>
</configuration>

2025-07-12 星期六 农历六月十八