国产aaa免费视频国产,日韩一区二区不卡中文字幕,日产精品一二三四区国产,69频道,精品亚洲成a人片在线观看,伊人福利视频,欧美线在线精品观看视频

威勢網(wǎng)絡(luò),為您的企業(yè)和團(tuán)隊(duì)注入互聯(lián)網(wǎng)活力!
服務(wù)熱線:138-9741-0341

[原創(chuàng)]X-Frame-Options ALLOW-FROM 無效

發(fā)布日期:2022/8/30 作者: 瀏覽:1038

這個(gè)特性主要是為了防止黑客對(duì)網(wǎng)站XSS攻擊,偽造一個(gè)假的iframe欺騙客戶點(diǎn)擊或提交數(shù)據(jù),從而獲得敏感數(shù)據(jù)的。但是搞不好,會(huì)將本網(wǎng)站的IFRAME也會(huì)屏蔽掉,非常討厭。如下的代碼就會(huì)出現(xiàn)這個(gè)問題。

context.HttpContext.Response.Headers.Add("X-Frame-Options", "allow-from http://zj.qhwins.com");

//同時(shí),這種寫法在Edge瀏覽器中報(bào)如下錯(cuò)誤




谷歌瀏覽器較新版不支持ALLOW-FROM,我們更好的寫法是將允許的站點(diǎn)添加進(jìn)去,如下所示


app.Use(async (context, next) =>
{
    context.Response.Headers.Add("X-Frame-Options", "ALLOW-FROM http://localhost:8080 http://localhost:8088");
    await next();
});


其實(shí)以上是老式淘汰的寫法,用以下新的方法代替


 //解決iframe安全問題
app.Use(async (context, next) =>
            {
                string host= context.Request.Host.Host+context.Request.Host.Port;
                context.Response.Headers.Add("Content-Security-Policy", "frame-ancestors *."+host+":80 "+host+":*;");
                await next();
            });

注意:如果只放新式的,可能安全掃描器依然會(huì)報(bào)警,如下圖:

可以將兩個(gè)同時(shí)放上,


       //解決iframe安全問題
            app.Use(async (context, next) =>
            {
                try
                {
                    string host = context.Request.Host.Host;
                    var kv = new KeyValuePair<string,Microsoft.Extensions.Primitives.StringValues>("X-Frame-Options", "ALLOW-FROM http://"+host+":*");
                    if (context.Response.Headers.Contains(kv)==false)
                    {
                        context.Response.Headers.Add(kv);
                    }

                    kv = new KeyValuePair<string, Microsoft.Extensions.Primitives.StringValues>("Content-Security-Policy", "frame-ancestors *."+host+":* "+host+":*;");
                    if (context.Response.Headers.Contains(kv)==false)
                    {
                        context.Response.Headers.Add(kv);
                    }
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.Message+ex.InnerException);
                }
                await next();
            });


放上以后在瀏覽器中打開URL請(qǐng)求,查看報(bào)文,有以下返回

注意,Response Header中多了兩行:

Content-Security-Policy 和 X-Frame-Options

現(xiàn)在同域名下iframe已經(jīng)可以打開了,安全掃描器也不報(bào)警了,安全掃描結(jié)果如下:

另一個(gè)Session Cookie without Secure flag set 安全警告則是因?yàn)闆]有使用HTTPS協(xié)議引起的,那是另一個(gè)問題,與這個(gè)沒關(guān)系了。問題已完全解決。


下拉加載更多評(píng)論
最新評(píng)論
暫無!