国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

asp.net core中間件預(yù)防防止xss攻擊

這篇具有很好參考價(jià)值的文章主要介紹了asp.net core中間件預(yù)防防止xss攻擊。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

using System;
using System.Text.Json;
using System.Text.Json.Serialization;

namespace CommonUtils
{
    /// <summary>
    /// newtonsoft的轉(zhuǎn)化器
    /// 防止xss攻擊
    /// </summary>
    public class AntiXssNewtonsoftConverter : Newtonsoft.Json.JsonConverter<string>
    {
        /// <summary>
        /// 讀取的時(shí)候
        /// 就是輸入的時(shí)候進(jìn)行處理
        /// </summary>
        /// <param name="reader"></param>
        /// <param name="objectType"></param>
        /// <param name="existingValue"></param>
        /// <param name="hasExistingValue"></param>
        /// <param name="serializer"></param>
        /// <returns></returns>
        public override string ReadJson(Newtonsoft.Json.JsonReader reader, Type objectType, string existingValue, bool hasExistingValue, Newtonsoft.Json.JsonSerializer serializer)
        {
            //多次解碼無(wú)影響,防止輸出的時(shí)候多次編碼導(dǎo)致字符串亂碼
            var res = System.Web.HttpUtility.HtmlDecode(reader.Value.ToString());
            //進(jìn)行編碼
            res = System.Web.HttpUtility.HtmlEncode(res);
            return res;
        }

        /// <summary>
        /// 寫出的時(shí)候
        /// 也可以在寫出的時(shí)候進(jìn)行,這里演示的寫入的時(shí)候,到時(shí)候反過(guò)來(lái)就行了
        /// </summary>
        /// <param name="writer"></param>
        /// <param name="value"></param>
        /// <param name="serializer"></param>
        public override void WriteJson(Newtonsoft.Json.JsonWriter writer, string value, Newtonsoft.Json.JsonSerializer serializer)
        {
            writer.WriteValue(value);
        }
        /*
        全局使用
       services.AddControllers()
       .AddNewtonsoftJson(options=>
       {
           options.SerializerSettings.Converters.Add(new AntiXssSystemTextConverter());
       });
       某個(gè)屬性使用
       [JsonConverter(typeof(AntiXssNewtonsoftConverter))]
       public string? Id { get; set; }
        */
    }

    /// <summary>
    /// system.text.json轉(zhuǎn)化器
    /// 原理同newtonsoft,主要是看web項(xiàng)目使用的是那個(gè)json序列化工具
    /// </summary>
    public class AntiXssSystemTextConverter : JsonConverter<string>
    {
        /// <summary>
        /// 讀取的時(shí)候
        /// </summary>
        /// <param name="reader"></param>
        /// <param name="typeToConvert"></param>
        /// <param name="options"></param>
        /// <returns></returns>
        /// <exception cref="NotImplementedException"></exception>
        public override string Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
        {
            //多次解碼無(wú)影響,防止輸出的時(shí)候多次編碼導(dǎo)致字符串亂碼
            var res = System.Web.HttpUtility.HtmlDecode(reader.GetString());
            //進(jìn)行編碼
            res = System.Web.HttpUtility.HtmlEncode(res);
            return res;
        }

        /// <summary>
        /// 寫出的時(shí)候
        /// </summary>
        /// <param name="writer"></param>
        /// <param name="value"></param>
        /// <param name="options"></param>
        /// <exception cref="NotImplementedException"></exception>
        public override void Write(Utf8JsonWriter writer, string value, JsonSerializerOptions options)
        {
            writer.WriteStringValue(value);
        }
        /*
         全局使用
        services.AddControllers()
        .AddJsonOptions(options=>
        {
            options.JsonSerializerOptions.Converters.Add(new AntiXssSystemTextConverter());
        });
        某個(gè)屬性使用
        [JsonConverter(typeof(AntiXssSystemTextConverter))]
        public string? Id { get; set; }
         */
    }
}

