cloudflare
tcp/443 tcp/80 tcp/8443
Open service 172.67.201.96:443 · experiments.ppoms.cloud
2026-01-08 10:13
HTTP/1.1 200 OK
Date: Thu, 08 Jan 2026 10:13:50 GMT
Content-Type: text/html;charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=wGO32OD4IQMWNzsKGxbRx%2Brp0VA7DZGpPq3447vNJ63KzdfTrUwz6kkxXCab2Omnp7MpasBZ0r1J0FN4rAbmstGus%2BZ9w4hBo51ZJrledYtBob%2FM2hJR"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=8,cfOrigin;dur=24
cf-cache-status: DYNAMIC
CF-RAY: 9baaecab6b18ff69-BOM
alt-svc: h3=":443"; ma=86400
Page title: Admin Login
<!DOCTYPE html>
<html>
<head>
<title>Admin Login</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
body { font-family: sans-serif; display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; background: #f0f2f5; }
.card { background: white; padding: 2rem; border-radius: 12px; box-shadow: 0 8px 20px rgba(0,0,0,0.1); width: 100%; max-width: 320px; text-align: center; }
input { width: 100%; padding: 12px; margin: 8px 0; border: 1px solid #ddd; border-radius: 6px; box-sizing: border-box; }
button { width: 100%; padding: 12px; background: #1a73e8; color: white; border: none; border-radius: 6px; cursor: pointer; font-weight: bold; }
</style>
</head>
<body>
<div class="card">
<h2>Admin Login</h2>
<input type="text" id="id" placeholder="ID">
<input type="password" id="pw" placeholder="Password">
<button onclick="login()">Login</button>
</div>
<script>
async function login() {
const id = document.getElementById('id').value;
const pw = document.getElementById('pw').value;
const res = await fetch('/api/login', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ id, pw })
});
if (res.ok) location.reload(); else alert('로그인 실패');
}
</script>
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon='{"version":"2024.11.0","token":"fac143926e694e649e7c62bd372e46e3","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
</body>
</html>
Open service 2606:4700:3034::6815:24f2:8443 · experiments.ppoms.cloud
2026-01-08 10:13
HTTP/1.1 200 OK
Date: Thu, 08 Jan 2026 10:13:49 GMT
Content-Type: text/html;charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=NXRA1tVGeJvF6ZocOolZkT3q%2FHp1Gez4%2FiF31moEHIUdFODz0rcxu%2Fycql%2FbMQph2weLmN3gcBR9fD8mjuNKhyIlMjA1vZhgXArqmAcVs0gaWOy00jFIu2jjbC5RlddyTDEm"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=7,cfOrigin;dur=10
cf-cache-status: DYNAMIC
CF-RAY: 9baaecaad8ba3786-YYZ
alt-svc: h3=":8443"; ma=86400
Page title: Admin Login
<!DOCTYPE html>
<html>
<head>
<title>Admin Login</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
body { font-family: sans-serif; display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; background: #f0f2f5; }
.card { background: white; padding: 2rem; border-radius: 12px; box-shadow: 0 8px 20px rgba(0,0,0,0.1); width: 100%; max-width: 320px; text-align: center; }
input { width: 100%; padding: 12px; margin: 8px 0; border: 1px solid #ddd; border-radius: 6px; box-sizing: border-box; }
button { width: 100%; padding: 12px; background: #1a73e8; color: white; border: none; border-radius: 6px; cursor: pointer; font-weight: bold; }
</style>
</head>
<body>
<div class="card">
<h2>Admin Login</h2>
<input type="text" id="id" placeholder="ID">
<input type="password" id="pw" placeholder="Password">
<button onclick="login()">Login</button>
</div>
<script>
async function login() {
const id = document.getElementById('id').value;
const pw = document.getElementById('pw').value;
const res = await fetch('/api/login', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ id, pw })
});
if (res.ok) location.reload(); else alert('로그인 실패');
}
</script>
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon='{"version":"2024.11.0","token":"fac143926e694e649e7c62bd372e46e3","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
</body>
</html>
Open service 104.21.36.242:80 · experiments.ppoms.cloud
2026-01-08 10:13
HTTP/1.1 301 Moved Permanently
Date: Thu, 08 Jan 2026 10:13:49 GMT
Content-Length: 0
Connection: close
Location: https://experiments.ppoms.cloud/
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=kgr1QZ0errikGUXzleVlcIGmgsnMsJrd7R%2FYDn9KdeXg%2Fm48Jf2iL6JZAXtBUWcEd8N%2BfccT5%2FsGkruI7p9XmlQ1gJHOjddSUfRy%2BrPi2pLCZ56KbHVe"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9baaecaaca7cdbff-FRA
alt-svc: h3=":443"; ma=86400
Open service 104.21.36.242:8443 · experiments.ppoms.cloud
2026-01-08 10:13
HTTP/1.1 200 OK
Date: Thu, 08 Jan 2026 10:13:49 GMT
Content-Type: text/html;charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=TnUlMAU3yADTPKWhOC43WTXEtAN1lOjFqBV7qm%2BTkW0Kf9XEfAtBA8GAOwKeFapDoOow7hXPzAa2b%2FfRNDAQxOliwlbbwSRJc4%2Buuyy4bmKlrYGgRw%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9baaecab0bd89962-FRA
alt-svc: h3=":8443"; ma=86400
Page title: Admin Login
<!DOCTYPE html>
<html>
<head>
<title>Admin Login</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
body { font-family: sans-serif; display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; background: #f0f2f5; }
.card { background: white; padding: 2rem; border-radius: 12px; box-shadow: 0 8px 20px rgba(0,0,0,0.1); width: 100%; max-width: 320px; text-align: center; }
input { width: 100%; padding: 12px; margin: 8px 0; border: 1px solid #ddd; border-radius: 6px; box-sizing: border-box; }
button { width: 100%; padding: 12px; background: #1a73e8; color: white; border: none; border-radius: 6px; cursor: pointer; font-weight: bold; }
</style>
</head>
<body>
<div class="card">
<h2>Admin Login</h2>
<input type="text" id="id" placeholder="ID">
<input type="password" id="pw" placeholder="Password">
<button onclick="login()">Login</button>
</div>
<script>
async function login() {
const id = document.getElementById('id').value;
const pw = document.getElementById('pw').value;
const res = await fetch('/api/login', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ id, pw })
});
if (res.ok) location.reload(); else alert('로그인 실패');
}
</script>
</body>
</html>
Open service 2606:4700:3032::ac43:c960:8443 · experiments.ppoms.cloud
2026-01-08 10:13
HTTP/1.1 200 OK
Date: Thu, 08 Jan 2026 10:13:49 GMT
Content-Type: text/html;charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=Mf24B4iOmtsnY06RxwVYDgd5M%2BjgxIWzDKGTi%2FjdRs0LpDpX4x0qjBCMTGtRZDih7kdNANMsRNM2jO%2FwdU3qEGQI3SyT%2BaT4gmfcOCSMBZYwyK82C5ZKenp9Blu4QNCD2UvB"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=10,cfOrigin;dur=13
cf-cache-status: DYNAMIC
CF-RAY: 9baaecaab98cfca9-SJC
alt-svc: h3=":8443"; ma=86400
Page title: Admin Login
<!DOCTYPE html>
<html>
<head>
<title>Admin Login</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
body { font-family: sans-serif; display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; background: #f0f2f5; }
.card { background: white; padding: 2rem; border-radius: 12px; box-shadow: 0 8px 20px rgba(0,0,0,0.1); width: 100%; max-width: 320px; text-align: center; }
input { width: 100%; padding: 12px; margin: 8px 0; border: 1px solid #ddd; border-radius: 6px; box-sizing: border-box; }
button { width: 100%; padding: 12px; background: #1a73e8; color: white; border: none; border-radius: 6px; cursor: pointer; font-weight: bold; }
</style>
</head>
<body>
<div class="card">
<h2>Admin Login</h2>
<input type="text" id="id" placeholder="ID">
<input type="password" id="pw" placeholder="Password">
<button onclick="login()">Login</button>
</div>
<script>
async function login() {
const id = document.getElementById('id').value;
const pw = document.getElementById('pw').value;
const res = await fetch('/api/login', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ id, pw })
});
if (res.ok) location.reload(); else alert('로그인 실패');
}
</script>
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon='{"version":"2024.11.0","token":"fac143926e694e649e7c62bd372e46e3","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
</body>
</html>
Open service 2606:4700:3034::6815:24f2:443 · experiments.ppoms.cloud
2026-01-08 10:13
HTTP/1.1 200 OK
Date: Thu, 08 Jan 2026 10:13:49 GMT
Content-Type: text/html;charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=wXgQZB2x0NfEAzkyn8oJF3UBlS9tQ8SdTBXIdUXUkvA6bswTjrmewNzfxmDEcUnoWj4s5ZX1fdgDZcPuZvPOASEV0aD2fkG37O5IiHxoiFAB7jOZJItCAhms6Kx3OEM%2B9Ovi"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=11,cfOrigin;dur=25
cf-cache-status: DYNAMIC
CF-RAY: 9baaecaabd9f7978-SIN
alt-svc: h3=":443"; ma=86400
Page title: Admin Login
<!DOCTYPE html>
<html>
<head>
<title>Admin Login</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
body { font-family: sans-serif; display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; background: #f0f2f5; }
.card { background: white; padding: 2rem; border-radius: 12px; box-shadow: 0 8px 20px rgba(0,0,0,0.1); width: 100%; max-width: 320px; text-align: center; }
input { width: 100%; padding: 12px; margin: 8px 0; border: 1px solid #ddd; border-radius: 6px; box-sizing: border-box; }
button { width: 100%; padding: 12px; background: #1a73e8; color: white; border: none; border-radius: 6px; cursor: pointer; font-weight: bold; }
</style>
</head>
<body>
<div class="card">
<h2>Admin Login</h2>
<input type="text" id="id" placeholder="ID">
<input type="password" id="pw" placeholder="Password">
<button onclick="login()">Login</button>
</div>
<script>
async function login() {
const id = document.getElementById('id').value;
const pw = document.getElementById('pw').value;
const res = await fetch('/api/login', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ id, pw })
});
if (res.ok) location.reload(); else alert('로그인 실패');
}
</script>
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon='{"version":"2024.11.0","token":"fac143926e694e649e7c62bd372e46e3","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
</body>
</html>
Open service 2606:4700:3032::ac43:c960:80 · experiments.ppoms.cloud
2026-01-08 10:13
HTTP/1.1 301 Moved Permanently
Date: Thu, 08 Jan 2026 10:13:49 GMT
Content-Length: 0
Connection: close
Location: https://experiments.ppoms.cloud/
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=0%2BQGX4ryml6u9FzoX1ikhE9NYledowJB4sFmjgvebhqF3dkdCNBOjQ2WlsVGG2NYPd4I9l27VZ6h5hU37u9ZCB8ApFnHLbeds0sn5fSu4JZM4r86u%2BJu6f%2BWuiIY%2B9hOGLm%2F"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=14,cfOrigin;dur=7
cf-cache-status: DYNAMIC
CF-RAY: 9baaeca9dee2dd82-EWR
alt-svc: h3=":443"; ma=86400
Open service 104.21.36.242:443 · experiments.ppoms.cloud
2026-01-08 10:13
HTTP/1.1 200 OK
Date: Thu, 08 Jan 2026 10:13:49 GMT
Content-Type: text/html;charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=ylKL8aCM5ww6VtkcPrS6N5wBGOSaZAcl%2FOopjoRYlQLK02hoqQJ4P05qA5DA%2BpAG77sNz%2BzKnb8umK%2FKuoEyJQ%2FcuhMmDJw9C8CqhsuVAYNp41gLs0Qj"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9baaeca988c60039-LHR
alt-svc: h3=":443"; ma=86400
Page title: Admin Login
<!DOCTYPE html>
<html>
<head>
<title>Admin Login</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
body { font-family: sans-serif; display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; background: #f0f2f5; }
.card { background: white; padding: 2rem; border-radius: 12px; box-shadow: 0 8px 20px rgba(0,0,0,0.1); width: 100%; max-width: 320px; text-align: center; }
input { width: 100%; padding: 12px; margin: 8px 0; border: 1px solid #ddd; border-radius: 6px; box-sizing: border-box; }
button { width: 100%; padding: 12px; background: #1a73e8; color: white; border: none; border-radius: 6px; cursor: pointer; font-weight: bold; }
</style>
</head>
<body>
<div class="card">
<h2>Admin Login</h2>
<input type="text" id="id" placeholder="ID">
<input type="password" id="pw" placeholder="Password">
<button onclick="login()">Login</button>
</div>
<script>
async function login() {
const id = document.getElementById('id').value;
const pw = document.getElementById('pw').value;
const res = await fetch('/api/login', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ id, pw })
});
if (res.ok) location.reload(); else alert('로그인 실패');
}
</script>
</body>
</html>
Open service 172.67.201.96:8443 · experiments.ppoms.cloud
2026-01-08 10:13
HTTP/1.1 200 OK
Date: Thu, 08 Jan 2026 10:13:49 GMT
Content-Type: text/html;charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=SjnfLiK1QE45sqcO5xdP%2BG177IZLhlIw33%2BMEZjhMd6Q5Wtr6Re4tPyWTDmpvEPpRfsautfxOHD76X26FOw0WalmHHGbISUoj5hCF2hRFMNRNUBFLdpz"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9baaeca99f915e4a-LHR
alt-svc: h3=":8443"; ma=86400
Page title: Admin Login
<!DOCTYPE html>
<html>
<head>
<title>Admin Login</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
body { font-family: sans-serif; display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; background: #f0f2f5; }
.card { background: white; padding: 2rem; border-radius: 12px; box-shadow: 0 8px 20px rgba(0,0,0,0.1); width: 100%; max-width: 320px; text-align: center; }
input { width: 100%; padding: 12px; margin: 8px 0; border: 1px solid #ddd; border-radius: 6px; box-sizing: border-box; }
button { width: 100%; padding: 12px; background: #1a73e8; color: white; border: none; border-radius: 6px; cursor: pointer; font-weight: bold; }
</style>
</head>
<body>
<div class="card">
<h2>Admin Login</h2>
<input type="text" id="id" placeholder="ID">
<input type="password" id="pw" placeholder="Password">
<button onclick="login()">Login</button>
</div>
<script>
async function login() {
const id = document.getElementById('id').value;
const pw = document.getElementById('pw').value;
const res = await fetch('/api/login', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ id, pw })
});
if (res.ok) location.reload(); else alert('로그인 실패');
}
</script>
</body>
</html>
Open service 2606:4700:3034::6815:24f2:80 · experiments.ppoms.cloud
2026-01-08 10:13
HTTP/1.1 301 Moved Permanently
Date: Thu, 08 Jan 2026 10:13:49 GMT
Content-Length: 0
Connection: close
Location: https://experiments.ppoms.cloud/
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=PVAGW%2BqiHQIMhvJEQbOh%2B7gFCo%2B6rpuFVMOx%2BfjtZ2cCzFGQZXGEPnQiEorkfstxHq7KgtvV0pAJVjqTzDIrvQGxPUtgxB5Jz%2ByhYxYWjwHZsm8TF8CEtavlBckhi2Z6dNCz"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9baaeca95f2dd369-FRA
alt-svc: h3=":443"; ma=86400
Open service 172.67.201.96:80 · experiments.ppoms.cloud
2026-01-08 10:13
HTTP/1.1 301 Moved Permanently
Date: Thu, 08 Jan 2026 10:13:49 GMT
Content-Length: 0
Connection: close
Location: https://experiments.ppoms.cloud/
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=g2%2FoiYhXVy5qZTioexXlBnekjZZQfIiwAp4HYJY9wlmQkwXcYfxdIn8ilwrzlfzgEABpB498oCenOUtd%2BMbAQP4u94M9ECWXVVTHT9i5DaJRqa6hD%2BY1"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9baaeca959de39c2-FRA
alt-svc: h3=":443"; ma=86400
Open service 2606:4700:3032::ac43:c960:443 · experiments.ppoms.cloud
2026-01-08 10:13
HTTP/1.1 200 OK
Date: Thu, 08 Jan 2026 10:13:49 GMT
Content-Type: text/html;charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=PSwHAyoZseF5qndvvl1WcHLX4JVqOQaBm34ZPn9iuLIpCAndUAaoFLNMmu%2BpFb49%2FXJLTtmAjgbo4bap9753SuRckw7laCclTIdBZkm99x0VrHRIGkFTOFwgKRwgn5jK7NWh"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
cf-cache-status: DYNAMIC
CF-RAY: 9baaeca968e2f4c9-FRA
alt-svc: h3=":443"; ma=86400
Page title: Admin Login
<!DOCTYPE html>
<html>
<head>
<title>Admin Login</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
body { font-family: sans-serif; display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; background: #f0f2f5; }
.card { background: white; padding: 2rem; border-radius: 12px; box-shadow: 0 8px 20px rgba(0,0,0,0.1); width: 100%; max-width: 320px; text-align: center; }
input { width: 100%; padding: 12px; margin: 8px 0; border: 1px solid #ddd; border-radius: 6px; box-sizing: border-box; }
button { width: 100%; padding: 12px; background: #1a73e8; color: white; border: none; border-radius: 6px; cursor: pointer; font-weight: bold; }
</style>
</head>
<body>
<div class="card">
<h2>Admin Login</h2>
<input type="text" id="id" placeholder="ID">
<input type="password" id="pw" placeholder="Password">
<button onclick="login()">Login</button>
</div>
<script>
async function login() {
const id = document.getElementById('id').value;
const pw = document.getElementById('pw').value;
const res = await fetch('/api/login', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ id, pw })
});
if (res.ok) location.reload(); else alert('로그인 실패');
}
</script>
</body>
</html>