From 221cdf9f305cfe6f055910e4b331676d54a7e87c Mon Sep 17 00:00:00 2001 From: Hamid Reza Mohammadi Date: Fri, 25 Sep 2026 17:55:27 +0330 Subject: [PATCH] xss vulnerabilities fixes --- GanjooRazor/Areas/Admin/Pages/ModifyPage.cshtml.cs | 2 +- GanjooRazor/Areas/Admin/Pages/Poet.cshtml.cs | 8 ++++---- GanjooRazor/Pages/Search.cshtml | 10 ++++++++-- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/GanjooRazor/Areas/Admin/Pages/ModifyPage.cshtml.cs b/GanjooRazor/Areas/Admin/Pages/ModifyPage.cshtml.cs index 5d56bd70..ae9a2a25 100644 --- a/GanjooRazor/Areas/Admin/Pages/ModifyPage.cshtml.cs +++ b/GanjooRazor/Areas/Admin/Pages/ModifyPage.cshtml.cs @@ -274,7 +274,7 @@ namespace GanjooRazor.Areas.Admin.Pages ModifyModel.HtmlText = await htmlRes.Content.ReadAsStringAsync(); - LastMessage = $"متن تولیدی دریافت شد. لطفا آن را کپی کنید و سپس اینجا کلیک کنید و آن را درج نمایید."; + LastMessage = $"متن تولیدی دریافت شد. لطفا آن را کپی کنید و سپس اینجا کلیک کنید و آن را درج نمایید."; } diff --git a/GanjooRazor/Areas/Admin/Pages/Poet.cshtml.cs b/GanjooRazor/Areas/Admin/Pages/Poet.cshtml.cs index ad7ef8cd..de77cc82 100644 --- a/GanjooRazor/Areas/Admin/Pages/Poet.cshtml.cs +++ b/GanjooRazor/Areas/Admin/Pages/Poet.cshtml.cs @@ -197,7 +197,7 @@ namespace GanjooRazor.Areas.Admin.Pages _memoryCache.Remove(cacheKey2); } - LastResult = $"ویرایش انجام شد. برگشت به صفحهٔ ویرایش سخنور"; + LastResult = $"ویرایش انجام شد. برگشت به صفحهٔ ویرایش سخنور"; await PreparePoet(); @@ -235,7 +235,7 @@ namespace GanjooRazor.Areas.Admin.Pages return Page(); } - LastResult = $"تصویر بارگذاری شد. برگشت به صفحهٔ ویرایش سخنور"; + LastResult = $"تصویر بارگذاری شد. برگشت به صفحهٔ ویرایش سخنور"; } } @@ -271,7 +271,7 @@ namespace GanjooRazor.Areas.Admin.Pages return Page(); } - LastResult = $"پایگاه داده‌ها بارگذاری شد. برگشت به صفحهٔ ویرایش سخنور"; + LastResult = $"پایگاه داده‌ها بارگذاری شد. برگشت به صفحهٔ ویرایش سخنور"; } } @@ -307,7 +307,7 @@ namespace GanjooRazor.Areas.Admin.Pages return Page(); } - LastResult = $"پایگاه داده‌های اصلاحی بارگذاری شد. برگشت به صفحهٔ ویرایش سخنور"; + LastResult = $"پایگاه داده‌های اصلاحی بارگذاری شد. برگشت به صفحهٔ ویرایش سخنور"; } } diff --git a/GanjooRazor/Pages/Search.cshtml b/GanjooRazor/Pages/Search.cshtml index f67c6396..ffda4269 100644 --- a/GanjooRazor/Pages/Search.cshtml +++ b/GanjooRazor/Pages/Search.cshtml @@ -77,7 +77,12 @@ else @if (Model.StatsAtTop && Model.QueryIsSingleWord) {
- + @* Model.Query is the untrusted "s" search-query string. It must never be + interpolated into a javascript: href/onclick - HTML-encoding alone does + not stop it breaking out of the JS string literal there, because the + browser HTML-decodes the attribute before handing it to the JS engine. + Passing it through a data-* attribute keeps it as inert text. *@ + مشاهدهٔ بسامد واژگان «@Model.QueryDin» به تفکیک بخش @@ -135,7 +140,8 @@ else @if (!Model.StatsAtTop && Model.QueryIsSingleWord) {