上面實(shí)現(xiàn)思路是針對(duì)json序列化后的string字符串進(jìn)行編碼防止xss攻擊
其他實(shí)現(xiàn)比如中間件、Action的AOP方法也是可以的,可以自己實(shí)現(xiàn)

主要是看web項(xiàng)目使用的是那個(gè)json序列化工具newtonsoft就用newtonsoft,system.text.json就用下面的那個(gè)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-727071.html

到了這里,關(guān)于asp.net core中間件預(yù)防防止xss攻擊的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • ASP.NET Core中間件記錄管道圖和內(nèi)置中間件

    ASP.NET Core中間件記錄管道圖和內(nèi)置中間件

    下圖顯示了 ASP.NET Core MVC 和 Razor Pages 應(yīng)用程序的完整請(qǐng)求處理管道 中間件組件在文件中添加的順序 Program.cs 定義了請(qǐng)求時(shí)調(diào)用中間件組件的順序以及響應(yīng)的相反順序。該順序?qū)τ诎踩?、性能和功?至關(guān)重要。 ? 內(nèi)置中間件 原文 翻譯 Middleware Description Order 中間件 描述 命

    2024年02月13日
    瀏覽(20)
  • 如何在 ASP.NET Core 配置請(qǐng)求超時(shí)中間件

    如何在 ASP.NET Core 配置請(qǐng)求超時(shí)中間件

    本文參考官方文檔,使用Asp.net core 8.0 的最小API 模板項(xiàng)目,配置超時(shí)中間件。 超時(shí)中間件可用于所有類型的ASP.NET Core應(yīng)用:最小 API、帶控制器的 Web API、MVC 和 Razor Pages。請(qǐng)求超時(shí)的屬性位于命名空間 Microsoft.AspNetCore.Http.Timeouts 中。 需要注意的是,當(dāng)應(yīng)用在調(diào)試模式下運(yùn)行時(shí)

    2024年01月20日
    瀏覽(93)
  • 1.ASP.NET Core中間件管道MAP的作用?

    簡(jiǎn)述: Map基于給定請(qǐng)求路徑的匹配項(xiàng)來(lái)創(chuàng)建請(qǐng)求管道分支??梢葬槍?duì)不同的路徑添加不同的中間件。 詳解: 中間件是組裝到應(yīng)用程序管道中以處理請(qǐng)求和響應(yīng)的軟件組件。 每個(gè)組件都選擇是否將請(qǐng)求傳遞給管道中的下一個(gè)組件,并可以在管道中調(diào)用下一個(gè)組件之前和之后執(zhí)

    2024年02月17日
    瀏覽(21)
  • .net 溫故知新【17】:Asp.Net Core WebAPI  中間件

    .net 溫故知新【17】:Asp.Net Core WebAPI 中間件

    到這篇文章為止,關(guān)于.NET \\\"溫故知新\\\"系列的基礎(chǔ)知識(shí)就完結(jié)了,從這一系列的系統(tǒng)回顧和再學(xué)習(xí),對(duì)于.NET core、ASP.NET CORE又有了一個(gè)新的認(rèn)識(shí)。 不光是從使用,還包括這些知識(shí)點(diǎn)的原理,雖然深入原理談不上,但對(duì)于日常使用也夠了,我想的是知其然,知其所以然。 在實(shí)際

    2024年01月18日
    瀏覽(96)
  • ASP.NET Core如何知道一個(gè)請(qǐng)求執(zhí)行了哪些中間件?

    ASP.NET Core如何知道一個(gè)請(qǐng)求執(zhí)行了哪些中間件?

    需要添加兩個(gè)Nuget包分別是: Microsoft.AspNetCore.MiddlewareAnalysis 和 Microsoft.Extensions.DiagnosticAdapter ,前者是分析記錄中間件核心代碼實(shí)現(xiàn)后者是用來(lái)接收日志輸出的,由于是用的DiagnosticSource方式記錄日志,所以需要使用DiagnosticListener對(duì)象的SubscribeWithAdapter方法來(lái)訂閱。 這個(gè)適配器

    2023年04月09日
    瀏覽(100)
  • ASP.NET Core 的 Web Api 實(shí)現(xiàn)限流 中間件

    ASP.NET Core 的 Web Api 實(shí)現(xiàn)限流 中間件

    Microsoft.AspNetCore.RateLimiting ?中間件提供速率限制(限流)中間件。 它是.NET 7 以上版本才支持的中間件,剛看了一下,確實(shí)挺好用,下面給大家簡(jiǎn)單介紹一下: RateLimiterOptionsExtensions?類提供下列用于限制速率的擴(kuò)展方法:????? 固定窗口限制器 滑動(dòng)窗口限制器 令牌桶限

    2024年01月17日
    瀏覽(18)
  • asp.net core 一種基于token 和 Permission 的權(quán)限管理中間件示例

    asp.net core 一種基于token 和 Permission 的權(quán)限管理中間件示例

    asp.net core webapi 下面,想做一個(gè)過(guò)濾權(quán)限的Filter,配合token,對(duì)api做一個(gè)較為細(xì)粒度的權(quán)限控制, 該filter (PermissionFilter) 的作用是用戶LoginUser.Permissions 列表中有 Key指定的權(quán)限才可以訪問(wèn),沒(méi)有則返回403 錯(cuò)誤碼。 ? 1. 先上封裝后的使用效果 說(shuō)明:要求登錄即可,不要求特定權(quán)限

    2024年02月05日
    瀏覽(22)
  • 精通中間件測(cè)試:Asp.Net Core實(shí)戰(zhàn)指南,提升應(yīng)用穩(wěn)定性和可靠性

    精通中間件測(cè)試:Asp.Net Core實(shí)戰(zhàn)指南,提升應(yīng)用穩(wěn)定性和可靠性

    在上一章節(jié)我們實(shí)戰(zhàn)了在 Asp.Net Core 中的項(xiàng)目實(shí)戰(zhàn),這一章節(jié)講解一下如何測(cè)試 Asp.Net Core 的中間件。 還記得我們?cè)诩蓽y(cè)試中提供的 TestServer 嗎? TestServer 是由 Microsoft.AspNetCore.TestHost 包提供的。包含了用于在測(cè)試環(huán)境中模擬 ASP.NET Core 應(yīng)用程序的類和方法。通過(guò)使用 TestSe

    2024年04月22日
    瀏覽(35)
  • .net core 中間件

    先說(shuō)一下 管道 這個(gè)概念: 在ASP.NET Core中,管道(Pipeline)是一個(gè)由多個(gè)中間件組成的處理請(qǐng)求和生成響應(yīng)的機(jī)制。請(qǐng)求從第一個(gè)中間件開始,經(jīng)過(guò)一系列中間件的處理,然后生成最終的響應(yīng)。 每個(gè)中間件都會(huì)處理請(qǐng)求,并將請(qǐng)求傳遞給下一個(gè)中間件,直到達(dá)到最后一個(gè)中間

    2024年02月14日
    瀏覽(26)
  • .net core 中什么是中間件

    在 .NET Core 中,中間件(Middleware)是 ASP.NET Core 應(yīng)用程序處理請(qǐng)求和響應(yīng)的組件。中間件位于應(yīng)用程序的請(qǐng)求處理管道中,它可以截獲請(qǐng)求,執(zhí)行一些邏輯,并將請(qǐng)求傳遞給下一個(gè)中間件或終止請(qǐng)求的執(zhí)行。 中間件的主要作用是實(shí)現(xiàn)橫切關(guān)注點(diǎn),處理跨請(qǐng)求的功能和任務(wù),例

    2024年01月17日
    瀏覽(33)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包