网站日志中发现大量的avatar.php的访问消耗流量如何解决? New
版本还是比较旧的Discuz! X3.4 R20230520,发现流量异常高,用的宝塔(没买Nginx防火墙),一看网站日志中大量的“IP地址- - [日期] "GET /uc_server/avatar.php?uid=[各种uid数值]&size=small HTTP/2.0" 301 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36"”我知道答案 回答被采纳将会获得1 贡献 已有13人回答 /uc_server/avatar.php 是对头像的访问,一个回复比较多的热门帖子一打开就会对10层楼的头像进行加载,访问数量大本身没有什么问题。
301永久重定向也一般看作正常,不过你这个没有 referrer 比较可疑。看看除了301还有没有别的错误码。
我的网站攻击入口是首页热搜链接,全是503错误码,原来用 Fail2ban 见一个封一个,现在被我关了热搜,然后针对热搜的所有访问被我挡在 Nginx 层,现在清静多了。参考:
Fail2ban 封禁了 47700 个IP! - 站长杂谈
https://www.dismall.com/thread-27539-1-1.html 可以改成静态头像模式会好点 如果流量异常高,那就改成静态的看下,或者增加防火墙。 抽了一个ip看了下正常和错误日志,这是被攻击了吧- -|||
攻击者IP - - "GET / HTTP/1.1" 301 162 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36"
攻击者IP - - "GET / HTTP/2.0" 200 11914 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36"
攻击者IP - - "GET /sslogo.gif HTTP/1.1" 301 162 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36"
攻击者IP - - "GET /uc_server/avatar.php?uid=184544&size=small HTTP/2.0" 301 230 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36"
攻击者IP - - "GET /uc_server/avatar.php?uid=184540&size=small HTTP/2.0" 301 230 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36"
攻击者IP - - "GET /uc_server/avatar.php?uid=184543&size=small HTTP/2.0" 301 230 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36"
攻击者IP - - "GET /uc_server/avatar.php?uid=184542&size=small HTTP/2.0" 301 230 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36"
攻击者IP - - "GET /uc_server/avatar.php?uid=184539&size=small HTTP/2.0" 301 230 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36"
攻击者IP - - "GET /uc_server/avatar.php?uid=184545&size=small HTTP/2.0" 301 230 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36"
攻击者IP - - "GET /uc_server/avatar.php?uid=184541&size=small HTTP/2.0" 301 230 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36"
2025/12/14 12:13:33 3997#0: *461236 FastCGI sent in stderr: "PHP message: PHP Warning: file_put_contents(./data/ip_count/7f40f4a9460074a55fb7e668184d9cbc.txt): failed to open stream: No such file or directory in /www/wwwroot/www.我的url/uc_server/avatar.php on line 33" while reading response header from upstream, client: 攻击者IP, server: www.我的url, request: "GET /uc_server/avatar.php?uid=184544&size=small HTTP/2.0", upstream: "fastcgi://unix:/tmp/php-cgi-74.sock:", host: "www.我的url"
2025/12/14 12:13:33 3997#0: *461236 FastCGI sent in stderr: "PHP message: PHP Warning: file_put_contents(./data/ip_count/7f40f4a9460074a55fb7e668184d9cbc.txt): failed to open stream: No such file or directory in /www/wwwroot/www.我的url/uc_server/avatar.php on line 33" while reading response header from upstream, client: 攻击者IP, server: www.我的url, request: "GET /uc_server/avatar.php?uid=184540&size=small HTTP/2.0", upstream: "fastcgi://unix:/tmp/php-cgi-74.sock:", host: "www.我的url"
2025/12/14 12:13:33 3997#0: *461236 FastCGI sent in stderr: "PHP message: PHP Warning: file_put_contents(./data/ip_count/7f40f4a9460074a55fb7e668184d9cbc.txt): failed to open stream: No such file or directory in /www/wwwroot/www.我的url/uc_server/avatar.php on line 33" while reading response header from upstream, client: 攻击者IP, server: www.我的url, request: "GET /uc_server/avatar.php?uid=184543&size=small HTTP/2.0", upstream: "fastcgi://unix:/tmp/php-cgi-74.sock:", host: "www.我的url"
2025/12/14 12:13:33 3997#0: *461236 FastCGI sent in stderr: "PHP message: PHP Warning: file_put_contents(./data/ip_count/7f40f4a9460074a55fb7e668184d9cbc.txt): failed to open stream: No such file or directory in /www/wwwroot/www.我的url/uc_server/avatar.php on line 33" while reading response header from upstream, client: 攻击者IP, server: www.我的url, request: "GET /uc_server/avatar.php?uid=184542&size=small HTTP/2.0", upstream: "fastcgi://unix:/tmp/php-cgi-74.sock:", host: "www.我的url"
2025/12/14 12:13:33 3997#0: *461236 FastCGI sent in stderr: "PHP message: PHP Warning: file_put_contents(./data/ip_count/7f40f4a9460074a55fb7e668184d9cbc.txt): failed to open stream: No such file or directory in /www/wwwroot/www.我的url/uc_server/avatar.php on line 33" while reading response header from upstream, client: 攻击者IP, server: www.我的url, request: "GET /uc_server/avatar.php?uid=184539&size=small HTTP/2.0", upstream: "fastcgi://unix:/tmp/php-cgi-74.sock:", host: "www.我的url"
2025/12/14 12:13:33 3997#0: *461236 FastCGI sent in stderr: "PHP message: PHP Warning: file_put_contents(./data/ip_count/7f40f4a9460074a55fb7e668184d9cbc.txt): failed to open stream: No such file or directory in /www/wwwroot/www.我的url/uc_server/avatar.php on line 33" while reading response header from upstream, client: 攻击者IP, server: www.我的url, request: "GET /uc_server/avatar.php?uid=184545&size=small HTTP/2.0", upstream: "fastcgi://unix:/tmp/php-cgi-74.sock:", host: "www.我的url"
2025/12/14 12:13:33 3997#0: *461236 FastCGI sent in stderr: "PHP message: PHP Warning: file_put_contents(./data/ip_count/7f40f4a9460074a55fb7e668184d9cbc.txt): failed to open stream: No such file or directory in /www/wwwroot/www.我的url/uc_server/avatar.php on line 33" while reading response header from upstream, client: 攻击者IP, server: www.我的url, request: "GET /uc_server/avatar.php?uid=184541&size=small HTTP/2.0", upstream: "fastcgi://unix:/tmp/php-cgi-74.sock:", host: "www.我的url" 土鸡瓦犬 发表于 2025-12-14 12:48
抽了一个ip看了下正常和错误日志,这是被攻击了吧- -|||
攻击者IP - - " ...
建议:在Nginx添加location规则:
plain
▼ 展开
.ce-block { margin-bottom: 20px;}.ce-block__content,.ce-toolbar__content { /* max-width:calc(100% - 50px) */ margin-left: auto; margin-right: auto;}.image-tool {--bg-color: #cdd1e0;--front-color: #388ae5;--border-color: #e8e8eb;}.image-tool__image { border-radius: 3px; overflow: hidden; margin-bottom: 10px;}.image-tool__image-picture { max-width: 100%; vertical-align: bottom; display: block; margin-left: auto; margin-right: auto; }.image-tool__image-preloader { width: 50px; height: 50px; border-radius: 50%; background-size: cover; margin: auto; position: relative; background-color: #cdd1e0; background-position: center center; }.image-tool__image-preloader::after { content: ""; position: absolute; z-index: 3; width: 60px; height: 60px; border-radius: 50%; border: 2px solid #cdd1e0; border-top-color: #388ae5; left: 50%; top: 50%; margin-top: -30px; margin-left: -30px; animation: image-preloader-spin 2s infinite linear; box-sizing: border-box; }.image-tool__caption::before { position: absolute !important; content: attr(data-placeholder); color: #707684; font-weight: normal; display: none; }.image-tool__caption:empty::before { display: block; }.image-tool__caption:empty:focus::before { display: none; }.image-tool--empty .image-tool__image { display: none; }.image-tool--empty .image-tool__caption, .image-tool--loading .image-tool__caption { display: none; }.image-tool .cdx-button { display: flex; align-items: center; justify-content: center;}.image-tool .cdx-button svg { height: auto; margin: 0 6px 0 0; }.image-tool--filled .cdx-button { display: none; }.image-tool--filled .image-tool__image-preloader { display: none; }.image-tool--loading .image-tool__image { min-height: 200px; display: flex; border: 1px solid #e8e8eb; background-color: #fff; }.image-tool--loading .image-tool__image-picture { display: none; }.image-tool--loading .cdx-button { display: none; }/** * Tunes * ---------------- */.image-tool--withBorder .image-tool__image { border: 1px solid #e8e8eb; }.image-tool--withBackground .image-tool__image { padding: 15px; background: #cdd1e0; }.image-tool--withBackground .image-tool__image-picture { max-width: 60%; margin: 0 auto; }.image-tool--stretched .image-tool__image-picture { width: 100%; }.image-tool__caption { text-align: center; font-size: 14px; color: #a3a3a3; }@keyframes image-preloader-spin {0% { transform: rotate(0deg);}100% { transform: rotate(360deg);}}.ce-block { margin-bottom: 20px;}.ce-block__content,.ce-toolbar__content { /* max-width:calc(100% - 50px) */ margin-left: auto; margin-right: auto;}.ce-paragraph { line-height: 1.6em; outline: none; text-indent: 2em; font-size: 16px;}.ce-paragraph--right { text-align: right;}.ce-paragraph--center { text-align: center;}.ce-paragraph--left { text-align: left;}.ce-paragraph--justify { text-align: justify;}.ce-paragraph-text-indent { text-align: justify;}.ce-paragraph:empty::before{content: attr(data-placeholder);color: #707684;font-weight: normal;opacity: 0;}/** Show placeholder at the first paragraph if Editor is empty */.codex-editor--empty .ce-block:first-child .ce-paragraph:empty::before {opacity: 1;}.codex-editor--toolbox-opened .ce-block:first-child .ce-paragraph:empty::before,.codex-editor--empty .ce-block:first-child .ce-paragraph:empty:focus::before {opacity: 0;}.ce-paragraph p:first-of-type{ margin-top: 0;}.ce-paragraph p:last-of-type{ margin-bottom: 0;}.svg-icon { width: 1em; height: 1em;}.svg-icon path,.svg-icon polygon,.svg-icon rect { fill: #4691f6;}.svg-icon circle { stroke: #4691f6; stroke-width: 1;}.ce-block { margin-bottom: 20px;}.ce-block__content,.ce-toolbar__content { /* max-width:calc(100% - 50px) */ margin-left: auto; margin-right: auto; position: relative;}/* 主容器 */.editorjs-codeFlask_Wrapper { border: 1px solid #dcdfe6; border-radius: 5px; background-color: #f6f8fa; margin-bottom: 10px; position: relative; transition: all 0.3s ease; width: 100%; min-height: 100px; overflow: hidden;}/* 标题栏 */.editorjs-codeFlask_Header { display: flex; justify-content: flex-end; align-items: center; padding: 8px 12px; background-color: #e9ecef; border-bottom: 1px solid #dcdfe6; position: relative; z-index: 0; /* 从10降低到2 */}/* 语言显示 */.editorjs-codeFlask_LangDisplay { padding: 2px 8px; background-color: #409eff; color: white; border-radius: 3px; font-size: 12px; font-weight: 500; position: absolute; left: 12px; top: 50%; transform: translateY(-50%);}/* 内容容器 - 禁止纵向滚动 */.editorjs-codeFlask_ContentContainer { position: relative; min-height: 100px; overflow-x: hidden; /* 禁止横向滚动 */ overflow-y: hidden; transition: height 0.3s ease;}/* 编辑器容器 - 禁止纵向滚动 */.editorjs-codeFlask_Editor { position: relative; min-height: 100px; overflow-x: hidden; /* 禁止横向滚动 */ overflow-y: hidden; transition: height 0.3s ease;}/* 底部按钮容器 - 优化为更简洁的样式 */.editorjs-codeFlask_BottomButtonContainer { display: flex; justify-content: center; align-items: center; padding: 4px; background-color: #f8f9fa; border-top: 1px solid #e9ecef; position: relative; z-index: 0;}/* 底部横向折叠/展开按钮 - 优化样式,使其更融入设计 */.editorjs-codeFlask_BottomToggle { width: 100%; background-color: transparent; color: #606266; border: none; border-radius: 4px; padding: 6px 12px; font-size: 12px; font-weight: 400; cursor: pointer; transition: all 0.3s ease; display: flex; align-items: center; justify-content: center; gap: 4px; text-align: center; position: relative;}.editorjs-codeFlask_BottomToggle:hover { background-color: #e9ecef; color: #409eff;}.editorjs-codeFlask_BottomToggle:active { background-color: #dee2e6;}.editorjs-codeFlask_BottomToggle .toggle-icon { font-size: 11px; transition: transform 0.3s ease;}/* 展开按钮(显示"展开"文本)上边缘添加渐变虚化效果 */.editorjs-codeFlask_BottomToggle:has(span.toggle-icon:contains("▲"))::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 6px; background: linear-gradient(to bottom, rgba(248, 249, 250, 0) 0%, rgba(248, 249, 250, 1) 100%); pointer-events: none;}/* 展开按钮(显示"展开"文本)上边缘添加渐变虚化效果 *//* 删除不被广泛支持的:contains()选择器 */.editorjs-codeFlask_BottomToggle.expand-mode::before { content: ''; position: absolute; top: -60px; left: 0; right: 0; height: 60px; background: linear-gradient(to bottom, rgb(255 255 255 / 0%) 0%, rgba(248, 249, 250, 1) 100%); pointer-events: none;}/* CodeFlask 主容器样式 */.editorjs-codeFlask_Editor .codeflask { position: relative; background: #fafafa; border-radius: 0 0 4px 4px; min-height: 100px; overflow-x: hidden; /* 禁止横向滚动 */ overflow-y: hidden; font-family: 'Consolas', 'Monaco', 'Courier New', monospace;}/* 行号容器 */.editorjs-codeFlask_Editor .codeflask.codeflask--has-line-numbers:before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 40px; background-color: #f5f5f5; border-right: 1px solid #e0e0e0; z-index: 0;}/* 行号 */.editorjs-codeFlask_Editor .codeflask__lines { position: absolute; left: 0; top: 0; bottom: 0; width: 40px; padding: 10px 0; background-color: #f5f5f5; border-right: 1px solid #e0e0e0; z-index: 0; font-family: 'Consolas', 'Monaco', 'Courier New', monospace; font-size: 14px; line-height: 21px; color: #666; text-align: right; user-select: none; overflow: hidden;}.editorjs-codeFlask_Editor .codeflask__lines__line { padding-right: 8px;}/* 文本区域 - 输入框 */.editorjs-codeFlask_Editor .codeflask__textarea { position: absolute; top: 0; left: 0; width: 100%; height: 100%; padding: 10px; border: none; background: transparent; color: transparent; caret-color: #333; resize: none; font-family: 'Consolas', 'Monaco', 'Courier New', monospace; font-size: 14px; line-height: 21px; z-index: 1; overflow-x: hidden; /* 禁止横向滚动 */ overflow-y: hidden; white-space: pre-wrap; /* 自动换行 */ tab-size: 4; outline: none;}/* 添加选中文本样式 */.editorjs-codeFlask_Editor .codeflask__textarea::selection { background-color: #b3d4fc; color: #333;}.editorjs-codeFlask_Editor .codeflask__textarea::-moz-selection { background-color: #b3d4fc; color: #333;}/* 代码预览区域 */.editorjs-codeFlask_Editor .codeflask__pre { position: absolute; top: 0; left: 0; width: 100%; /* 确保宽度不超出容器 */ height: 100%; padding: 10px; margin: 0; border: none; background: transparent; font-family: 'Consolas', 'Monaco', 'Courier New', monospace; font-size: 14px; line-height: 21px; z-index: 0; overflow-x: hidden; /* 禁止横向滚动 */ overflow-y: hidden; white-space: pre-wrap; /* 自动换行 */ pointer-events: none;}/* 代码高亮区域 */.editorjs-codeFlask_Editor .codeflask__code { display: block; font-family: 'Consolas', 'Monaco', 'Courier New', monospace; font-size: 14px; line-height: 21px; color: #333; white-space: pre-wrap; /* 自动换行 */ tab-size: 4; overflow: visible;}/* 语法高亮样式 - 确保Prism.js样式正确应用 */.editorjs-codeFlask_Editor .codeflask__code { background: transparent !important;}/* 通用语法高亮token样式 */.editorjs-codeFlask_Editor .token.comment,.editorjs-codeFlask_Editor .token.prolog,.editorjs-codeFlask_Editor .token.doctype,.editorjs-codeFlask_Editor .token.cdata { color: #708090;}.editorjs-codeFlask_Editor .token.punctuation { color: #999;}.editorjs-codeFlask_Editor .token.namespace { opacity: 0.7;}.editorjs-codeFlask_Editor .token.property,.editorjs-codeFlask_Editor .token.tag,.editorjs-codeFlask_Editor .token.boolean,.editorjs-codeFlask_Editor .token.number,.editorjs-codeFlask_Editor .token.constant,.editorjs-codeFlask_Editor .token.symbol,.editorjs-codeFlask_Editor .token.deleted { color: #905;}.editorjs-codeFlask_Editor .token.selector,.editorjs-codeFlask_Editor .token.attr-name,.editorjs-codeFlask_Editor .token.string,.editorjs-codeFlask_Editor .token.char,.editorjs-codeFlask_Editor .token.builtin,.editorjs-codeFlask_Editor .token.inserted { color: #690;}.editorjs-codeFlask_Editor .token.operator,.editorjs-codeFlask_Editor .token.entity,.editorjs-codeFlask_Editor .token.url,.editorjs-codeFlask_Editor .language-css .token.string,.editorjs-codeFlask_Editor .style .token.string { color: #9a6e3a; background: hsla(0, 0%, 100%, 0.5);}.editorjs-codeFlask_Editor .token.atrule,.editorjs-codeFlask_Editor .token.attr-value,.editorjs-codeFlask_Editor .token.keyword { color: #07a;}.editorjs-codeFlask_Editor .token.function,.editorjs-codeFlask_Editor .token.class-name { color: #dd4a68;}.editorjs-codeFlask_Editor .token.regex,.editorjs-codeFlask_Editor .token.important,.editorjs-codeFlask_Editor .token.variable { color: #e90;}/* 复制按钮样式 */.editorjs-codeFlask_CopyButton { background-color: #409eff; color: white; border: none; border-radius: 3px; padding: 6px 12px; margin-right: 8px; font-size: 12px; cursor: pointer; transition: background-color 0.2s ease; display: flex; align-items: center; justify-content: center; min-width: 28px; height: 28px;}.editorjs-codeFlask_CopyButton:hover { background-color: #66b1ff;}.editorjs-codeFlask_CopyButton.copied { background-color: #67c23a;}/* 折叠/展开按钮样式 */.editorjs-codeFlask_Toggle { background-color: #909399; color: white; border: none; border-radius: 3px; padding: 0 8px; font-size: 12px; cursor: pointer; transition: background-color 0.2s ease; display: flex; align-items: center; justify-content: center; min-width: 28px; height: 28px; font-weight: bold;}.editorjs-codeFlask_Toggle:hover { background-color: #a6a9ad;}/* 响应式调整 */@media (max-width: 768px) { .editorjs-codeFlask_Header { padding: 6px 8px; } .editorjs-codeFlask_Editor .codeflask__textarea, .editorjs-codeFlask_Editor .codeflask__pre, .editorjs-codeFlask_Editor .codeflask__code { font-size: 13px; line-height: 19px; padding: 8px; } .editorjs-codeFlask_Editor .codeflask.codeflask--has-line-numbers:before { width: 35px; } .editorjs-codeFlask_Editor .codeflask__lines { width: 35px; font-size: 12px; }}/* 滚动条样式 - 完全隐藏纵向滚动条 */.editorjs-codeFlask_Wrapper ::-webkit-scrollbar { width: 0;/* 纵向滚动条宽度为0 */ height: 6px;/* 横向滚动条保持6px宽度 */}.editorjs-codeFlask_Wrapper ::-webkit-scrollbar-track { background: transparent; border-radius: 0;}.editorjs-codeFlask_Wrapper ::-webkit-scrollbar-thumb { background: transparent; border-radius: 0;}/* Firefox 滚动条隐藏 */.editorjs-codeFlask_Wrapper { scrollbar-width: none;/* Firefox 隐藏纵向滚动条 */}.editorjs-codeFlask_Wrapper ::-moz-scrollbar { width: 0; height: 6px;}/* 焦点状态 */.editorjs-codeFlask_Wrapper:focus-within { border-color: #409eff; box-shadow: 0 0 0 2px rgba(64, 158, 255, 0.2);}/* 只读模式样式 */.editorjs-codeFlask_Wrapper.readonly .editorjs-codeFlask_Header { background-color: #f5f7fa;}.editorjs-codeFlask_Wrapper.readonly .editorjs-codeFlask_Editor .codeflask__textarea { cursor: default;}/* 确保所有元素正确显示 */.editorjs-codeFlask_Wrapper * { box-sizing: border-box;}/* 修复行号对齐 */.editorjs-codeFlask_Editor .codeflask--has-line-numbers .codeflask__textarea,.editorjs-codeFlask_Editor .codeflask--has-line-numbers .codeflask__pre { padding-left: 50px;}.editorjs-codeFlask_Editor .codeflask--has-line-numbers .codeflask__lines { padding-top: 10px;}/* 语言显示元素 - 添加点击样式 */.editorjs-codeFlask_LangDisplay { padding: 2px 8px; background-color: #409eff; color: white; border-radius: 3px; font-size: 12px; font-weight: 500; position: absolute; left: 12px; top: 50%; transform: translateY(-50%); cursor: pointer; transition: all 0.2s ease;}.editorjs-codeFlask_LangDisplay:hover { background-color: #66b1ff; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);}/* 语言选择弹窗 */.editorjs-codeFlask_LanguagePopup { background-color: white; border: 1px solid #dcdfe6; border-radius: 4px; box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); width: 250px; max-height: 300px; z-index: 1000; overflow: hidden;}/* 搜索框 */.editorjs-codeFlask_LanguageSearch { width: 100%; padding: 8px 12px; border: none; border-bottom: 1px solid #ebeef5; font-size: 12px; outline: none; box-sizing: border-box;}/* 语言列表 */.editorjs-codeFlask_LanguagesList { max-height: 250px; overflow-y: auto;}/* 语言选项 */.editorjs-codeFlask_LanguageItem { padding: 8px 12px; font-size: 12px; cursor: pointer; transition: background-color 0.2s ease;}.editorjs-codeFlask_LanguageItem:hover { background-color: #f5f7fa;}.editorjs-codeFlask_LanguageItem.selected { background-color: #ecf5ff; color: #409eff; font-weight: 500;}/* 滚动条样式 */.editorjs-codeFlask_LanguagesList::-webkit-scrollbar { width: 6px;}.editorjs-codeFlask_LanguagesList::-webkit-scrollbar-track { background-color: #f5f7fa;}.editorjs-codeFlask_LanguagesList::-webkit-scrollbar-thumb { background-color: #c0c4cc; border-radius: 3px;}.editorjs-codeFlask_LanguagesList::-webkit-scrollbar-thumb:hover { background-color: #909399;}.inline-code {background: rgba(250, 239, 240, 0.78);color: #b44437;padding: 3px 4px;border-radius: 5px;margin: 0 1px;font-family: inherit;font-size: 0.86em;font-weight: 500;letter-spacing: 0.3px;} 修改文件:# 宝塔面板(你日志路径含 /www/wwwroot/,很可能是宝塔)
/www/server/panel/vhost/nginx/你的域名.conf
注意把 yourdomain.com 换成你自己的域名 谢谢你的解答。
确实是宝塔。
其实之前问了AI,给的是类似的答复:
# 在站点配置中添加:
location ~* /uc_server/avatar\.php
{
# 封禁所有已知攻击IP
# deny IP案例;
# 严格参数验证
if ($args !~* "^uid={1,6}&size=(small|middle|large)$") {
return 403;
}
# UID范围限制
if ($arg_uid > 200000) {
return 403;
}
# 频率限制:每秒1次
limit_req zone=one burst=1 nodelay;
# 必须来自本站
valid_referers none blocked server_names *.我的域名;
if ($invalid_referer) {
return 403;
}
}
我把你提供的也写在它前头好了。
现在虽然攻击还是有的,但流量情况正常多了… 我的 location 规则放上面的话优先级最高,你后面的规则可能就没用了。 你的网站如果没有收益,以及不是很赚钱的论坛,很多攻击都是“误会”,有时搜索引擎爬虫也会出现这种情况,至于什么搜索 热词之类,直接打开 使用搜索需要登录就可以了,增加防火墙纯粹增加系统负担
你的同行攻击直接D概率比较大,不会搞这种费时费力的手段
页:
[1]