如何阻止另一个域访问并从我的网站获取结果?
Posted
技术标签:
【中文标题】如何阻止另一个域访问并从我的网站获取结果?【英文标题】:How to block another domain to access and get result from my website? 【发布时间】:2013-09-25 19:43:57 【问题描述】:另一个域显示我网站的重复内容(所有页面) 当我进入此域时,我会看到我的网站内容。
如果我在我的网站上更改某些内容,我会立即在另一个域上看到它。
我认为他正在使用 fopen
或 curl
或其他功能来立即从我的网站显示我的内容
如何阻止它?
*我的服务器: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 禁止]