个人随身录

记录身边的一些小事。。

字符串方法

剔除字符串中所有空格

1
2
3
 const trim = (str) => {
return str.replace(/(^\s*)|(\s*$)/g, '')
}

案例:

1
2
3
4
5
6
let demo = ' a b c d '
trim(demo)

//输出
console.log(demo)
>>> abcd

随机生成一个UUID

1
2
3
4
5
6
7
function S4() {
return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1)
}

function guid() {
return (S4() + S4() + '-' + S4() + '-' + S4() + '-' + S4() + '-' + S4() + S4() + S4())
}

驼峰字符变量转下划线变量

1
2
3
4
5
6
7
/**
* @param str 需要转下划线的驼峰字符串
* @returns 字符串下划线
*/
const humpToUnderline = (str) => {
return str.replace(/([A-Z])/g, '-$1').toLowerCase()
}
阅读全文 »

项目下创建prettier.config.js文件,填入以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
/** 配置项文档:https://prettier.io/docs/en/configuration.html */
module.exports = {
/* prettier的配置 */
printWidth: 120, // 超过多少换行, 默认 80
tabWidth: 2, // 指定每个缩进级别的空格数。默认 2
useTabs: true, // 使用制表符而不是空格缩进。 默认 false
semi: false, // 句尾添加分号。 默认 true
singleQuote: true, // 使用单引号而不是双引号。默认false
/*
"as-needed"- 仅在需要时在对象属性周围添加引号。
"consistent"- 如果对象中的至少一个属性需要引号,请引用所有属性。
"preserve"- 尊重对象属性中引号的输入使用
*/
quoteProps: 'as-needed', // 默认 “as-needed”
jsxSingleQuote: false, // 在 JSX 中使用单引号而不是双引号。默认false
/**
在多行逗号分隔的句法结构中尽可能打印结尾逗号。(例如,单行数组永远不会有尾随逗号。)
"es5"- 在 ES5 中有效的尾随逗号(对象、数组等)。TypeScript 中的类型参数中没有尾随逗号。
"none"- 没有尾随逗号。
"all"- 尽可能使用尾随逗号(包括函数参数和调用)。要运行,以这种方式格式化的 JavaScript 代码需要一个支持 ES2017(Node.js 8+ 或现代浏览器)或下级编译的引擎。这还可以在 TypeScript 中的类型参数中启用尾随逗号(自 2018 年 1 月发布的 TypeScript 2.7 起支持)
*/
trailingComma: 'es5', // 默认“es5”
bracketSpacing: true, // 在对象,数组括号与文字之间加空格 "{ foo: bar }"。 默认 true
/*
将 > 多行 HTML(HTML、JSX、Vue、Angular)元素放在最后一行的末尾,而不是单独放在下一行(不适用于自闭合元素)
1.true- 例子:

<button
className="prettier-class"
id="prettier-id"
onClick={this.handleClick}>
Click Here
</button>


2.false-例子

<button
className="prettier-class"
id="prettier-id"
onClick={this.handleClick}
>
Click Here
</button>


**/
bracketSameLine: false, // 默认false
/*
"always"- 始终包括括号。例子:(x) => x
"avoid"- 尽可能省略括号。例子:x => x
*/
arrowParens: 'avoid', // (x) => {} 箭头函数参数只有一个时是否要有小括号。默认:“always”
/*
"always"- 如果超过宽度,则换行。
"never"- 将每个展开成一行。
"preserve"- 什么都不做,保持原样。首次在 v1.9.0 中可用
*/
proseWrap: 'preserve', // 默认值 "preserve"。因为使用了一些折行敏感型的渲染器(如GitHub comment)而按照markdown文本样式进行折行
/*
指定 HTML、Vue、Angular 和 Handlebars 的全局空格敏感性
"css"- 尊重 CSSdisplay属性的默认值。
"strict"- 所有标记周围的空白(或缺少空白)被认为是重要的。
"ignore"- 所有标签周围的空白(或缺少它)被认为是微不足道的。
*/
htmlWhitespaceSensitivity: 'ignore', // 默认 “css”
/*
首次在 v1.19.0 中可用

是否缩进 Vue 文件中的代码<script>和<style>标签。有些人(比如Vue 的创建者)不会缩进来保存缩进级别,但这可能会破坏编辑器中的代码折叠。

false- 不要在 Vue 文件中缩进脚本和样式标签。
true- 在 Vue 文件中缩进脚本和样式标签。
*/
vueIndentScriptAndStyle: false, // 默认false
/*
"lf"– 仅换行 ( \n),常见于 Linux 和 macOS 以及 git repos 内部
"crlf"- 回车 + 换行字符 ( \r\n),常见于 Windows
"cr"- 仅回车字符 ( \r),很少使用
"auto"- 保持现有的行尾(一个文件中的混合值通过查看第一行之后使用的内容进行标准化)
*/
endOfLine: 'auto', // 结尾是 \n \r \n\r auto
/*
首次在 v2.1.0 中提供

控制 Prettier 是否格式化文件中嵌入的引用代码。

当 Prettier 识别出看起来你已经放置了一些代码的情况时,它知道如何在另一个文件中的字符串中格式化,例如在 JavaScript 中带有标签的标记模板中html或 Markdown 中的代码块中,默认情况下它会尝试格式化该代码。

有时这种行为是不可取的,特别是在您可能不打算将字符串解释为代码的情况下。此选项允许您在默认行为 ( auto) 和完全禁用此功能 ( off) 之间切换。

有效选项:

"auto"- 如果 Prettier 可以自动识别嵌入代码,请格式化它。
"off"- 永远不要自动格式化嵌入代码。
*/
};

