如何在jsoup的帮助下跟踪我的网站是否已在Android设备上加载? 如果它将在jsoup的帮助下加载我不想为它提供数据。 我不希望有人将我的网站数据加载到Android应用程序中。
答案 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 :(得分:0)
你可以检查
$_SERVER['HTTP_USER_AGENT'];
这应该暗示是否正在使用Android设备
修改
用户在我之前的评论中建议这样做,所以信用也应该归他们所有