ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript により、Web ページが WeChat の組み込みブラウザでのみアクセスできるように制限される_JavaScript のヒント

JavaScript により、Web ページが WeChat の組み込みブラウザでのみアクセスできるように制限される_JavaScript のヒント

WBOY
リリース: 2016-05-16 16:31:43
オリジナル
1819 人が閲覧しました

そこで疑問が生じます。この Web ページには、最初にモバイル Web フロントエンドの開発が含まれており、ページの美しい効果を実現するために HTML5 ブートストラップの使用を優先しました (ここでは私が実行しています)。完全にネイティブ JavaScript を使用します) このコードではフレームワークを使用しません。これは、携帯電話での Web ページの読み込み速度が本質的に遅いことと、フレームワーク内の未使用の関数の多くが Web ページとともに読み込まれ、ユーザー トラフィックを消費することを考慮したためです。

すべての機能が整い、顧客が試用版に非常に満足した後、コードを公式サーバーに送信しました。しかし、相手は突然何かを言いました。あなたが作成したページは確かに非常に美しく、互換性も優れていますが、このページはあなたのコンピュータのブラウザを使用してアクセスすることもできるので、他の人がページのソースコードを簡単に見ることができます。ページ全体をコピーしてください。これを防ぐ方法はありますか?そこで、WeChat の二次開発を行うのは初めてですが、どうすればよいでしょうか?

しばらく考えられなかったので、この問題をひとまず横に置いて、バックエンドのビジネスをしました。バックグラウンドでデータ収集機能を実行するときに、PHP コードでパラメーター $_SERVER['HTTP_USER_AGENT'] が使用されていました。ブラウザが Web ページにアクセスすると、UserAgent がサーバーに送信されることに突然気づきました。 WeChat にはブラウザーとユーザーの操作に関するいくつかの基本情報が含まれています。WeChat にはブラウザーが組み込まれているため、WeChat で Web を閲覧するときに、UserAgent には WeChat に関連する独自のロゴが表示されます (結局のところ、Tencent は非常に大きな企業です)。 WeChat は彼らの中核となる製品の 1 つです)?コードを使用して UserAgent を出力するだけで確認できます。JavaScript コードは次のとおりです:

コードをコピーします コードは次のとおりです:

<スクリプトタイプ="text/javascript">
アラート(navigator.userAgent);

携帯電話で写真に示すような結果が得られました:

今回は本当に違うものを見つけました。賢い友人もそれを発見したと思います: MicroMessenger/6.0.0.50_r844973.501。スラッシュの後の文字列は現在の WeChat のバージョン番号です。使用する場合は、先頭に WeChat の固有のロゴを付ける必要があります。実は最初、中国語訳で「マイクロメッセージ」という意味だと思ってMicroMessageだと思ったのですが、よく見てみるとそうではないことが分かりました。メッセンジャーとは「メッセンジャー、メッセンジャー」という意味です。このロゴは他のブラウザでは見つからないはずです。その解決策は次のとおりです。コードを参照してください:

コードをコピーします コードは次のとおりです:

<スクリプトタイプ="text/javascript">
// ブラウザの UserAgent で通常のマッチングを実行します。WeChat の一意の識別子が含まれていない場合は、他のブラウザになります
var useragent = navigator.userAgent;
If (useragent.match(/MicroMessenger/i) != 'MicroMessenger') {
// ここの警告ボックスにより、現在のページの読み込みがブロックされます
alert('このアクセスは禁止されています: このページにアクセスするには WeChat の内蔵ブラウザを使用する必要があります!');
//次のコードは JavaScript を使用して現在のページを強制的に閉じます
var opens = window.open('about:blank', '_self');
opens.opener = null;
開いた.close();
}

このコードは Android、iPhone、iPad、および PC でテストされています。WeChat 内で Web ページが開かれていない限り、現時点では、次のページは空白で、何も表示されません。 else ロードされていません。警告ボックスの [OK] ボタンをクリックすると、コードの最後の 3 行によって現在のページが強制的に閉じられます。さて、ユーザーの当初の意図が実現したので、これで終わりとします。

待って、本当にこれで終わりにしていいでしょうか?他に問題はないと思いますか?もちろん、実際には、この方法ではリラックスすることはできません。一般的に言えば、偽造された UserAgent はこの制限を回避できますが、悪役を防ぐことはできません。もちろん、この問題を解決するより良い方法を持っている友人がいたら、下のコメントで教えてください。テクノロジーは相互の共有とコミュニケーションにあります(笑)。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート