在作为内容管理系统的React Web应用程序中,我有一个“广告商”屏幕,用户可以在其中处理“广告商”实体。
此屏幕与我自己的服务器(相同域)上的端点进行交互,该服务器上包含“ advertiser”一词,例如
List<string> allParams = new List<string>();
//here add fields you want to filter and their impact on rowview in string form
if (tsPrzelewyTxtOpis.Text != ""){ allParams.Add("Opis like '%" + tsPrzelewyTxtOpis.Text + "%'"); }
if(tsPrzelewyTxtPlatnik.Text != ""){ allParams.Add("Płacący like '%" + tsPrzelewyTxtPlatnik.Text + "%'"); }
if(tsPrzelewyDropDownKonto.Text != "") { allParams.Add("Konto = '" + tsPrzelewyDropDownKonto.Text + "'"); }
if (tsPrzelewyDropDownWaluta.Text != "") { allParams.Add("Waluta = '" + tsPrzelewyDropDownWaluta.Text + "'"); }
if (tsPrzelewyDropDownStatus.Text != "") { allParams.Add("Status = '" + tsPrzelewyDropDownStatus.Text + "'"); }
string finalFilter = string.Join(" and ", allParams);
if (finalFilter != "")
{ (dgvPrzelewy.DataSource as DataTable).DefaultView.RowFilter = "(" + finalFilter + ")"; }
else
{ (dgvPrzelewy.DataSource as DataTable).DefaultView.RowFilter = ""; }
要么
GET <domain>/advertiser/31
问题在于广告拦截者将我的路线识别为有害路线,并阻止了对这些路线的请求。
除了重命名端点之外,还有其他方法可以克服吗?
答案 0 :(得分:1)
简短回答
对于内部应用程序,请让您的用户禁用网站域的广告拦截器浏览器插件。对于面向公众的网站,最实用的方法是将<domain>/advertiser/31
重命名为<domain>/vendor/31
之类。
按网址格式过滤广告拦截器
假设您的React Content Management System仅在公司内部网中使用,那么您应该对用户的环境有一定的控制权。明确包含在广告拦截软件中将您的域列入白名单的说明。
广告拦截器有几种过滤广告的机制,其中之一是URL模式匹配。以流行的广告过滤器列表EasyList为例。您可以看到诸如/advertises/*
之类的模式。如果您的网址与这些模式中的任何一种匹配,它们将被阻止。