C# 在浏览器端拦截HTTP请求以更改某些html内容

C# 在浏览器端拦截HTTP请求以更改某些html内容,c#,C#,我想做如下工作。最好的办法是什么?一般的回答也可以 我想在客户端截获一个HTTP请求来更改一些html内容。例如,我去了CNN.com,看到的不是一篇展示“两条洛杉矶狗结婚”的文章,而是一篇“可笑的标题被屏蔽” 即使是安全的证书也不会受到干扰,这应该是顺利的 我用的是C# 谢谢 更新:谢谢大家的回答 你是说你想为自己的网站截取这个 在任何情况下,它都需要用javascript或jQuery来完成,因为C#不是客户端语言。你是说你想为自己的网站截取它吗 在任何情况下,都需要用javascript或

我想做如下工作。最好的办法是什么?一般的回答也可以

我想在客户端截获一个HTTP请求来更改一些html内容。例如,我去了CNN.com,看到的不是一篇展示“两条洛杉矶狗结婚”的文章,而是一篇“可笑的标题被屏蔽”

即使是安全的证书也不会受到干扰,这应该是顺利的

我用的是C#

谢谢


更新:谢谢大家的回答

你是说你想为自己的网站截取这个


在任何情况下,它都需要用javascript或jQuery来完成,因为C#不是客户端语言。

你是说你想为自己的网站截取它吗


在任何情况下,都需要用javascript或jQuery完成,因为C#不是客户端语言。

本地HTTP代理是可能的,也是最通用的方法


也就是说,你可以用它来看看它是否适合你。除了定期监视流量之外,我还支持修改请求/响应。

本地HTTP代理是可能的,也是最通用的方法

也就是说,你可以用它来看看它是否适合你。除了定期监视通信量之外,我还支持修改请求/响应。

您可以通过他们的。他们是一个很好的例子,正是你想要做的那种替换

要在cnn.com上将“两条洛杉矶狗结婚”替换为“可笑的标题被屏蔽”,您的行动文件如下所示:

您的筛选文件如下所示

你可以通过他们的网站来做这件事。他们是一个很好的例子,正是你想要做的那种替换

要在cnn.com上将“两条洛杉矶狗结婚”替换为“可笑的标题被屏蔽”,您的行动文件如下所示:

您的筛选文件如下所示


如果您使用Firefox,另一个选择是使用脚本。这是一个改变cnn.com主要标题的新闻


如果您不熟悉制作Greasemoney脚本所需的Javascript编码,则可以使用来在位编辑页面并自动生成脚本文件

使用Firefox的另一个选择是使用脚本。这是一个改变cnn.com主要标题的新闻


如果您不熟悉制作Greasemoney脚本所需的Javascript编码,则可以使用来在位编辑页面并自动生成脚本文件

您可以使用HTTPListener设置代理。但我认为如果你想把它做好,你需要一个更低级的程序

  • 打开2个TCP端口(80和443)并主动侦听传入连接
  • 一旦收到
    • 走出去,代表请求者提出请求
  • 检索HTTP响应
  • 检查并更改HTTP响应(如适用)
    • 可能会修改标题(在适当的情况下)
  • 将响应转发给请求者
我将从一个简单的代理开始,它只转发所有请求并返回所有响应。一旦这一点到位,您就可以开始检查响应


这是一个很好的起点。

您可以使用HTTPListener设置代理。但我认为如果你想把它做好,你需要一个更低级的程序

  • 打开2个TCP端口(80和443)并主动侦听传入连接
  • 一旦收到
    • 走出去,代表请求者提出请求
  • 检索HTTP响应
  • 检查并更改HTTP响应(如适用)
    • 可能会修改标题(在适当的情况下)
  • 将响应转发给请求者
我将从一个简单的代理开始,它只转发所有请求并返回所有响应。一旦这一点到位,您就可以开始检查响应


这是一个很好的起点。

或者,你可以编写一个工具栏,或者一个简单的chrome插件,这很简单,但不是C#

您可以搜索库以通过代理监控浏览,如下所示:

java在本项目中使用的相同概念:


听起来很有趣,祝你好运:)

或者,你可以编写一个工具栏,或者一个简单的chrome插件,这很简单,但不是C#

您可以搜索库以通过代理监控浏览,如下所示:

java在本项目中使用的相同概念:


听起来很有趣,祝你好运:)

很久以前,我已经为IE实现了这个功能,所以在我用c#搜索了它之后,我在这里创建了这篇文章,应该可以帮助你开始使用它


希望这对你有用。

很久以前,我在c#中搜索了IE的相关内容后,为IE实现了这一功能。在这里,我创建了这篇文章,应该可以帮助你开始使用它


希望这对你有用。

这种方法是做你想做的事情效率最低的方法

如果这是一个客户端应用程序,客户端可能会禁用它,从而使其变得无用。 它也很难维护,需要更复杂的编程来确保它与SSL一起工作

  • 如果使用浏览器插件或工具栏,则需要为特定浏览器制作
  • 如果使用侦听服务器拦截HTTP请求,则在加密内容时会带来复杂性和困难,也会带来不必要的开销
  • 如果使用本地代理(意味着客户端浏览器需要指向本地代理服务),可能是最有效的客户端方法,但仍然存在上述缺点(难以维护等)
我相信,您希望做的是彻底改造车轮。

事实上,你提供了一笔赏金,这就引出了一个问题:你确实需要在C#和客户端这样做,但“审查不好的事情”
{ +filter{ridiculous-title-censor} }  
.cnn.com
# FILTER: ridiculous-title-censor Remove ridiculous titles
# This keeps CNN from getting too ridiculous
#
s/Two LA Dogs Marry/Ridiculous Title Blocked/ig