近日网络安全威胁和漏洞信息共享平台发布漏洞预警,公布了微软Windows Print Spooler远程代码执行漏洞的风险公告,漏洞CVE编号:CVE-2021-34527。
该漏洞影响范围十分广泛,服务器操作平台Windows Server 2008 R2、Windows Server 2012 R2、Windows Server 2016、Windows Server 2019、Windows Server Version 2004和消费者操作系统平台Windows RT 8.1、Windows 7、Windows 8.1、Windows 10都受此次漏洞影响。
Print Spooler是Windows系统中用于管理打印相关事务的服务,黑客可通过Windows Print Spooler打印机服务执行该漏洞,如操作不当,黑客可利用该漏洞以系统权限运行任意代码,然后可以安装程序,查看、修改或删除数据,或者创建拥有完全用户权限的新账户。
目前微软尚未针对该漏洞发布补丁,网络安全威胁和漏洞信息共享平台给出了临时解决方法:禁用Windows Print Spooler打印机服务或通过组策略禁用入站远程打印。
Bootstrap 4.x modal 组件 events 说明
Events
Bootstrap 的 modal 组件事件说明
Event Type | Description |
show.bs.modal | 当调用 show 方法时立即触发此事件。如果由单击引起,则被单击的元素可用作事件的 relatedTarget 属性。 |
shown.bs.modal | 当 modal 对用户可见时立即触发此事件(CSS 渲染完)。如果由单击引起,则被单击的元素可用作事件的 relatedTarget 属性。 |
hide.bs.modal | 当调用 hide 方法时立即触发此事件。 |
hidden.bs.modal | 当 modal 对用户完全隐藏时触发此事件(CSS 渲染完)。 |
hidePrevented.bs.modal | 当 modal 对用户可见、 backdrop 设置为 static 和 keyboard 设置为 false 时,modal 外单击或者按 Esc 键时触发此事件。 |
CentOS 7 安装 docker-compose
1、运行此命令下载Docker Compose的当前稳定版本:
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
2、给与docker compose执行权限
sudo chmod +x /usr/local/bin/docker-compose
3、创建连接,指向 /usr/bin
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
4、测试安装结果
$ docker-compose --version
docker-compose version 1.29.2, build 5becea4c
如果出现 docker-compose: error while loading shared libraries: libz.so.1: failed to map segment from shared object: Operation not permitted
错误,执行:
mkdir $HOME/tmp
export TMPDIR=$HOME/tmp
为方便起见,创建目录后,可以将“export”语句放在shell 的配置文件中(例如:~/.bash_profile 或~/.bashrc)
alias docker-compose='TMPDIR=${HOME}/tmp docker-compose'
C#.NET 实现Execl中的标准偏差Stedev.s函数
今天遇到了一个需要解决的小小问题,C#中没有对应Execl的标准偏差Stedev.s函数,那么怎么办呢?幸好,我们可以查到标准偏差的计算公式:

其中 x 是样本平均值 AVERAGE (number1,number2,…) n 是样本大小。
那么在C#中对应的代码:
public double Stedevs(IEnumerable<double> values)
{
if (values.Count() < 2)
{
return 0d;
}
var avg = values.Average();
var sum = values.Sum(d => Math.Pow(d - avg, 2));
var result = Math.Sqrt(sum / (values.Count() - 1));
return result;
}
解决 Asp.Net Core 无法加载修改后的页面问题
使用 Asp.net core 开发网站时,不同于以往的Framework,Razor引擎并不能实时编译。因此需要手动添加运行时编译包:Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation。
解决步骤:
1、通过 NuGet 添加 Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation;

2、在 Startup.cs 类文件中添加该模块;
在 Startup.cs 文件中的 ConfigureServices 函数中追加 .AddRazorRuntimeCompilation();
public void ConfigureServices(IServiceCollection services)
{
//追加 .AddRazorRuntimeCompilation();
services.AddControllersWithViews().AddRazorRuntimeCompilation();
}
JavaScript 生成 GUID 字符串
一个简单的js生成GUID字符串方法:
function getGUID() {
function S4() {
return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);
}
return (S4() + S4() + "-" + S4() + "-" + S4() + "-" + S4() + "-" + S4() + S4() + S4());
}
Cloudflare即将弃用的部分HTTP Header
关于 __cfduid Cookie标识即将弃用
从2021年3月31日,在世界标准时间15:00至23:00之间尝试临时删除 cfduid cookie
从2021年5月10日开始,Cloudflare将永久停止在所有HTTP响应上添加 Set-Cookie 设置该HTTP Header标识
最后的 __cfduid cookie将在此之后30天过期
关于移除 cf-request-id 标识
2020年中,Cloudflare引入了一个实验性的HTTP标头cf-request-id。此标头存在于发送给源的请求中,并在响应时返回。经过仔细评估,Cloudflare决定删除cf-request-id标头
cf-request-id现正式进入弃用状态,Cloudflare计划将于2021年6月15日世界标准时(UTC 0):15:00~23:00间进行临时测试移除 cf-request-id标头,在此时间之后,它将还存在一段时间,直到2021年7月1日将其完全移除,在7月1日之后,标头将不再出现在请求和响应中
如果您需要请求的标识符,建议使用CF-RAY标头
腾讯云服务器CentOS安装 Docker CE 非常慢怎么办
Docker 官方提供的 docker 软件包存储库地址为 https://download.docker.com/linux/centos/docker-ce.repo,使用广州云服务器 ping download.docker.com
得到的IP是日本东京,也就意味着 Docker CE 官方源并不在国内,网络稳定性难以保证。
解决方法 1:
修改 /etc/yum.repos.d/docker-ce.repo
vi /etc/yum.repos.d/docker-ce.repo

