我的web.config
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="蜘蛛反弹" stopProcessing="true"> <match url="^(.*)$" ignoreCase="false" /> <conditions logicalGrouping="MatchAny"> <add input="{HTTP_USER_AGENT}" pattern="PetalBot" /> <add input="{HTTP_USER_AGENT}" pattern="Bytespider" /> <add input="{HTTP_USER_AGENT}" pattern="YisouSpider" /> <add input="{HTTP_USER_AGENT}" pattern="Yahoo\!\ Slurp" /> <add input="{HTTP_USER_AGENT}" pattern="EtaoSpider" /> <add input="{HTTP_USER_AGENT}" pattern="Applebot" /> <add input="{HTTP_USER_AGENT}" pattern="EasouSpider" /> <add input="{HTTP_USER_AGENT}" pattern="ia_archiver" /> <add input="{HTTP_USER_AGENT}" pattern="DoCoMo\ Spider" /> <add input="{HTTP_USER_AGENT}" pattern="DotBot" /> <add input="{HTTP_USER_AGENT}" pattern="AhrefsBot" /> <add input="{HTTP_USER_AGENT}" pattern="BDCbot" /> <add input="{HTTP_USER_AGENT}" pattern="DeuSu" /> <add input="{HTTP_USER_AGENT}" pattern="MJ12bot" /> <add input="{HTTP_USER_AGENT}" pattern="SEOkicks" /> <add input="{HTTP_USER_AGENT}" pattern="YandexBot" /> <add input="{HTTP_USER_AGENT}" pattern="DomainCrawler" /> <add input="{HTTP_USER_AGENT}" pattern="Qwantify" /> <add input="{HTTP_USER_AGENT}" pattern="seznambot" /> <add input="{HTTP_USER_AGENT}" pattern="BUbiNG" /> <add input="{HTTP_USER_AGENT}" pattern="aiHitBot" /> <add input="{HTTP_USER_AGENT}" pattern="SiteExplorer" /> <add input="{HTTP_USER_AGENT}" pattern="ExtLinksBot" /> <add input="{HTTP_USER_AGENT}" pattern="spbot" /> <add input="{HTTP_USER_AGENT}" pattern="netEstate\ NE\ Crawler" /> <add input="{HTTP_USER_AGENT}" pattern="AlphaBot" /> <add input="{HTTP_USER_AGENT}" pattern="MegaIndex\.ru" /> <add input="{HTTP_USER_AGENT}" pattern="MauiBot" /> <add input="{HTTP_USER_AGENT}" pattern="Daum" /> <add input="{HTTP_USER_AGENT}" pattern="YaK\/1\.0" /> <add input="{HTTP_USER_AGENT}" pattern="BLEXBot" /> <add input="{HTTP_USER_AGENT}" pattern="SemrushBot" /> <add input="{HTTP_USER_AGENT}" pattern="serpstatbot" /> <add input="{HTTP_USER_AGENT}" pattern="Nimbostratus-Bot" /> <add input="{HTTP_USER_AGENT}" pattern="Adsbot" /> <add input="{HTTP_USER_AGENT}" pattern="vxiaotou-spider" /> <add input="{HTTP_USER_AGENT}" pattern="CensysInspect" /> <add input="{HTTP_USER_AGENT}" pattern="Barkrowler" /> <add input="{HTTP_USER_AGENT}" pattern="DataForSeoBot" /> <add input="{HTTP_USER_AGENT}" pattern="SeekportBot" /> <add input="{HTTP_USER_AGENT}" pattern="coccocbot" /> <add input="{HTTP_USER_AGENT}" pattern="Neevabot" /> <add input="{HTTP_USER_AGENT}" pattern="t3versionsBot" /> <add input="{HTTP_USER_AGENT}" pattern="YaoSouBot" /> </conditions> <action type="Redirect" url="http://{REMOTE_ADDR}/{R:1}" redirectType="Found" /> </rule> <rule name="已导入的规则 2" stopProcessing="true"> <match url="^(.*)$" ignoreCase="false" /> <conditions logicalGrouping="MatchAll"> <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" /> <add input="{R:1}" pattern="\.(hqx|cpt|csv|bin|dms|lha|lzh|exe|class|psd|so|sea|dll|oda|pdf|ai|eps|ps|smi|smil|mif|xls|ppt|pptx|wbxml|wmlc|dcr|dir|dxr|dvi|gtar|gz|gzip|php4|php3|phtml|phps|js|swf|sit|tar|tgz|z|xhtml|xht|zip|rar|mid|midi|mpga|mp2|mp3|aif|aiff|aifc|ram|rm|rpm|ra|rv|wav|bmp|gif|jpeg|jpg|jpe|jp2|j2k|jpf|jpg2|jpx|jpm|mj2|mjp2|png|tiff|tif|heic|heif|css|htm|shtml|txt|text|log|rtx|rtf|xml|xsl|mpeg|mpg|mpe|qt|mov|avi|movie|doc|docx|dot|dotx|xlsx|word|xl|eml|json|pem|p10|p12|p7a|p7c|p7m|p7r|p7s|crt|crl|der|kdb|pgp|gpg|sst|csr|rsa|cer|3g2|3gp|mp4|m4a|f4v|flv|webm|aac|m4u|m3u|xspf|vlc|wmv|au|ac3|flac|ogg|kmz|kml|ics|ical|zsh|7z|7zip|cdr|wma|jar|svg|vcf|srt|vtt|ico|odc|otc|odf|otf|odg|otg|odi|oti|odp|otp|ods|ots|odt|odm|ott|oth)$" negate="true" /> </conditions> <action type="Rewrite" url="index.php/{R:1}" /> </rule> </rules> <outboundRules> <rule name="AddCrossDomain"> <match serverVariable="RESPONSE_Access_Control_Allow_Origin" pattern=".*" /> <conditions logicalGrouping="MatchAll" trackAllCaptures="true"> <add input="{HTTP_ORIGIN}" pattern="(https?://((www\.)?abc\.com|(www\.)?abc\.cn))" /> </conditions> <action type="Rewrite" value="{C:0}" /> </rule> </outboundRules> </rewrite> </system.webServer> </configuration>
最后部分是允许跨站设置
Linux目录详解
转自:https://w3h5.com/post/336.html
我们应该知道 Windows 有一个默认的安装目录专门用来安装软件。Linux 的软件安装目录也应该是有讲究的,遵循这一点,对后期的管理和维护也是有帮助的。
/usr
系统级的目录,可以理解为 C:/Windows/
/usr/lib
可理解为 C:/Windows/System32
/usr/local
用户级的程序目录,可以理解为 C:/Progrem Files/
。用户自己编译的软件默认会安装到这个目录下。
/opt
用户级的程序目录,可以理解为 D:/Software
, opt
有可选的意思,这里可以用于放置第三方大型软件(或游戏),当你不需要时,直接 rm -rf
掉即可。
在硬盘容量不够时,也可将 /opt
单独挂载到其他磁盘上使用。
源码放哪里?
/usr/src
系统级的源码目录。
/usr/local/src
用户级的源码目录。
拓展:
/opt
Here's where optional stuff is put. Trying out the latest Firefox beta? Install it to /opt where you can delete it without affecting other settings. Programs in here usually live inside a single folder whick contains all of their data, libraries, etc.
这里主要存放那些可选的程序。你想尝试最新的firefox测试版吗?那就装到/opt目录下吧,这样,当你尝试完,想删掉firefox的时候,你就可 以直接删除它,而不影响系统其他任何设置。安装到/opt目录下的程序,它所有的数据、库文件等等都是放在同个目录下面。
举个例子:刚才装的测试版firefox,就可以装到/opt/firefox_beta目录下,/opt/firefox_beta目录下面就包含了运 行firefox所需要的所有文件、库、数据等等。要删除firefox的时候,你只需删除/opt/firefox_beta目录即可,非常简单。
/usr/local
This is where most manually installed(ie. outside of your package manager) software goes. It has the same structure as /usr. It is a good idea to leave /usr to your package manager and put any custom scripts and things into /usr/local, since nothing important normally lives in /usr/local.
这里主要存放那些手动安装的软件,即不是通过"新立得"或apt-get安装的软件。它和/usr目录具有相类似的目录结构。让软件包管理器来管理/usr目录,而把自定义的脚本(scripts)放到/usr/local目录下面,我想这应该是个不错的主意。
常用目录及用途
/bin
存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里。
/etc
存放系统管理和配置文件
/home
存放所有用户文件的根目录,是用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示
/usr
用于存放系统应用程序,比较重要的目录/usr/local 本地系统管理员软件安装目录(安装系统级的应用)。这是最庞大的目录,要用到的应用程序和文件几乎都在这个目录。
/usr/x11r6
存放x window的目录
/usr/bin
众多的应用程序
/usr/sbin
超级用户的一些管理程序
/usr/doc
linux文档
/usr/include
linux下开发和编译应用程序所需要的头文件
/usr/lib
常用的动态链接库和软件包的配置文件
/usr/man
帮助文档
/usr/src
源代码,linux内核的源代码就放在/usr/src/linux里
/usr/local/bin
本地增加的命令
/usr/local/lib
本地增加的库
/opt
额外安装的可选应用程序包所放置的位置。一般情况下,我们可以把tomcat等都安装到这里。
/proc
虚拟文件系统目录,是系统内存的映射。可直接访问这个目录来获取系统信息。
/root
超级用户(系统管理员)的主目录(特权阶级^o^)
/sbin
存放二进制可执行文件,只有root才能访问。这里存放的是系统管理员使用的系统级别的管理命令和程序。如ifconfig等。
/dev
用于存放设备文件。
/mnt
系统管理员安装临时文件系统的安装点,系统提供这个目录是让用户临时挂载其他的文件系统。
/boot
存放用于系统引导时使用的各种文件
/lib
存放跟文件系统中的程序运行所需要的共享库及内核模块。共享库又叫动态链接共享库,作用类似windows里的.dll文件,存放了根文件系统程序运行所需的共享文件。
/tmp
用于存放各种临时文件,是公用的临时文件存储点。
/var
用于存放运行时需要改变数据的文件,也是某些大文件的溢出区,比方说各种服务的日志文件(系统启动日志等。)等。
/lost+found
每个分区默认都有一个 lost+found
目录,用来存放 fsck 过程中部分修复的文件的。
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