如何阻止另一个域访问并从我的网站获取结果?

Posted

技术标签:

【中文标题】如何阻止另一个域访问并从我的网站获取结果?【英文标题】:How to block another domain to access and get result from my website? 【发布时间】:2013-09-25 19:43:57 【问题描述】:

另一个域显示我网站的重复内容(所有页面) 当我进入此域时,我会看到我的网站内容。

如果我在我的网站上更改某些内容,我会立即在另一个域上看到它。

我认为他正在使用 fopencurl 或其他功能来立即从我的网站显示我的内容

如何阻止它?

*我的服务器:cpanel, php5

【问题讨论】:

检查日志并阻止来自该域/IP 的请求? 其他网站可能正在使用代理。 referer是一种选择,但可以被欺骗,我认为根本做不到 在 4chan 上发布 d-bags 网站,看看是否可以让他们进行 ddos​​... 查看访问日志。您是否看到每天或每隔一段时间访问您的站点的特定脚本?您的站点是否发布 RSS 或 ATOM 提要?可以在这里分享信息吗? 【参考方案1】:

您可以使用他们的 IP 地址为他们提供 404 页面。或者,如果您真的想变得聪明。仅仅因为他们的 IP 地址提供了错误或令人尴尬的信息,看起来相似但不是好的内容。

if($_SERVER['REMOTE_ADDR'] == "12.1.3.5") //banned IP

    //do something else


【讨论】:

他换了ip怎么办? 你为新IP重写脚本? 您可以编写一个 cron 作业来定期检查网站的 IP 并将其存储在各种数据库中,然后对这些特定 IP 做任何您想做的事情。老实说,我说他们都是巨魔。【参考方案2】:

尝试检查用户代理,如果它不是浏览器 Firefox , safari ...拒绝访问它会吓坏正在复制您页面的其他域示例:

if(strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE)
//Internet Explorer Good
else
if(strpos($_SERVER['HTTP_USER_AGENT'], 'Firefox') !== FALSE)
//FireFox Good
else
if(strpos($_SERVER['HTTP_USER_AGENT'], 'Chrome') !== FALSE)
//Chrome Good
else
//Check for safari , Opera , androidBrowser and ios browser , Internet Explorer Mobile and text phones
//else run this code
die("Acessing this site is only allowed from this domain example.com"); 



编辑:

将此代码附加到您的 .htaccess

BrowserMatchNoCase SpammerRobot bad_bot
BrowserMatchNoCase SecurityHoleRobot bad_bot
Order Deny,Allow
Deny from env=bad_bot

正如人们在评论中所说,用户代理是空的:

if(empty($_SERVER['HTTP_USER_AGENT']))
die("Error");

你也可以申请 ip 地址,这样其他域就更难破解你了:

您也可以检查 UserOperating 系统,但这不是必需的,因为它可能会给某些用户带来问题,所以不要这样做,但它仍然是个好主意。

如果有任何帮助,请随时联系我

【讨论】:

为什么不使用 else if 而不是 elseif ? 此域中的用户代理为空

以上是关于如何阻止另一个域访问并从我的网站获取结果?的主要内容,如果未能解决你的问题,请参考以下文章

如何从我的网站获取访问者位置(Javascript 或 PHP)

如何阻止来自未知域/IP 对我的 REST API 的调用?

如何阻止从我的网站下载视频

跨域请求仅在 Firefox 中被阻止! [选项:403 禁止]

如何绕过 CORS 并从 CORS 阻止的 API 获取数据?

如何阻止其他网页从我的服务器下载媒体?