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

2023-11-27

要求

我的浏览器要求在浏览时启用/禁用安全搜索。

On Google 安全搜索页面

使用安全搜索阻止 Google 上的露骨搜索结果

您可以过滤 Google 上的露骨搜索结果,例如色情内容、 使用安全搜索设置。安全搜索并非 100% 准确。但它 可以帮助您避免在您的网站上出现露骨和不适当的搜索结果 手机、平板电脑或电脑。

如您所知,当打开安全搜索(例如 google chrome)时,用户不会看到许多威胁类型、受感染页面、社会工程页面、色情内容等的结果,并且会阻止 Google 搜索结果中的露骨图像、视频和网站

这可以在谷歌平台上使用,比如chrome、谷歌应用程序等。所以我得到了这个任务,但是我可以在浏览器中启用它吗?

找到的资源

我得到了提示安全搜索API,但我不知道这对我是否有帮助,因为如果我使用这个,我可以做两件事,

  • 要么我需要在每次用户打开网站时调用 api (查找API)
  • 或者我可以下载所有网址数据。 (更新API)

Problem

  1. 如何在 WebView 中过滤 Google 搜索结果?搜索引擎是否提供某种方式,例如www.google.com , www.bing.com etc.
  2. 如果上述方法不可行,这是唯一的调用方法安全浏览查找 API当发现恶意软件、感染时进行阻止/警告?

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


如果您查看开发者网站,就会清楚地提到

如果您的应用程序面向 Android 7.1(API 级别 25)或更低版本,您可以选择 WebView 对象不检查 URL谷歌安全浏览不安全网站列表,添加以下内容 元素添加到应用程序的清单文件中:

<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 安全版本(按版本).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Android 浏览器中启用安全搜索 的相关文章

随机推荐

  • 如何轻松访问 Express js 中的表单数据?

    我有一个 POST 请求 其中包含非常简单且少量的表单数据 我怎样才能最轻松地访问它 许多教程 帖子等都谈到bodyParser 但这不再与 Express 捆绑在一起 其他地方 博客等 推荐使用urlencoded直接 但现在这也不可用
  • 关系(聚合、组合)是否取代属性?

    我对 UML 建模还很陌生 所以请耐心等待 假设我有一个带有属性的类students这是一个列表Student实例 我已经设置了一个聚合关系Student类也在图中 此关系是否替换属性条目 例如 students Student 在容器类中
  • 如何防止浏览器图片缓存?

    阻止浏览器在 PHP 中缓存图像的最佳方法是什么 我已经尝试过header method header Expires Tue 03 Jul 2001 06 00 00 GMT header Last Modified gmdate D d
  • C++有序(稳定)优先级队列

    我正在实现一个玩具调度程序 它读取进程规范的输入文件 例如到达时间 总运行时间 然后根据随机 io cpu 突发来调度进程 该文件的格式为 到达时间 CPU 总时间 CPU 突发 IO 突发 现在 当有两个进程具有相同的到达时间时 调度程序
  • 活动别名的启动意图

    我为具有不同元数据的活动设置了一些别名 在此元数据中 我设置了片段的名称 然后通过反射加载该片段 我不知道这是否是一个 干净 的解决方案 尽管通过使用片段并将功能放入其中 我有一个 SuperActivity 和 2 个空子活动 只是为了在
  • AJAX 上的 301 重定向——重定向?

    我对服务器端点进行 AJAX 调用 该端点执行 301 重定向到同一页面 但末尾带有斜杠 当使用 AJAX 调用时 浏览器是否遵循重定向 或者是否忽略它们 就我而言 它不遵循它们 但我认为这可能是服务器配置中的某些内容 如果您使用 jque
  • 带类的词典?

    在Python中可以通过字典实例化一个类吗 shapes 1 Square 2 Circle 3 Triangle x shapes raw input 我想让用户从菜单中进行选择 而不是在输入上编写大量的 if else 语句 例如 如果
  • 在 Eclipse 中,如何多次运行 JUnit 测试用例

    我有一个单元测试有时会失败 调试它很痛苦 因为我不知道为什么它有时会失败 有没有办法在 Eclipse 中运行 JUnit 测试 5 次或 50 次之类的 Thanks 我刚刚找到了以下解决方案 它不需要任何额外的依赖项 您得到的答案之一需
  • 使用 jQuery fadeIn 或 CSS3 动画哪个更好?

    我正在使用一些 PHP 和 JavaScript 创建一个简单的画廊 并尝试在图像之间进行淡入淡出过渡 然后我想知道使用 CSS 动画是否存在性能差异 例如 webkit keyframes fadeIn 0 opacity 0 100 o
  • 将 Word DOCX 文件保存为 PDF [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我正在使用 openxml 创建 Word DOCX 文件 我想在将这些文档创建为 PDF 文件后将其保存 有没有办法在 openxml 中做到这一
  • Handpose tfjs 错误 - 在注册表中找不到后端

    当尝试运行 Handpose tfjs 的演示项目时 我收到以下错误 我的 package json 文件具有以下依赖项 name tensorflowJs version 1 0 0 description main index js s
  • Laravel 5.3 auth 检查构造函数返回 false

    我在用着Laravel 5 3我正在努力得到经过验证的 user s id in the constructor方法 这样我就可以按分配的公司过滤用户 如下所示 namespace App Http Controllers use Illu
  • Android Room - 通过自动生成获取新插入行的 id

    这就是我使用 Room Persistence Library 将数据插入数据库的方式 Entity Entity class User PrimaryKey autoGenerate true public int id 数据访问对象 D
  • 在 Javascript 中将 yyyy-mm-dd 转换为 UTC

    我需要仅使用 javascript 将 yyyy mm dd 中的日期 如 2011 12 30 转换为 UTC 如何 var utc new Date 2011 12 30 toUTCString jsFiddle
  • sed/awk - 在跨多行的模式之间打印文本

    我是脚本编写新手 正在尝试学习如何提取两种不同模式之间存在的任何文本 但是 我仍然无法弄清楚如何在以下场景中提取两种模式之间的文本 如果我有我的输入文件阅读 Hi I would like to print text between the
  • node-postgres如何转义参数?

    我知道关于参数化查询 但由于我必须以编程方式构造哪里条件 计算参数的数量并构建参数数组是一项比简单地调用escape需要时发挥作用 所以 node postgres 中有参数转义函数吗 Yes since this PR there are
  • 如何使用 cin 读取 double 的整个值?

    long double m cout lt lt enter double cin gt gt m cout lt lt m lt lt m lt
  • 如何将日期转换为月份数?

    我有一个专栏Month在我的桌子上 月份名称和日期存储在本月列中 例如 Month 01 JAN 12 02 FEB 12 等等 我如何convert the DATE转换为月份数字 例如 Month 1 2 etc select to c
  • “shouldOverrideUrlLoading”真的被弃用了吗?我可以用什么来代替?

    shouldOverrideUrlLoading 真的被弃用了吗 如果是这样 我可以用什么来代替 这好像是shouldOverrideUrlLoading已弃用针对 Android N我需要让一个应用程序从 API 19 开始工作 直到现在
  • 如何在 Android 浏览器中启用安全搜索

    要求 我的浏览器要求在浏览时启用 禁用安全搜索 On Google 安全搜索页面 使用安全搜索阻止 Google 上的露骨搜索结果 您可以过滤 Google 上的露骨搜索结果 例如色情内容 使用安全搜索设置 安全搜索并非 100 准确 但它