阅读全文 »

前言:某些情况下,我们可能需要给个网站地址让了解的人去访问,这个地址可能访问的信息比较机密,而nginx代理的这个地址可能不是个服务,而是个静态的文件啥的,为了防止第三方能够访问,那么该地址必须授权才能访问是很有必要的了!

1、准备工作

在安装了Nginx环境的服务器上安装httpd插件,这个插件是登录授权必不可少的工具

1
$ yum install -y httpd

2、实例化需要的登录账号和密码

  • 创建一个文件夹存放实例化后的登录账号和密码

    (根据个人情况去实例化,方便好记就行)我这里就创建在Nginx下,毕竟是Nginx使用的文件

阅读全文 »

前言:最近

配置apt源为阿里云

1、备份你的旧源文件:

1
$ sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

2、检查系统内核版本号

1
$ sudo lsb_release -a

得到如下回显:

1
2
3
4
5
6
root@uosoubuntu:~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.1 LTS
Release: 22.04
Codename: jammy

这里的jammy就是当前服务器的版本号

阅读全文 »

IDEA 相关软件整理

最近发现IDEA相关软件在2021.2.2版本以上的安装后必须登录才能免费使用30天,导致部分情况下软件无法在某些科学手段下一直重复使用30天,这里整理了相关需要使用的软件下载地址,方便自己使用,毕竟,好记性不如烂笔头

编程语言 软件名称 下载地址
HTML大前端 WebStorm https://download.jetbrains.com.cn/webstorm/WebStorm-2021.2.2.exe
Java idea https://download.jetbrains.com.cn/idea/ideaIU-2021.2.2.exe
C语言 CLion https://download.jetbrains.com.cn/cpp/CLion-2021.2.2.exe
Python pycharm-professional https://download.jetbrains.com.cn/python/pycharm-professional-2022.1.exe
PHP PhpStorm https://download.jetbrains.com.cn/webide/PhpStorm-2021.2.2.exe

以上地址已测试,都能使用

有些时候,可能忘记重置软件,导致卸载软件不干净无法享用30天,需要删除以下目录对应软件文件

1
2
3
4
5
6
C:\user\${用户名称}\ideaProjects\
C:\Users\${用户名称}\AppData\Roaming\JetBrains
C:\Users\Public\.jetbrains

C:\\Program Files\\JetBrains
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\JetBrains\

前言:最近负责维护和迭代一套信息发布平台的网站,这些网站呢,属于一些学校或者是机构下面在使用,可能是为了某些需要吧,时不时的反馈一下操蛋的安全漏洞上的问题,这里整理罗列了一些出来,方便以后查找,毕竟,好记性不如烂笔头

1、一些不知道算不算漏洞的漏洞,反正看着很紧急

1.1、检测到目标站点存在javascript框架库漏洞

处理:将jquery版本升级到最新的版本

1.2、jQuery 存在 XSS 漏洞

处理:将jquery版本升级到最新的版本,同时通过隐藏jquery版本号的形式进行处理

2、Nginx上代理配置漏洞

分别是:

  • 检测到目标X-Content-Type-Options响应头缺失
  • 检测到目标X-XSS-Protection响应头缺失
  • 检测到目标Content-Security-Policy响应头缺失
  • 检测到目标X-Permitted-Cross-Domain-Policies响应头缺失
  • 检测到目标X-Download-Options响应头缺失
  • 检测到目标Strict-Transport-Security响应头缺失

