Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 3317|Відповідь: 2

[Джерело] ASP.NET MVC запитує XSS Dangerous Content Validation (ValidateInput)

[Копіювати посилання]
Опубліковано 08.07.2023 22:05:07 | | | |
Вимоги: Витягніть вихідний код у ASP.NET MVC для перевірки потенційно небезпечних даних у формі запиту. Простіше кажучи, він перевіряє, що запитувані дані містять контент крос-сайтового скриптового (XSS),XSS за замовчуванням блокується в MVC

Крос-сайтове скриптування (XSS) — це вразливість безпеки, яка зустрічається в деяких веб-додатках. XSS-атаки дозволяють зловмисникам впроваджувати клієнтські скрипти у веб-сторінки, які переглядають інші користувачі. Зловмисники можуть використовувати вразливості крос-сайтових скриптів, щоб обійти контроль доступу, такі як політики з однаковим походженням.

ValidateInput: Виконує перевірку колекцій, доступних через властивості Cookies, Form та QueryString. повиненHttpRequestКлас використовує прапорець валідації вхідних даних для відстеження, чи виконується валідація на колекції запитів, що отримують доступ до QueryString через форму властивостей Cookie.

public void ValidateInput() {
            Не має сенсу дзвонити це кілька разів за один запит.
            Крім того, якщо валідацію пригнічували — зараз не операція.
            якщо (ValidateInputWasCalled || RequestValidationSuppressed) {
                Повернутися;
            }

            _Прапори. Set(hasValidateInputBeenCalled);

            Це зроблено для запобігання деяким атакам XSS (крос-сайтове скриптування) (ASURT 122278)
            _Прапори. Set(needToValidateQueryString);
            _Прапори. Set(needToValidateForm);
            _Прапори. Set(needToValidateCookies);
            _Прапори. Set(needToValidatePostedFiles);
            _Прапори. Set(needToValidateRawURL);
            _Прапори. Set(needToValidatePath);
            _Прапори. Set(needToValidatePathInfo);
            _Прапори. Set(needToValidateHeaders);
        }

Документації:Вхід за гіперпосиланням видно.

Перевірити потенційно небезпечні дані:HttpRequest -> ValidateString -> CrossSiteScriptingValidation.IsDangerousString, як показано на рисунку нижче:



Адреса вихідного коду:

Вхід за гіперпосиланням видно.
Вхід за гіперпосиланням видно.

Скопіюйте вихідний код у свій проєкт і протестуйте його наступним чином:



Джерело:


Якщо ви справді хочете отримати небезпечний контент, можете скористатися Request.Unvalidated.Form

(Кінець)




Попередній:ASP.NET MVC отримує всі інтерфейсні адреси через відбиття
Наступний:.NET/C# використовує SqlConnectionStringBuilder для порівняння з'єднань з базами даних
 Орендодавець| Опубліковано 08.07.2023 22:06:32 |
Клас AllowHtmlAttribute: Дозволяє запитам включати розмітку HTML під час зв'язування моделі, пропускаючи перевірку запиту для атрибутів. (Настійно рекомендується, щоб додатки чітко перевіряли всі моделі, які вимикають перевірку запитів, щоб запобігти скриптовим атакам.) )

https://learn.microsoft.com/zh-c ... .allowhtmlattribute
 Орендодавець| Опубліковано 08.07.2023 22:06:49 |
Теги ValidateAntiForgeryToken та AutoValidateAntiforgeryToken для захисту від підробок детально пояснюються
https://www.itsvse.com/thread-9568-1-1.html
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com