Networking URL过滤,URL问题

Networking URL过滤,URL问题,networking,http,url-redirection,Networking,Http,Url Redirection,我正在做一个URL过滤项目。我有一个数据库,其中包含需要阻止的URL(例如:a.b.com/d/e) 我从http请求中获取uri和域。我比较我的数据库和重定向用户没有任何问题。到目前为止还不错 问题始于包含查询字符串的URL和带有URL的其他魔法。例如,如果用户输入a.b.com/d/e?垃圾邮件。我得到的与我的数据库不匹配,用户将绕过我的过滤器,他们仍然可以访问a.b.com/d/e 我尝试了一些没用的动作,比如在特殊的字符后面切东西,比如“?,#”。但是在url上有问题,比如:youtub

我正在做一个URL过滤项目。我有一个数据库,其中包含需要阻止的URL(例如:a.b.com/d/e)

我从http请求中获取uri和域。我比较我的数据库和重定向用户没有任何问题。到目前为止还不错

问题始于包含查询字符串的URL和带有URL的其他魔法。例如,如果用户输入a.b.com/d/e?垃圾邮件。我得到的与我的数据库不匹配,用户将绕过我的过滤器,他们仍然可以访问a.b.com/d/e

我尝试了一些没用的动作,比如在特殊的字符后面切东西,比如“?,#”。但是在url上有问题,比如:youtube.com/watch?v=12vh55_1ul8,它变成了youtube.com/watch,并阻止了所有youtube。这个解决方案给我带来了更多的问题

现在我很困惑如何处理这个问题。有什么指南或库我可以在C++中使用吗?< /p> < p>试试这个代码:

 string str (get_requsted_uri());
 string str2 ("http://getaroundfilters.com/article/889/proxy");

 if (str.find(str2) != string::npos) {
 block();
 } else {
 get_and_return_webpage(str);
 }

所以你想只允许访问某些YouTube视频?YouTube就是一个例子。我的客户想要阻止他们想要的任何url。不阻塞整个域。例如阻塞:a.com/b/c/index.html,但不是整个a.coma、'b'、'c'可以是youtube、facebook、adultsite等处的任何字符串。您需要将key=值添加到被阻止的数据库中,就像使用hostname.com/path一样。然后可以忽略任何垃圾数据,只搜索主机&&path&&key=value。散列最有可能被忽略,因为它们主要用于客户端功能。这是一个编程问题,更适合StackOverlow.com。谢谢你的回答,但我不明白key=value将由什么组成。你能举个例子吗