标签: cloudflare

在GWT中获取com.google.gwt.user.client.rpc.StatusCodeException:0

我有时/经常在GWT中获得此异常,但不知道原因:

SEVERE: com.google.gwt.user.client.rpc.StatusCodeException: 0 
java.lang.RuntimeException: com.google.gwt.user.client.rpc.StatusCodeException: 0 
    at Unknown.java_lang_RuntimeException_RuntimeException__Ljava_lang_Throwable_2V(Unknown Source)
    at Unknown.de_ctech24_simplynews_web_client_util_SimpleCallback_$onFailure__Lde_ctech24_simplynews_web_client_util_SimpleCallback_2Ljava_lang_Throwable_2V(Unknown Source)
    at Unknown.com_google_gwt_user_client_rpc_impl_RequestCallbackAdapter_$onResponseReceived__Lcom_google_gwt_user_client_rpc_impl_RequestCallbackAdapter_2Lcom_google_gwt_http_client_Request_2Lcom_google_gwt_http_client_Response_2V(Unknown Source)
    at Unknown.com_google_gwt_http_client_Request_$fireOnResponseReceived__Lcom_google_gwt_http_client_Request_2Lcom_google_gwt_http_client_RequestCallback_2V(Unknown Source)
    at Unknown.com_google_gwt_http_client_RequestBuilder$1_onReadyStateChange__Lcom_google_gwt_xhr_client_XMLHttpRequest_2V(Unknown Source)
    at Unknown.<anonymous>(Unknown Source)
    at Unknown.com_google_gwt_core_client_impl_Impl_apply__Ljava_lang_Object_2Ljava_lang_Object_2Ljava_lang_Object_2Ljava_lang_Object_2(Unknown Source)
Caused by: com.google.gwt.user.client.rpc.StatusCodeException: 0 
    at Unknown.java_lang_RuntimeException_RuntimeException__Ljava_lang_String_2Ljava_lang_Throwable_2V(Unknown Source)
    at Unknown.com_google_gwt_user_client_rpc_StatusCodeException_StatusCodeException__ILjava_lang_String_2V(Unknown Source)
    at Unknown.com_google_gwt_user_client_rpc_impl_RequestCallbackAdapter_$onResponseReceived__Lcom_google_gwt_user_client_rpc_impl_RequestCallbackAdapter_2Lcom_google_gwt_http_client_Request_2Lcom_google_gwt_http_client_Response_2V(Unknown Source)
    at Unknown.com_google_gwt_http_client_Request_$fireOnResponseReceived__Lcom_google_gwt_http_client_Request_2Lcom_google_gwt_http_client_RequestCallback_2V(Unknown Source)
    at Unknown.com_google_gwt_http_client_RequestBuilder$1_onReadyStateChange__Lcom_google_gwt_xhr_client_XMLHttpRequest_2V(Unknown Source)
    at Unknown.<anonymous>(Unknown Source)
    at Unknown.com_google_gwt_core_client_impl_Impl_apply__Ljava_lang_Object_2Ljava_lang_Object_2Ljava_lang_Object_2Ljava_lang_Object_2(Unknown Source)
Run Code Online (Sandbox Code Playgroud)

花了一些时间谷歌后我发现了这个:http://www.mail-archive.com/google-web-toolkit@googlegroups.com/msg79537.html

有一个有趣的提示:如果您断开WLAN并再次连接,则会出现这种情况 - 然后出现错误.我在我的笔记本上尝试了这个 - 然后发生异常.

另一个问题是有时会出现这种异常(并非总是在同一时间或执行特定操作时 - 所以看似随机),尽管网络连接正常.我不知道为什么会发生这种情况,也不知道处理它的正确方法是什么 - 确保我能抓住并忽略它.但是请求永远不会进入服务器并且不执行操作 - 不是很好的错误处理.

关于这个应用程序的一些数据 - 这可能有助于缩小或希望解决问题: …

gwt gwt-rpc gxt cloudflare

9
推荐指数
1
解决办法
1万
查看次数

CloudFlare JS 挑战正在打破我的 SPA

