代码之家  ›  专栏  ›  技术社区  ›  Khemraj Sharma

如何在我的Android浏览器中启用安全搜索

  •  8
  • Khemraj Sharma  · 技术社区  · 6 年前

    要求

    打开 Google Safe Search Page

    使用SafeSearch阻止Google上的显式结果

    你可以在谷歌上过滤显式的搜索结果,比如色情内容, 可以帮助您避免在 电话、平板电脑或电脑。

    正如你所知道的,当安全搜索被打开时(比如googlechrome),用户不会看到许多威胁类型的结果,被感染的页面,社会工程页面,色情等,并阻止谷歌搜索结果中的显式图像、视频和网站

    这是在谷歌平台,如chrome,谷歌应用程序等,所以我得到了这个任务,但 ?

    找到的资源

    我从 safe search api ,但我不知道这对我是否有用,因为如果我用这个,我可以做两件事,

    问题

    1. 如何在我的WebView中过滤Google搜索结果?搜索引擎有没有提供类似的方法 www.google.com www.bing.com 等。
    2. 如果以上是不可能的,是唯一的方法打电话 safe browsing lookup api

    如果可能的话,有朋友能给我一些提示吗?

    3 回复  |  直到 6 年前
        1
  •  6
  •   Andy Developer    6 年前

    如果你看一下开发人员的网站,就会清楚地提到

    如果你的应用目标是Android 7.1(API级别25)或更低版本,你可以选择WebView对象不检查URL Google Safe Browsing's 应用程序清单文件的元素:

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

    对于Android 8.0,它明确提到

    级别不能使用setSafeBrowsingEnabled(),应更改该值 对于WebView的所有实例。

    如果您的目标是Android 8.1(API级别27)或更高版本,则可以通过编程方式定义应用程序如何响应已知威胁:

    • 你可以让你的应用程序自动执行一个特定的动作,比如 每次它遇到一个 被列为已知威胁。

    我的网络活动.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 security version by version .

        2
  •  2
  •   Community Reversed Engineer    4 年前

    我建议你用最好的API来实现你的数据库安装和更新。这是目前在PlayStore中可以找到的浏览器的常用方法。

    Documentation :

    更新API(v4)

    本地客户端安全浏览列表的加密版本 检查URL。

    更新API是为需要 高频率,低延迟判决。多个web浏览器和 软件平台使用此API来保护大量用户。

    通过这样做,您可以为低端用户和高端用户提供此功能。

    注意:WebView已经在本机中实现了安全浏览API,所以它是一样的。如果您只想实现updateapi而不是@Andy Developer提出的答案,那么它仍然是推荐的,因为它提供了一致性。

        3
  •  0
  •   Hovanes Mosoyan    6 年前

    So, the scenario can be one like this:
    
    • 我们可以在后台有一个网址检查引擎
    • 它使用一个包含要检查的url的队列,并使用Googles安全浏览API进行检查
    • 结果可以被调用回主线程以保护浏览数据

    推荐文章