看看,这不看不知道,原来网络上还有这些请求头配置,好在,这些都可以在Nginx上配置解决,Nginx配置如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
location / {
。。。。
## nginx代理配置
。。。。

# 相关安全漏洞响应头
# 检测到目标 X-Content-Type-Options响应头缺失 这个暂时不开启,不然部分banner无法使用
#add_header X-Content-Type-Options "nosniff";
# 检测到目标 X-XSS-Protection响应头缺失
add_header X-XSS-Protection "1; mode=block";
# 检测到目标 Content-Security-Policy响应头缺失
add_header Content-Security-Policy "default-src 'self' http: https://* data: blob: 'unsafe-eval' 'unsafe-inline';child-src 'none' " always;
# 检测到目标 Referrer-Policy响应头缺失
add_header Referrer-Policy "no-referrer-when-downgrade" always;
# 检测到目标 X-Permitted-Cross-Domain-Policies响应头缺失
add_header X-Permitted-Cross-Domain-Policies none;
# 检测到目标 X-Download-Options响应头缺失
add_header X-Download-Options noopen;
# 检测到目标 Strict-Transport-Security响应头缺失
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
}

3、Tomcat相关配置漏洞提示

3.1、检测到Apache Tomcat应用服务器后台管理程序

阅读全文 »

前期准备工作

因为Jenkins是通过Java开发而来,因此前期我们需要在系统中安装Java环境

jenkins下载地址:https://www.jenkins.io/download/

注意:jenkins和有不同的JDK版本,注意版本兼容:

相关兼容信息访问:War Jenkins Packages

检查系统中是否包含有java环境:

1
2
3
4
5
6
7
8
9
10
11
12
13
## 先确认以前有没有安装过
$ rpm -qa |grep java
$ rpm -qa |grep jdk
$ rpm -qa |grep gcj
## 如果没有输入信息表示没有安装。

## 如果安装可以使用rpm -qa | grep java | xargs rpm -e --nodeps 批量卸载所有带有Java的文件 这句命令的关键字是java

## 首先检索包含java的列表
$ yum list java*

# 检索1.8的列表
$ yum list java-1.8*

安装并校验:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
## 安装1.8.0的所有文件 默认jre jdk 安装路径是/usr/lib/jvm 下面
$ yum install java-1.8.0-openjdk* -y

## 使用命令检查是否安装成功
$ java -version

## 查询java安装路径
## 先用which java查询到执行路径 得到 /usr/bin/java
$ which java

## 再用ls -l查询到具体的路径
$ ls -l /usr/bin/java

## 得到
lrwxrwxrwx 1 root root 22 Jan 7 11:30 /usr/bin/java -> /etc/alternatives/java

## 继续使用ls -l 查看
$ ls -l /etc/alternatives/java

## 得到下面的地址就是java安装目录 即 /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-1.el7_9.x86_64
lrwxrwxrwx 1 root root 73 Jan 7 11:30 /etc/alternatives/java -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-1.el7_9.x86_64/jre/bin/java


## 校验java环境
$ java

$ javac
阅读全文 »

查看Linux版本

  • 查看系统版本 1

    1
    2
    3
    4
    5
    6
    $ cat /proc/version

    # 回显
    Linux version 3.10.0-514.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) ) #1 SMP Tue Nov 22 16:42:41 UTC 2016

    # 我们可以看到该系统使用的是Linux 3.10.0 内核的64为操作系统。GCC 为GUN 编译器集合,采用4.8.5版本。
  • 查看系统版本 2

    1
    2
    3
    4
    5
    $ cat /etc/redhat-release

    # 回显
    CentOS Linux release 7.3.1611 (Core)

  • 查看系统版本 3

    1
    2
    3
    4
    5
    6
    7
    8
    $ lsb_release -a

    # 回显
    LSB Version: :core-4.1-amd64:core-4.1-noarch
    Distributor ID: CentOS
    Description: CentOS Linux release 7.8.2003 (Core)
    Release: 7.8.2003
    Codename: Core
  • 查看系统版本 4

    1
    2
    3
    4
    $ uname -a

    # 回显
    Linux jnssd 3.10.0-1127.19.1.el7.x86_64 #1 SMP Tue Aug 25 17:23:54 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
    阅读全文 »

前言:前面做服务器迁移的时候,没注意服务中有使用文本绘制图片的业务,结果最近调试某个功能的时候随手点击试了一下,结果发现使用中文字符串的时候绘制的图片全是乱码方块,这里记录一下如何处理该问题以便查阅

这种情况都是因为Linux上面没有该字体的原因导致的,因此我们只需要将需要的字体上传或安装到相应的位置即可!

问题中需要的字体文件下载地址:simsun.ttc字体下载如果不放心,可在Windows系统中C:\Windows\Fonts目录下找到对应字体上传即可!

1、如果Linux上面使用的是压缩版的JDK环境

在JDK解压目录下找到fonts文件夹,将下载或找到的字体文件上传上去,重启Java程序即可

image-20220214162511714

上传后的文件:

image-20220214162706447

重启Java程序即可

阅读全文 »
0%