openresty
tcp/443
Exposing Swagger/OpenAPI documentation is primarily a risk if your API has underlying security flaws, as it gives attackers a precise roadmap to find them.
Those detail every endpoint, parameter, and data model, making it easier to discover and exploit vulnerabilities like broken access control or injection points.
While a perfectly secure API mitigates the danger, protecting your documentation is a critical layer of defense that forces attackers to work without a map.
Severity: info
Fingerprint: 5733ddf49ff49cd1926e27d0926e27d0926e27d0926e27d0926e27d0926e27d0
Public Swagger UI/API detected at path: /webjars/swagger-ui/index.html
Open service 116.162.168.167:443 · www.klned.com
2026-01-23 15:49
HTTP/1.1 200 OK
Last-Modified: Sat, 17 Jan 2026 12:08:26 GMT
Server: openresty
Date: Sat, 17 Jan 2026 16:49:49 GMT
Content-Type: text/html
Vary: Accept-Encoding
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Pragma: no-cache
Expires: 0
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 0
Referrer-Policy: strict-origin-when-cross-origin
Content-Language: zh-CN
X-Halo-Cache-At: Sat, 17 Jan 2026 12:08:26 GMT
Cache-Control: must-revalidate, max-age=3, s-maxage=120
Age: 17
Content-Length: 62861
Accept-Ranges: bytes
X-NWS-LOG-UUID: 7357097266880617542
Connection: close
X-Cache-Lookup: Cache Hit
Strict-Transport-Security: max-age=63072000;
Page title: 张先生的小屋
<!DOCTYPE html>
<html lang="zh-CN" class="default">
<head>
<meta charset="utf-8"/>
<title>张先生的小屋</title>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<meta name="applicable-device" content="pc,mobile">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="keywords"/>
<meta name="description" content="一个游戏程序员的个人网站">
<meta name="author" content="张先生的小屋">
<meta name="site" content="https://www.klned.com/">
<meta name="referrer" content="strict-origin-when-cross-origin">
<meta http-equiv="Referrer-Policy" content="strict-origin-when-cross-origin">
<meta property="og:type" content="website">
<meta property="og:title" content="张先生的小屋">
<meta property="og:url" content="https://www.klned.com/">
<meta property="og:site_name">
<meta property="og:description" content="一个游戏程序员的个人网站">
<meta property="og:locale" content="zh">
<meta property="og:image" content="https://pic.imgdb.cn/item/64e77f98661c6c8e54c5e6ae/标签图.jpg">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="张先生的小屋">
<meta name="twitter:description" content="一个游戏程序员的个人网站">
<meta name="twitter:image" content="https://pic.imgdb.cn/item/64e77f98661c6c8e54c5e6ae/标签图.jpg">
<meta name="twitter:url" content="https://www.klned.com/">
<link rel="canonical" href="https://www.klned.com/"/>
<link rel="preload stylesheet" as="style" href="/themes/theme-dream2-plus/assets/css/theme.min.css?mew=1.12.0">
<link rel="preload stylesheet" as="style" href="/themes/theme-dream2-plus/assets/lib/remixicon@4.7.0/remixicon.min.css">
<link rel="preload stylesheet" as="style" href="/themes/theme-dream2-plus/assets/css/style.min.css?mew=1.12.0">
<link rel="stylesheet" href="/themes/theme-dream2-plus/assets/css/mew-custom.min.css?mew=1.12.0">
<link rel="stylesheet" href="/themes/theme-dream2-plus/assets/lib/qmsg/qmsg.min.css">
<style>
html {
--theme: #50bfff;
}
html.night {
--theme: #5d93db;
}
body:before {
background: url("https://pic1.imgdb.cn/item/67a642c6d0e0a243d4fcaa31.png") center 0 no-repeat;
}
html.night body:before {
background: url("https://pic1.imgdb.cn/item/67a642c6d0e0a243d4fcaa31.png") center 0 no-repeat;
}
@media screen and (max-width: 768px) {
body:before {
background: url("https://pic1.imgdb.cn/item/67a642c6d0e0a243d4fcaa31.png") center 0 no-repeat;
}
html.night body:before {
background: url("https://pic1.imgdb.cn/item/67a642c6d0e0a243d4fcaa31.png") center 0 no-repeat;
}
}
</style>
<script>
window.logger = console.log;
console.logStorage = [];
console.log = function (message, ...optionalParams) {
console.logStorage.push(()=>window.logger(message, optionalParams));
if (console.logStorage.length > 100) {
console.logStorage.shift()
}
};
console.logPrint = function () {
for (let logItem of console.logStorage) {
logItem();
}
};
/** 主题配置 */
const DreamConfig = {};
/** 站点名 */
DreamConfig["site_title"] = "\u5F20\u5148\u751F\u7684\u5C0F\u5C4B";
/** 灰色模式 */
DreamConfig["gray_mode"] = false;
/** 定义多语言资源 */
DreamConfig["site_time_expression"]="\u5EFA\u7AD9{0}\u5929{1}\u65F6{2}\u5206{3}\u79D2";
DreamConfig['love_time_template'] = "{0} \u5929 {1} \u65F6 {2} \u5206 {3} \u79D2";
DreamConfig["love_time_template_year"] = "{0} \u5E74 {1} \u5929 {2} \u65F6 {3} \u5206 {4} \u79D2";
DreamConfig["timelife_template"] = [
{
title: "\u4ECA\u65E5\u5DF2\u7ECF\u8FC7\u53BB",
endTitle: "\u5C0F\u65F6",
num: 0,
percent: '0%',
},
{
title: "\u672C\u5468\u5DF2\u7ECF\u8FC7\u53BB",
endTitle: "\u5929",
num: 0,
percent: '0%',
},
{
title: "\u672C\u6708\