Refactor web_scan.py for improved readability and maintainability; add cron job script for npm log backups; update start.ps1 for consistent formatting.
This commit is contained in:
1 parent
0d1cd21468
commit
c2eba88ac8
113 files changed
+772606
-772579
No files matched your search
+110
-110
@@ -1,110 +1,110 @@
|
||||
{% extends "base.html" %} {% block title %}Whitelist — Intrusion Detection{%
|
||||
endblock %} {% block content %}
|
||||
<h1>Whitelist</h1>
|
||||
<p class="muted">
|
||||
Provider whitelists (from the router snapshot). Never add a whole cloud
|
||||
provider to the blocklist.
|
||||
</p>
|
||||
|
||||
<div class="panel">
|
||||
<div class="panel-head"><h2>Add / remove CIDR</h2></div>
|
||||
<div class="panel-actions" style="margin-top: 0">
|
||||
<select id="wl-name">
|
||||
{% for name in whitelist_names %}
|
||||
<option value="{{ name }}">{{ name }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
<input
|
||||
id="wl-address"
|
||||
placeholder="CIDR, e.g. 1.2.3.0/24"
|
||||
style="min-width: 220px"
|
||||
/>
|
||||
<button class="btn primary" id="wl-add-btn">Add</button>
|
||||
<button class="btn danger" id="wl-remove-btn">Remove</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="whitelists"></div>
|
||||
{% endblock %} {% block scripts %}
|
||||
<script>
|
||||
async function loadWhitelists() {
|
||||
try {
|
||||
const data = await api("/api/whitelist");
|
||||
const box = document.getElementById("whitelists");
|
||||
box.innerHTML = "";
|
||||
for (const name of data.names || []) {
|
||||
const w = data.whitelists[name] || {};
|
||||
const rows = [];
|
||||
for (const version of ["ipv4", "ipv6"]) {
|
||||
const entries = (w[version] || []).sort();
|
||||
rows.push(
|
||||
el(
|
||||
"tr",
|
||||
el("td", { text: version }),
|
||||
el("td", { class: "mono", text: entries.join(", ") || "—" }),
|
||||
),
|
||||
);
|
||||
}
|
||||
box.append(
|
||||
el(
|
||||
"div",
|
||||
{ class: "panel" },
|
||||
el(
|
||||
"div",
|
||||
{ class: "panel-head" },
|
||||
el("h2", {
|
||||
text: `${name} (${(w.ipv4 || []).length + (w.ipv6 || []).length})`,
|
||||
}),
|
||||
),
|
||||
el(
|
||||
"table",
|
||||
{ class: "table" },
|
||||
el(
|
||||
"thead",
|
||||
{},
|
||||
el(
|
||||
"tr",
|
||||
{},
|
||||
el("th", { text: "Version" }),
|
||||
el("th", { text: "Addresses" }),
|
||||
),
|
||||
),
|
||||
el("tbody", {}, ...rows),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
} catch (e) {
|
||||
toast(e.message, "error");
|
||||
}
|
||||
}
|
||||
|
||||
async function act(action) {
|
||||
const name = document.getElementById("wl-name").value;
|
||||
const address = document.getElementById("wl-address").value.trim();
|
||||
if (!address) {
|
||||
toast("Enter a CIDR", "warn");
|
||||
return;
|
||||
}
|
||||
try {
|
||||
await api("/api/whitelist/update", {
|
||||
method: "POST",
|
||||
body: { name, address, action },
|
||||
});
|
||||
toast(`${action} ${address} on ${name}`, "ok");
|
||||
document.getElementById("wl-address").value = "";
|
||||
loadWhitelists();
|
||||
} catch (e) {
|
||||
toast(e.message, "error");
|
||||
}
|
||||
}
|
||||
|
||||
document
|
||||
.getElementById("wl-add-btn")
|
||||
.addEventListener("click", () => act("add"));
|
||||
document
|
||||
.getElementById("wl-remove-btn")
|
||||
.addEventListener("click", () => act("remove"));
|
||||
loadWhitelists();
|
||||
</script>
|
||||
{% endblock %}
|
||||
{% extends "base.html" %} {% block title %}Whitelist — Intrusion Detection{%
|
||||
endblock %} {% block content %}
|
||||
<h1>Whitelist</h1>
|
||||
<p class="muted">
|
||||
Provider whitelists (from the router snapshot). Never add a whole cloud
|
||||
provider to the blocklist.
|
||||
</p>
|
||||
|
||||
<div class="panel">
|
||||
<div class="panel-head"><h2>Add / remove CIDR</h2></div>
|
||||
<div class="panel-actions" style="margin-top: 0">
|
||||
<select id="wl-name">
|
||||
{% for name in whitelist_names %}
|
||||
<option value="{{ name }}">{{ name }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
<input
|
||||
id="wl-address"
|
||||
placeholder="CIDR, e.g. 1.2.3.0/24"
|
||||
style="min-width: 220px"
|
||||
/>
|
||||
<button class="btn primary" id="wl-add-btn">Add</button>
|
||||
<button class="btn danger" id="wl-remove-btn">Remove</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="whitelists"></div>
|
||||
{% endblock %} {% block scripts %}
|
||||
<script>
|
||||
async function loadWhitelists() {
|
||||
try {
|
||||
const data = await api("/api/whitelist");
|
||||
const box = document.getElementById("whitelists");
|
||||
box.innerHTML = "";
|
||||
for (const name of data.names || []) {
|
||||
const w = data.whitelists[name] || {};
|
||||
const rows = [];
|
||||
for (const version of ["ipv4", "ipv6"]) {
|
||||
const entries = (w[version] || []).sort();
|
||||
rows.push(
|
||||
el(
|
||||
"tr",
|
||||
el("td", { text: version }),
|
||||
el("td", { class: "mono", text: entries.join(", ") || "—" }),
|
||||
),
|
||||
);
|
||||
}
|
||||
box.append(
|
||||
el(
|
||||
"div",
|
||||
{ class: "panel" },
|
||||
el(
|
||||
"div",
|
||||
{ class: "panel-head" },
|
||||
el("h2", {
|
||||
text: `${name} (${(w.ipv4 || []).length + (w.ipv6 || []).length})`,
|
||||
}),
|
||||
),
|
||||
el(
|
||||
"table",
|
||||
{ class: "table" },
|
||||
el(
|
||||
"thead",
|
||||
{},
|
||||
el(
|
||||
"tr",
|
||||
{},
|
||||
el("th", { text: "Version" }),
|
||||
el("th", { text: "Addresses" }),
|
||||
),
|
||||
),
|
||||
el("tbody", {}, ...rows),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
} catch (e) {
|
||||
toast(e.message, "error");
|
||||
}
|
||||
}
|
||||
|
||||
async function act(action) {
|
||||
const name = document.getElementById("wl-name").value;
|
||||
const address = document.getElementById("wl-address").value.trim();
|
||||
if (!address) {
|
||||
toast("Enter a CIDR", "warn");
|
||||
return;
|
||||
}
|
||||
try {
|
||||
await api("/api/whitelist/update", {
|
||||
method: "POST",
|
||||
body: { name, address, action },
|
||||
});
|
||||
toast(`${action} ${address} on ${name}`, "ok");
|
||||
document.getElementById("wl-address").value = "";
|
||||
loadWhitelists();
|
||||
} catch (e) {
|
||||
toast(e.message, "error");
|
||||
}
|
||||
}
|
||||
|
||||
document
|
||||
.getElementById("wl-add-btn")
|
||||
.addEventListener("click", () => act("add"));
|
||||
document
|
||||
.getElementById("wl-remove-btn")
|
||||
.addEventListener("click", () => act("remove"));
|
||||
loadWhitelists();
|
||||
</script>
|
||||
{% endblock %}
|
||||
Reference in new issue
Block a user