阻止网站发送特定的帖子请求

时间:2016-12-01 12:58:20

标签: javascript http

是否可以阻止特定网站(例如:facebook.com)发送特定的帖子请求?

有什么方法可以“禁止”Facebook发布到特定网址吗?

我正在尝试阻止“https://www.messenger.com/ajax/mercury/delivery_receipts.php?dpr=2”请求

2 个答案:

答案 0 :(得分:0)

您永远不能阻止第三方发出HTTP请求(好吧,在连接到HTTP服务器之前没有阻止它们在网络级别,这限制了您通过IP地址检测请求(见下文))

您可以尝试检测该第三方并以不同方式处理该请求(例如,立即返回403错误)。

检测第三方的主要方法是:

  • 他们的IP地址(可能会改变,可能与其他人分享)
  • 他们的用户代理字符串(除非他们试图逃避您的检测,但可能会与标准浏览器用户代理发生冲突,否则不太可能发生变化)。
  • 他们缺少凭据,例如Cookie(要求您在访问该网址之前将这些凭据提供给其他人)。

但是,一般情况下,对URL的GET请求应该是无害的。如果您试图阻止他们制作它,可能是因为请求有副作用(例如从数据库中删除某些内容)。

如果是,那么解决方案是要求POST请求。 HTTP规范说GET requests should be safe

答案 1 :(得分:0)

您可以在客户端阻止AJAX请求。

首先,您需要覆盖http://quickstart.cloudera:8888/about/。在此函数中,使用提供的参数调用原始XMLHttpRequest.prototype.open函数。然后存储对此open的{​​{1}}函数的引用。最后覆盖此send的{​​{1}}函数。

在新的XMLHttpRequest函数中,比较提供给send函数调用的方法和post参数。如果它通过比较,则使用原始参数调用原始XMLHttpRequest函数。如果它没有通过,则不执行任何操作,您已成功阻止该请求。

send

以下演示中的其余代码代码用于演示如何使用它,并且它确实有效。为简单起见,我使用了ECMAScript 2015语言规范中引入的一些功能,但这些功能都不是完成此任务所必需的。



open