我有一个基于 React 的 SPA,它通过 S3 托管在一个子域 react.mydomain.com 上……它与托管在另一个子域 api.mydomain.com 上的 VPS 上的 PHP REST API 通信。api.mydomain.com 位于 CloudFlare 之后。Web 应用程序位于 CloudFront 之后,因为它位于 AWS 上。

我遇到了机器人请求直接发送到 API 淹没我的 VPS 的问题,我想使用 CloudFlare 的 JS 挑战功能来缓解。

然而,似乎正在发生的事情是用户能够加载 React webapp(它不在 CloudFlare 后面)。然后,提示JS挑战的请求会立即失败并返回503响应,因为它是一个AJAX请求,与Javascript挑战不兼容。

我想我可以通过捕获错误和重定向来处理这个问题。但是,如果我手动强制我自己的浏览器导航到 api.mydomain.com URL,我将看到 CloudFlare 挑战并通过它。但是,如果我随后导航回我的 react.mydomain.com SPA,则 OPTIONS 请求将失败,因为它无法附加告诉 CloudFlare 它已通过的 cookie。

我不明白如何调整我的基础设施,以便我可以利用使用 JS 挑战。目前我被限制使用速率限制,但我发现当我变得足够严重以至于用户开始抱怨时,我仍然让大约 75% 或更多不需要的机器人流量通过。

security cors cloudflare laravel reactjs

9
推荐指数
1
解决办法
1373
查看次数

Heroku的变通办法不再支持Cloudflare后面的SSL(“不支持CDN中的严格TLS”)?

几天前,在Cloudflare代理(橙色云,如果您知道Cloudflare)后面的1个Heroku应用程序上,我们收到错误消息“不支持CDN中的严格TLS”。

基本上,客户端对https://foo.example.com的请求是通过Cloudflare代理的,然后Cloudflare向https://foo.herokuapp.com发出请求,缓存响应,并将结果传递回客户端。请注意,整个链都是通过HTTPS进行的。我们已经将Clouflare配置为通过HTTPS与终端服务器通信,并且我们不希望终端服务器通过HTTP发送响应。

当Heroku的策略检测到您位于已经在处理SSL的代理后面时,似乎不再允许通过SSL进行服务。在过去的一周中,更多的应用程序开始显示此错误,我们不得不禁用Cloudflare的代理。这是他们的文档,给出的原因是“因为Cloudflare提供了SSL证书”。

其他人遇到此问题并有解决方法吗?尽管Cloudflare仍然可以阻止从客户端到Cloudflare的某些漏洞,但这仍使其他漏洞从Cloudflare到最终服务器都可以打开。

更新:我已经收到Heroku的回复:

ACM可以与Full或Flexible一起使用,并且可以与“ Full(Strict)”一起使用,但不建议这样做。ACM完成后,可以使用“完全(严格)”模式。如果需要“完全(严格)”,我们建议使用CA签发的具有CSR签名过程的长期证书。

但是,我没有发现上述说法是正确的。在任何设置(完全或严格)下,Heroku始终报告上述错误。我已经安装了Cloudflare的原始证书来解决此问题。

ssl heroku cloudflare

9
推荐指数
1
解决办法
461
查看次数

处理 CloudFlare 的:cf_chl_jschl_tk 和 cf_chl_captcha_tk?

问题:

当我的网站设置为“我受到攻击”模式时,一旦用户通过 CloudFlare 屏幕,他们就会被重定向到我的网站,并使用一个大而长的查询获取参数:

?__cf_chl_jschl_tk__=63c51316f61a63e46f1639d6cf43f9d9b536adea-1587754610-0-AV-peahelegQeMeSrc_4ZJBUq47gdkX_QiS2eERoRTEODUjwbib2MM_73nQDAhukLbkspNpj01mv-Z-JteR4MpY4LUMm-yLJrPQKTX74DGYbZIs2utbp3_q4uozgzKpqcax10YESVKDhZgaWQYHGqBL9koIoasVOzKyvU7VQuKT1Nieo-i8DdXrV0IQf-nyI8KgWnxhYSVBOc-4WNrZzHQlEXFOpV45AGs10aMJyrs376HLRhNdV05MCj8oqMrexuQDtY7B3p7riHByYdB7GIgc
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

