【问题标题】:How Incapsula works and how to beat itIncapsula 如何工作以及如何击败它
【发布时间】:2018-05-14 20:48:04
【问题描述】:

Incapsula 是一个 Web 应用交付平台,可用于防止抓取。

我在 Python 和 Scrapy 中工作,我找到了 this,但它似乎已经过时并且不适用于当前的 Incapsula。我用我的target website 测试了 Scrapy 中间件,但由于中间件无法提取一些混淆参数,我得到了 IndexErrors。

是否可以调整这个 repo 或者 Incapsula 现在改变了它的操作模式?

我也很好奇如何将请求从 chrome 开发工具“复制为 cURL”到我的目标页面,并且 chrome 响应包含用户内容,但 curl 响应是一个“封装事件”页面.这适用于最初清除 cookie 的 chrome .....

curl 'https://www.radarcupon.es/tienda/fotoprix.com' 
-H 'pragma: no-cache' -H 'dnt: 1' -H 'accept-encoding: gzip, deflate, br' 
-H 'accept-language: en-GB,en-US;q=0.9,en;q=0.8' 
-H 'upgrade-insecure-requests: 1' 
-H 'user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/62.0.3202.94 Chrome/62.0.3202.94 Safari/537.36' 
-H 'accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8' 
-H 'cache-control: no-cache' -H 'authority: www.radarcupon.es'
 --compressed

我原以为双方的第一个请求会返回类似 javascript 挑战的内容,它会设置一个 cookie,但现在似乎不太像那样工作?

【问题讨论】:

  • 它使用 javascript,因此您需要使用 Splash 或 Selenium。如果网站没有通过指纹检测到旧版本的 webkit(可能会),我会推荐 Splash。否则使用硒。即使添加了正确的标题,它仍然可以通过各种浏览器设置、屏幕显示、指纹识别来检测机器人......所以这就解释了为什么你的 curl 不起作用。 Selenium 会很慢,但可以肯定。
  • 但我的意思是他们是如何从第一个请求开始的。所有服务器将看到的是同一个数据包。当然,他们必须首先向我发送一个加载了 javascript 的响应,然后在交付更多内容之前执行指纹或质询。
  • 祝你好运,以便告诉你如何打破安全措施。我不知道它是如何工作的。如果有某种原因你不能使用硒?因为这是通往成功的捷径。
  • 我想我可能可以将硒用于我的目的。我也只是好奇 incapsula 是如何工作的
  • 看看this,不过我没试过

标签: python web-scraping scrapy incapsula


【解决方案1】:

很难给出具体的答案,因为 Incapsula 有一个非常详细的规则引擎,可以用来阻止或质疑请求。 Cookie 检测和 Javascript 支持是用于识别可疑流量的两个最常见的数据点;源自客户端 IP 地址的用户代理字符串、标头和行为(每分钟请求数、AJAX 请求等)也可能导致 Incapsula 挑战流量。如果 DDoS 保护功能没有根据站点看到的流量进行合理配置,则会主动阻止请求。

【讨论】:

    猜你喜欢
    • 2018-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-28
    • 1970-01-01
    • 2014-06-10
    • 2013-08-04
    相关资源
    最近更新 更多