一区在线电影,国产在线首页,中文字幕精,天天爽天天射,夜色99,日韩国产成人av,伊人久久综合视频

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

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

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

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

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

//同時,這種寫法在Edge瀏覽器中報如下錯誤




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


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


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


 //解決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();
            });

注意:如果只放新式的,可能安全掃描器依然會報警,如下圖:

可以將兩個同時放上,


       //解決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請求,查看報文,有以下返回

注意,Response Header中多了兩行:

Content-Security-Policy 和 X-Frame-Options

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

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


下拉加載更多評論
最新評論
暫無!