vsftpd搭建中的关键配置

本文最后更新于(2023-4-4 19:38:30),链接可能失效,内容可能难以复现。请注意甄别。
mkdir -p /var/www
useradd -d /var/www/ftp -s /sbin/nologin <ftpuser>
chmod -R 755 /var/www/ftp
passwd <ftpuser>
echo "/sbin/nologin" >> /etc/shells
/etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
local_root=<website_root_dir>
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=NO
userlist_deny=NO
tcp_wrappers=YES
# userlist_file=/etc/vsftpd/user_list
pasv_enable=Yes
pasv_max_port=20000
pasv_min_port=21000

nginx配置ssl证书

本文最后更新于(2023-4-3 09:46:28),链接可能失效,内容可能难以复现。请注意甄别。
server {
# 证书
listen 443 ssl ;
server_name <domain1> <domain2>;
ssl_certificate /etc/nginx/crt/<webname>.pem;
ssl_certificate_key /etc/nginx/crt/<webname>.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;

# HTTPS跳转
server {
listen 80 ;
server_name <domain1> <domain2>;
return 301 https://$server_name$request_uri;
}

禁止跳转到360搜索

本文最后更新于(2023-3-6 09:39:02),链接可能失效,内容可能难以复现。请注意甄别。
[MD] © Sunplace,2023

症状

使用360极速浏览器X,在设置搜索引擎为bing之后,打开新的标签页,是如下界面:
当我们在搜索框里输入任意文字时,会跳出一个下拉菜单显示推荐的词语,这不是bing的推荐词,而是360搜索的推荐词。在推荐词右下角会十分不醒目的显示“搜索联想词由360搜索提供
当我们点击这些推荐词就会直接跳转到360搜索的页面去了。
总而言之,就是鸠占鹊巢。

同样适用于不能修改新标签内容的情况。

如何解决

1.更换浏览器
2. 不更换浏览器(这样有些功能会无法使用,例如更换新标签页的背景)
2.1 打开浏览器安装路径,右键快捷方式-属性-打开文件所在的位置,在我电脑上的路径是:
C:\Users\Administrator\AppData\Local\360ChromeX\Chrome\Application\21.0.1180.0
2.2 将文件夹里的newtab.zip复制到其他位置
2.3 将newtab.zip里的new_tab.html鼠标拖出压缩包
2.4 编辑器(一般是记事本或者其他的代码编辑器)打开new_tab.html
2.5 直接将文件内容全部清除,改为如下内容:

<script>window.location.href='https://cn.bing.com/'</script>
https://cn.bing.com/可以替换为任意搜索引擎首页。

2.6 把修改好后的new_tab.html鼠标拖回压缩包里,如提示是否覆盖原文件,选择是。
2.7 将修改好的newtab.zip复制回之前的浏览器安装目录,并替换掉原有的newtab.zip。
2.8 右键newtab.zip,设置为只读。软件升级或者重装后,此文件会被修改,建议先备份好,之后再重复步骤2.7

离线使用Google Material Icons

本文最后更新于(2023-2-23 09:32:17),链接可能失效,内容可能难以复现。请注意甄别。
引用:https://stackoverflow.com/questions/37270835/how-to-host-material-icons-offline
1. 前往https://github.com/google/material-design-icons/releases下载最新的Releases包。 2. 解压后,将font文件夹整个上传到你的站点根目录。 3. 添加网站对字体格式的支持,在.htaccess文件里加入以下代码:
<FilesMatch ".(eot|ttf|otf|woff|woff2)">
Header set Access-Control-Allow-Origin "*"
</FilesMatch>
4. 创建一个css文件,来定义字体,(最新版本里只有ttf和otf两种格式):

文件结构

@font-face {
font-family: 'Material Icons';
font-style: normal;
font-weight: 400;
src: url(iconfont/MaterialIcons-Regular.eot); /* For IE6-8 */
src: local('Material Icons'),
local('MaterialIcons-Regular'),
url(iconfont/MaterialIcons-Regular.woff2) format('woff2'),
url(iconfont/MaterialIcons-Regular.woff) format('woff'),
url(iconfont/MaterialIcons-Regular.ttf) format('truetype');
}

.material-icons {
font-family: 'Material Icons';
font-weight: normal;
font-style: normal;
font-size: 24px; /* Preferred icon size */
display: inline-block;
line-height: 1;
text-transform: none;
letter-spacing: normal;
word-wrap: normal;
white-space: nowrap;
direction: ltr;

/* Support for all WebKit browsers. */
-webkit-font-smoothing: antialiased;
/* Support for Safari and Chrome. */
text-rendering: optimizeLegibility;

/* Support for Firefox. */
-moz-osx-font-smoothing: grayscale;

/* Support for IE. */
font-feature-settings: 'liga';
}
5. 最后在HTML里调用图标 <span class="material-icons">face</span> 显示效果:
face

Willin Kan的反垃圾评论代码

本文最后更新于(2023-3-5 10:10:14),链接可能失效,内容可能难以复现。请注意甄别。
//Willin Kan的反垃圾评论代码
class anti_spam {
function anti_spam() {
if ( !current_user_can('level_0') ) {
add_action('template_redirect', array($this, 'w_tb'), 1);
add_action('init', array($this, 'gate'), 1);
add_action('preprocess_comment', array($this, 'sink'), 1);
}
}
function w_tb() {
if ( is_singular() ) {
ob_start(create_function('$input','return preg_replace("#textarea(.*?)name=([\"\'])comment([\"\'])(.+)/textarea>#",
"textarea$1name=$2w$3$4/textarea><textarea name=\"comment\" cols=\"100%\" rows=\"4\" style=\"display:none\"></textarea>",$input);') );
}
}
function gate() {
if ( !empty($_POST['w']) && empty($_POST['comment']) ) {
$_POST['comment'] = $_POST['w'];
} else {
$request = $_SERVER['REQUEST_URI'];
$referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '隐瞒';
$IP = isset($_SERVER["HTTP_X_FORWARDED_FOR"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] . ' (透过D理)' : $_SERVER["REMOTE_ADDR"];
$way = isset($_POST['w']) ? '手动操作' : '未经评论表格';
$spamcom = isset($_POST['comment']) ? $_POST['comment'] : null;
$_POST['spam_confirmed'] = "请求: ". $request. "\n来路: ". $referer. "\nIP: ". $IP. "\n方式: ". $way. "\n內容: ". $spamcom. "\n -- 记录成功 --";
}
}
function sink( $comment ) {
if ( !empty($_POST['spam_confirmed']) ) {
if ( in_array( $comment['comment_type'], array('pingback', 'trackback') ) ) return $comment;
//方法一: 直接挡掉, 將 die(); 前面两斜线刪除即可.
die();
//方法二: 标记为 spam, 留在资料库检查是否误判.
//add_filter('pre_comment_approved', create_function('', 'return "spam";'));
//$comment['comment_content'] = "[ 判断这是 Spam! ]\n". $_POST['spam_confirmed'];
}
return $comment;
}
}
$anti_spam = new anti_spam();