web-dev-qa-db-ja.com

私のAndroidブラウザでセーフサーチを有効にする方法

要件

ブラウザで、ブラウジング中にセーフサーチを有効/無効にする必要があります。

オン Googleセーフサーチページ

セーフサーチを使用してGoogleで明示的な結果をブロックする

セーフサーチ設定を使用すると、ポルノなどのGoogleでの明示的な検索結果をフィルタリングできます。セーフサーチは100%正確ではありません。ただし、携帯電話、タブレット、またはコンピューターでの明示的で不適切な検索結果を回避するのに役立ちます。

セーフサーチがオンになっている場合(グーグルクロームなど)、ユーザーは多くの脅威タイプ、感染ページ、ソーシャルエンジニアリングページ、ポルノなどの結果を表示せず、Google検索結果からの露骨な画像、ビデオ、およびWebサイトをブロックします。

これは、Chrome、GoogleアプリなどのGoogleプラットフォームで利用できます。このタスクを取得しましたが、ブラウザで有効にできますか

見つかったリソース

セーフサーチAPI からヒントを得ましたが、これを使用すると2つのことができるため、役立つかどうかわかりません。

  • ユーザーがウェブサイトを開くたびにapiを呼び出す必要があります( Lookup api
  • または、すべてのURLデータをダウンロードできます。 ( APIの更新

問題

  1. WebViewでGoogle検索結果をフィルタリングするにはどうすればよいですか? www.google.comwww.bing.comなどの検索エンジンによって提供される方法はありますか。
  2. 上記が不可能な場合は、 安全なブラウジングルックアップAPI を呼び出し、マルウェアや感染が見つかったときにブロック/警告を実行する唯一の方法ですか?

可能であれば、友達にヒントを教えてもらえますか?

11
Khemraj

開発者サイトを調べると、それは明確に述べられています

アプリがAndroid 7.1(APIレベル25)以下をターゲットにしている場合、URLのチェックからWebViewオブジェクトをオプトアウトできます Google Safe Browsing's =アプリのマニフェストファイルに次の要素を追加して、安全でないWebサイトのリスト:

<manifest>
<application>
    <meta-data Android:name="Android.webkit.WebView.EnableSafeBrowsing"
               Android:value="false" />
    ...
 </application>
</manifest>

Android 8.0の場合、

EnableSafeBrowsingのデフォルト値はtrueですが、条件付きでのみセーフブラウジングを有効にしたり無効にしたりする場合があります。 Android 8.0(APIレベル26)以上のサポートはsetSafeBrowsingEnabled()を使用します。低いAPIレベルでコンパイルするアプリはsetSafeBrowsingEnabled()を使用できません。マニフェストのEnableSafeBrowsingの値をfalseに変更して、 WebViewのすべてのインスタンスの機能。

Android 8.1(APIレベル27)以上)をターゲットにしている場合、アプリが既知の脅威にどのように応答するかをプログラムで定義できます。

  • アプリが既知の脅威をセーフブラウジングに報告するかどうかを制御できます。
  • 既知の脅威として分類されたURLに遭遇するたびに、アプリに特定のアクション(安全に戻るなど)を自動的に実行させることができます。

以下のサンプルコードをご覧ください。既知の脅威に遭遇した後、常に安全に戻るようにアプリのWebViewのインスタンスに指示する方法を示しています。

MyWebActivity.Java

private WebView mSuperSafeWebView;
private boolean mSafeBrowsingIsInitialized;

@Override
protected void onCreate(Bundle savedInstanceState)
{
  super.onCreate(savedInstanceState);

  mSuperSafeWebView = new WebView(this);
  mSuperSafeWebView.setWebViewClient(new MyWebViewClient());
  mSafeBrowsingIsInitialized = false;

  mSuperSafeWebView.startSafeBrowsing(this, new ValueCallback<Boolean>() {
    @Override
    public void onReceiveValue(Boolean success) {
        mSafeBrowsingIsInitialized = true;
        if (!success) {
            Log.e("MY_APP_TAG", "Unable to initialize Safe Browsing!");
          }
      }
   });
}

セーフブラウジングを有効または無効にします。次の方法を使用します。

mSuperSafeWebView.getSettings().setSafeBrowsingEnabled(true);

MyWebViewClient.Java

public class MyWebViewClient extends WebViewClient {
   // Automatically go "back to safety" when attempting to load a website that
   // Google has identified as a known threat. An instance of WebView calls
   // this method only after Safe Browsing is initialized, so there's no
   // conditional logic needed here.
   @Override
   public void onSafeBrowsingHit(WebView view, WebResourceRequest request,
        int threatType, SafeBrowsingResponse callback) {
    // The "true" argument indicates that your app reports incidents like
    // this one to Safe Browsing.
    callback.backToSafety(true);
    Toast.makeText(view.getContext(), "Unsafe web page blocked.",
            Toast.LENGTH_LONG).show();
   }
}

バージョンごとのWebViewセキュリティバージョン について知りたい場合は、こちらをご覧ください。

5
Andy Developer

@Andy Developerの回答に加えて、Androidバージョンチェックを実行できます。API27未満の場合は、セーフブラウジングAPIを使用できます。

ブラウザで最高のユーザーエクスペリエンスを確保するには、UpdateAPIを実装してローカルデータベースを設定することをお勧めします。これは、最近Playストアで見つけることができるブラウザの一般的なアプローチです。

ドキュメント から:

APIの更新(v4)

Update APIを使用すると、クライアントアプリケーションは、URLのローカルのクライアント側チェック用に暗号化されたバージョンのセーフブラウジングリストをダウンロードできます。

Update APIは、高頻度、低遅延の判定を必要とするクライアント向けに設計されています。いくつかのWebブラウザとソフトウェアプラットフォームは、このAPIを使用して多数のユーザーを保護します。

クエリされたURLのプライバシーや、ネットワークリクエストによって引き起こされる遅延が心配な場合は、UpdateAPIを使用してください。

これを行うことにより、ローエンドユーザーとハイエンドユーザーの両方にこの機能を提供できます。

注:WebViewはSafe Browsing APIをネイティブで実装しているため、まったく同じです。 @AndyDeveloperによって提案された回答の代わりにUpdateAPIのみを実装する場合でも、均一性が提供されるため、これをお勧めします。

2
Angus Tay

間違いなく、この要件にGoogleのセーフブラウジングAPIを使用できます。このAPIの目的は、まさにそのためです。

So, the scenario can be one like this:
  • バックグラウンドでURLチェッカーエンジンを使用できます
  • チェックするURLを含むキューを使用し、GoogleのセーフブラウジングAPIを使用してチェックします
  • 結果をメインスレッドにコールバックして、ブラウジングデータを安全にすることができます

幸運を )

0
Hovanes Mosoyan