如何在jsoup的帮助下跟踪我的网站加载到Android设备上?

时间:2016-05-08 14:39:15

标签: javascript php android jsoup

如何在jsoup的帮助下跟踪我的网站是否已在Android设备上加载? 如果它将在jsoup的帮助下加载我不想为它提供数据。 我不希望有人将我的网站数据加载到Android应用程序中。

2 个答案:

答案 0 :(得分:1)

使用jsoup或任何其他抓取工具伪造用户代理 相当容易。这是一个例子:

doc = Jsoup.connect("https://www.yoursite.com/")
      .userAgent("Mozilla/5.0 (Windows; U; WindowsNT 5.1; en-US; rv1.8.1.6) Gecko/20070725 Firefox/2.0.0.6").get();

默认的jsoup用户代理将包含请求的域yoursite.com)和 java版本1.8.0_05),即:

yoursite.com - Java version 1.8.0_05

根据Android版本,jsoup用户代理也可能如下所示:

Dalvik/1.4.0 (Linux; U; Android 2.3.5; HTC Desire HD A9191 Build/GRJ90)

我的猜测是jsoup的某些版本依赖于:

System.getProperty( "http.agent" );

如果您仍想使用此技术拒绝访问您的网站,请尝试使用:

<?php
$userAgent = $_SERVER['HTTP_USER_AGENT'];
if (preg_match('/yoursite\.com[\s-]+Java.*?$/i', $userAgent)) {
    //Deny access
    die("Forbidden");
}

备注:

  1. 正如我之前所说,这种技术很容易被绕过,你应该考虑使用不同的东西
  2. 您可能需要检查您的http访问日志,以查找哪些用户代理正在抓取您的网站,找到错误模式并阻止它。

答案 1 :(得分:0)

你可以检查

$_SERVER['HTTP_USER_AGENT'];

这应该暗示是否正在使用Android设备

修改

用户在我之前的评论中建议这样做,所以信用也应该归他们所有