feat: CSRF защита (double-submit cookie) — все мутирующие POST-роуты, login-форма

This commit is contained in:
2026-05-30 13:28:01 +03:00
parent 2332827326
commit 695ed231e6
6 changed files with 75 additions and 10 deletions
+6
View File
@@ -239,6 +239,8 @@
// и использует clientId из токена — защита от подмены.
%>
<input type="hidden" name="company_id" value="<%= companyPk || '' %>">
<%# CSRF-токен: защита от межсайтовой подделки запроса (double-submit cookie) %>
<input type="hidden" name="_csrf" value="<%= csrfToken %>">
<div class="form-grid">
<div class="field">
<label>IPv4 адрес или подсеть CIDR</label>
@@ -308,6 +310,8 @@
style="display:inline"
onsubmit="return confirm('Удалить запись <%= e.value_cidr %>?')">
<input type="hidden" name="company_id" value="<%= companyPk || '' %>">
<%# CSRF-токен: одно значение на всю страницу, сгенерировано сервером %>
<input type="hidden" name="_csrf" value="<%= csrfToken %>">
<button class="btn btn-danger">Удалить</button>
</form>
</td>
@@ -337,6 +341,8 @@
<form method="POST" id="edit-form">
<!-- Скрытые поля: action (action='/edit/N') и company_id заполняет openEditModal() -->
<input type="hidden" id="edit-company-id" name="company_id" value="">
<%# CSRF-токен: значение рендерится сервером один раз для всей страницы %>
<input type="hidden" name="_csrf" value="<%= csrfToken %>">
<div class="field" style="margin-bottom:.75rem;">
<label>IPv4 адрес или подсеть CIDR</label>