把 https://download.docker.com/linux/centos/$releasever/$basearch/stable
修改为:
https://mirrors.cloud.tencent.com/docker-ce/linux/centos/$releasever/$basearch/stable
修改结果:

保存。
解决方法 2:
执行命令替换为腾讯源:
sed -i 's/download.docker.com/mirrors.cloud.tencent.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
执行命令进行安装:
yum install docker-ce docker-ce-cli containerd.io -y
即可享受高速下载安装 Docker CE。
Linux 如何设置 Swap(交换分区)的 swappiness 参数
swappiness 的值的大小对如何使用swap分区是有着很大的联系的。swappiness=0 的时候表示最大限度使用物理内存,然后才是 swap空间,swappiness=100 的时候表示积极的使用swap分区,并且把内存上的数据及时搬运到swap空间里面。
linux的基本默认设置为30,具体如下:
[root@localhost ~]# cat /proc/sys/vm/swappiness
30
也就是说,你的内存在使用到100-60=40%的时候,就开始出现有交换分区的使用。大家知道,内存的速度会比磁盘快很多,这样子会加大系统io,同时造的成大量页的换进换出,严重影响系统的性能,所以我们在操作系统层面,要尽可能使用内存,对该参数进行调整。
临时调整的方法如下,我们调成10:
[root@localhost ~]# sysctl vm.swappiness=10
vm.swappiness = 10
[root@localhost ~]# cat /proc/sys/vm/swappiness
10
这只是临时调整的方法,重启后会回到默认设置的.
要想永久调整的话,需要在 /etc/sysctl.conf
修改,加上:
vm.swappiness = 10
快捷命令为:
echo "vm.swappiness=10" >> /etc/sysctl.conf
然后执行以下命令生效:
sudo sysctl -p
这样便完成修改设置!
【高危漏洞】sudo 堆溢出漏洞(CVE-2021-3156),可获取root权限
国外研究团队发现sudo堆溢出漏洞(CVE-2021-3156),漏洞隐藏十年之久,普通用户可以通过利用此漏洞,在默认配置的 sudo 主机上获取root权限。
漏洞描述:
国外研究团队发现sudo堆溢出漏洞(CVE-2021-3156),漏洞隐藏十年之久,普通用户可以通过利用此漏洞,在默认配置的 sudo 主机上获取root权限。漏洞细节已在互联网上公开,腾讯安全专家提醒linux系统管理员尽快修复。
Sudo是一个功能强大的实用程序,大多数(如果不是全部)基于Unix和Linux的操作系统都包含Sudo。
成功利用此漏洞,任何没有特权的用户都可以在易受攻击的主机上获得root特权。研究人员已经在Ubuntu 20.04(Sudo 1.8.31),Debian 10(Sudo 1.8.27)和Fedora 33(Sudo 1.9.2)上独立验证漏洞并开发多种利用漏洞并获得完整的root用户特权,其他操作系统和发行版也可能会被利用。
漏洞危害:本地提权
漏洞级别:高危
受影响的版本:
从1.8.2到1.8.31p2的所有版本
从1.9.0到1.9.5p1的所有稳定版本
修复版本:
Sudo 1.9.5p2或更新版本
检测方法:
以非root账户登录系统运行如下命令:
sudoedit -s
受影响的系统启动程序会提示以下开头的错误作为响应:
sudoedit:
安装补丁后启动会提示以下开头的错误作为响应:
usage:
修复方案:
Redhat等linux发行版已紧急发布修复补丁,腾讯安全专家建议用户尽快升级:
CentOS 系统用户:
1)CentOS 6:默认 sudo 在受影响范围,CentOS官方已停止更新;
2)CentOS 7:升级到 sudo-1.8.23-10.el7_9.1 或更高版本 ;
3)CentOS 8:升级到 sudo-1.8.29-6.el8_3.1或更高版本。
Ubuntu系统用户:
1)Ubuntu 20.04 LTS版本用户,建议升级到如下版本:
sudo – 1.8.31-1ubuntu1.2
sudo-ldap – 1.8.31-1ubuntu1.2
2)Ubuntu 18.04 LTS版本用户,建议升级到如下版本:
sudo – 1.8.21p2-3ubuntu1.4
sudo-ldap – 1.8.21p2-3ubuntu1.4
3)Ubuntu 16.04 LTS版本用户,建议升级到如下版本:
sudo – 1.8.16-0ubuntu1.10
sudo-ldap – 1.8.16-0ubuntu1.10
建议您在升级前做好数据备份工作,避免出现意外。
腾讯安全解决方案:
腾讯T-Sec主机安全(云镜)漏洞库2021-1-27之后的版本,已支持检测sudo堆溢出漏洞(CVE-2021-3156)。