1

現在、esp8266 を使用して、wifi 制御の RGB LED ストライプを構築しています。私はウェブサイト上で MCU を制御したいので、ウェブサイトをホストするサーバーをセットアップし、Arduino がサーバーに定期的に更新を照会できるようにすることを考えました (それよりも複雑ですが、この投稿には関係ありません)。

しかし、これが私の問題の出番です: Infinityfree (私のウェブサイトのホスト) は、他のほとんどのホスティング プロバイダーと同様に、クライアントがアンチボット対策として JavaScript を実行できるかどうかをチェックする単純なアンチボット モジュール (testcookie-nginx-module) を使用します。 . クライアントがインフィニティフリーの Web サイトに初めて接続すると、次のスクリプトが表示されます。

<html>
  <body>
       <script type="text/javascript" src="/aes.js"></script>
     <script>
              function toNumbers(d){
            var e=[];
            d.replace(/(..)/g,function(d){e.push(parseInt(d,16))});
            return e
          }
          function toHex(){
            for(var d=[],d=1==arguments.length&&arguments[0].constructor==Array?arguments[0]:arguments,e="",f=0;f<d.length;f++)
            e+=(16>d[f]?"0":"")+d[f].toString(16);
            return e.toLowerCase()
          }
          var a=toNumbers("f655ba9d09a112d4968c63579db590b4"),b=toNumbers("98344c2eee86c3994890592585b49f80"),c=toNumbers("8382e1a09e24573ac071261dccc8393c");
          document.cookie="__test="+toHex(slowAES.decrypt(c,2,a,b))+"; expires=Thu, 31-Dec-37 23:55:55 GMT; path=/"; location.href="http://thefreshsite.great-site.net/htm/theFreshSite.php?i=1";
      </script>
  
      <noscript>
        This site requires Javascript to work, please enable Javascript in your browser or use a browser with Javascript support
      </noscript>
  </body>
</html>

This script generates a string and saves it as a cookie in the clients browser. The next time the client connects to the website this string gets passed to the server as a http header, so that the server recognices the client and responds with the website. However, since the microcontroller cannot execute javascript it the only thing it receives is the information that javascript has to be enabled to work.

私はいくつかの調査を行いましたが、他の多くの人も同じ問題を抱えていました。この問題の一般的な解決策は、事前にブラウザーで Cookie を生成することです。Cookie は静的であるため (ヘッダー キー:"Cookie"、ヘッダー値: "__test=[THE_CONTENT_OF_YOUR_COOKIE]; expires=Thu, 31-Dec-37 23: 55:55 GMT; path="/") モジュールをバイパスする http リクエストのヘッダーとして送信できます。このソリューションを郵便配達員でテストしましたが、うまくいきませんでした。ヘッダーの値を台無しにしたか、postman を間違って使用しました (以前は使用したことがありませんでした)。

私のクッキー: __test=cf2bd8c5785c8e65a8ebd1b58eb666f7; 有効期限=木、31-Dec-37 23:55:55 GMT; パス=/

郵便配達員からのスクリーンショット:

郵便屋さん

私の情報源:

-https://blog.kwiatkowski.fr/?q=en/testcookie

明らかな何かが欠けている場合は申し訳ありません。私はこれまで Web サイトで作業したことがなく、このプロジェクトに必要な多くのことを学ぶ必要があります。

4

0 に答える 0