为什么这是不好的:

  • 在线共享的丑陋链接 - (我已经看到这种情况发生了几次)
  • 我无法重定向获取参数 - (无法访问它们以检查是否设置为重定向)
  • 丑陋的网址 - (我们花了很多时间为我们的应用程序编写干净/漂亮的网址)
  • POST 数据设置在页面上 - (如果不“重新提交”CF 身份验证,您将无法刷新)

建议的解决方案:

我认为避免这种情况的方法是检查是否设置了获取参数,然后重定向回删除参数的同一页面。(确保在设置时不会丢失任何其他查询参数)

我写了一个函数来实现这一点:

function checkAndRemoveCloudFlareParams() {
    if (isset($_GET['__cf_chl_jschl_tk__']) && ! empty($_GET['__cf_chl_jschl_tk__'])
     || isset($_GET['__cf_chl_captcha_tk__']) && ! empty($_GET['__cf_chl_captcha_tk__'])) {

        $new_uri = '?';
        $uri = explode('?', $_SERVER['REQUEST_URI']);
        $uri = $uri[0];

        // Get any other params to put back on later
        foreach ($_GET as $key => $var) {
            if ($key !== '__cf_chl_jschl_tk__' && $key !== '__cf_chl_captcha_tk__') {
                $new_uri .= $key . '=' …
Run Code Online (Sandbox Code Playgroud)

php ddos cloudflare

9
推荐指数
2
解决办法
4307
查看次数

获取请求的真实 ip 地址而不是 Cloudflare 的 ip 地址

Cloudflare 更改传入请求的 IP 地址,因为 Cloudflare 是我的网站和互联网之间的中间件,即代理。

我应该如何获取请求的初始 IP 地址,而不是 Cloudflare 的 IP 地址。我听说过,mod_cloudflare但是这个插件是否只更新了我日志中的 ip 地址(?),而且我没有找到 nginx 的版本。

javascript nginx node.js cloudflare

8
推荐指数
1
解决办法
4737
查看次数

如何使用 PHP Curl 修复“请启用 cookie”Cloudflare 错误

当在我的机器上本地使用邮递员时,我能够毫无问题地发送请求并得到响应。由于我发送 api 的令牌无效,我应该收到返回的令牌。

\n\n
{\n    "status": "Error",\n    "message": "Invalid API Token"\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

使用邮递员的实用程序生成 php 卷曲代码来发出此请求我得到了这个。

\n\n
\n$curl = curl_init();\n\ncurl_setopt_array($curl, array(\n    CURLOPT_URL => "https://app.mobilecause.com/api/v2/reports/transactions.json",\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_ENCODING => "",\n    CURLOPT_MAXREDIRS => 10,\n    CURLOPT_TIMEOUT => 30,\n    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,\n    CURLOPT_CUSTOMREQUEST => "GET",\n    CURLOPT_POSTFIELDS => "",\n    CURLOPT_COOKIESESSION => true,\n    CURLOPT_COOKIEFILE => "cookie.txt",\n    CURLOPT_COOKIEJAR => "cookie.txt",\n    CURLOPT_FOLLOWLOCATION => true,\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER => array(\n        \'Authorization: Token token="test_token"\',\n        "Content-Type: application/x-www-form-urlencoded",\n        "cache-control: no-cache",\n    ),\n));\n\ncurl_setopt($curl, CURLOPT_VERBOSE, true);\n\n$response = curl_exec($curl);\n$err = curl_error($curl);\n\ncurl_close($curl);\n\nif ($err) {\n    echo "cURL …
Run Code Online (Sandbox Code Playgroud)

php curl cloudflare

8
推荐指数
1
解决办法
6552
查看次数

通过 Selenium Python 在普通/无头模式下使用 ChromeDriver/Chrome 访问 Cloudflare 网站有什么区别

我有一个问题 --headlessPython Selenium for Chrome 模式。

代码

 from selenium import webdriver
 from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

 CHROME_DRIVER_DIR = "selenium/chromedriver"

 chrome_options = webdriver.ChromeOptions()
 caps = DesiredCapabilities().CHROME
 chrome_options.add_argument("--disable-dev-shm-usage")
 chrome_options.add_argument("--remote-debugging-port=9222")
 chrome_options.add_argument("--headless")  # Runs Chrome in headless mode.
 chrome_options.add_argument('--no-sandbox')  # # Bypass OS security model
 chrome_options.add_argument("--disable-extensions")
 chrome_options.add_argument("--disable-gpu")

 browser = webdriver.Chrome(desired_capabilities=caps, executable_path=CHROME_DRIVER_DIR, options=chrome_options)

 browser.get("https://www.manta.com/c/mm2956g/mashuda-contractors")
 print(browser.page_source)
 browser.quit()
Run Code Online (Sandbox Code Playgroud)

当我删除chrome_options.add_argument("--headless")所有工作正常时,但是--headless*有了下一个问题

Please enable cookies.

Error 1020 Ray ID: 53fd62b4087d8116 • 2019-12-04 11:19:28 UTC

Access denied

What happened?
This website is using a security service to …
Run Code Online (Sandbox Code Playgroud)

python selenium cloudflare selenium-chromedriver google-chrome-headless

8
推荐指数
3
解决办法
1万
查看次数

使用 puppeteer 绕过 Cloudflare

我正在尝试使用 puppeteer 抓取某个网站的一些初创公司数据,当我尝试导航到下一页时,cloudflare 等待屏幕出现并中断抓取。我尝试更改IP,但还是一样。有没有办法用 puppeteer 绕过它。

(async () => {

  const browser = await puppeteer.launch({
    headless: false,
    defaultViewport: null,
  });

  const page = await browser.newPage();

  page.setDefaultNavigationTimeout(0);

  let links = [];

  // initial page

  await page.goto(`https://www.startupranking.com/top/india`, {
    waitUntil: "networkidle0",
  });

  // looping through the url to different pages

  for (let i = 2; i <= 7; i++) {
    if (i === 3) {
      console.log("waiting");

      await page.waitFor(20000);

      console.log("waited");
    }

    const onPageLinks = await page.$$eval("tr .name a", (arr) =>
      arr.map((cur) => cur.href)
    ); …
Run Code Online (Sandbox Code Playgroud)

captcha bots cloudflare google-chrome-headless puppeteer

8
推荐指数
0
解决办法
2万
查看次数

如何在 Cloudflare Workers 中设置 CORS?

我是 Cloudflare Workers 的新手。

如何在 Cloudflare Workers 中设置 CORS?

  response = await cache.match(cacheKey);
  if (!response) {
    // handle fetch data and cache
  }
  const myHeaders = new Headers();
  myHeaders.set("Access-Control-Allow-Origin", event.request.headers.get("Origin"));
  return new Response(JSON.stringify({
    response
  }), {
    status: 200, headers: myHeaders
  });
Run Code Online (Sandbox Code Playgroud)

javascript node.js cloudflare

8
推荐指数
3
解决办法
2万
查看次数

在 CDN 上部署 React 应用程序,在服务器上部署 API 后端?

使用 CloudFlare 等 CDN 提供商在边缘托管 SPA 应用程序(即 React),但在常规 VPS/专用服务器上提供 SPA 应用程序使用的 API 后端,是否有任何重要的好处?

更常见的方法似乎是在 CDN 上托管 SPA,并拥有 AWS Lambda 或 Cloudflare Workers 等无服务器后端。我的应用程序和后端目前都在美国数据中心的 DigitalOcean 之类的 VPS 上提供服务,但分析显示我的用户也来自地球的另一半。

是否值得将 React 应用程序从 VPS 服务器迁移到 CDN?

谢谢

cdn cloudflare single-page-application reactjs serverless

8
推荐指数
0
解决办法
678
查看次数