gpt4 book ai didi

javascript - 使用 JavaScript/其他方法阻止访问页面?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:46:33 24 4
gpt4 key购买 nike

一些背景

我有一个博客。

我也有一个疯了的前女友。

该人一直痴迷地访问我的帖子,考虑到我们关系的性质(或缺乏关系),我发现这相当令人不安。我的目标是阻止访问她,或任何可能是她/她的 friend /家人的人,而无需更改我建立的 URL。

攻击计划

由于我没有在第 3 方主机上托管我的博客,因此我几乎无法使用有助于阻止她访问的工具。但是,如果有需要的解决方案,我会自己托管。我不是专家,据我所知,JavaScript 是唯一的方法,至少可以让她相信她无法访问我的页面。

我已经编写了一个脚本,真的希望得到一些指导。使用 jQuery 和 jQuery Cookie 插件,我想出了一些代码来演示我的目标。 让我们开始吧。

var ips = "{text:Ips}"; // String generated by tumblr: IP addresses separated by a space
var towns = "{text:Towns}"; // Same but with towns

var iparray = ips.split(" ");
var townarray = towns.split(" ");

$.getJSON("http://www.geoplugin.net/json.gp?jsoncallback=?",
function(data){ // JSON request that returns geolocation data
for(i = 0; i < townarray.length; i++){
if (data['geoplugin_city'] == townarray[i]) // Test to see if user is accessing from a blacklisted town
{
if ($.cookie('banned_ip_tumblr')) // Looks for evidence of tracking cookie, if found: we stop loading, hide any content that was rendered, and send the user back up to 3 pages.
{
window.stop();
$('#all').hide(); // Div that wraps all content in body
history.go(-3);
history.go(-2);
history.go(-1);
}
else // Sets a cookie destined to be stale. Really stale. Then proceed with hiding posts
{
$.cookie('banned_ip_tumblr', 'true', { expires: 365, path: '/' });
$('#all').hide();
history.go(-3);
history.go(-2);
history.go(-1);
window.stop();
}
}
}
for(i = 0; i < iparray.length; i++){
if (data['geoplugin_request'] == iparray[i]) // Same as above, IP style.
{
if ($.cookie('banned_ip_tumblr'))
{
window.stop();
$('#all').hide();
history.go(-3);
history.go(-2);
history.go(-1);
}
else
{
$.cookie('banned_ip_tumblr', 'true', { expires: 365, path: '/' });
window.stop();
$('#all').hide();
history.go(-3);
history.go(-2);
history.go(-1);
}
}
}
}
);

if ($.cookie('banned_ip_tumblr')) // If the user has been caught but is now connecting from a new host, there is a chance this will catch them
{
window.stop();
$('#all').hide();
history.go(-3);
history.go(-2);
history.go(-1);
}

已知故障点

  • 如果用户禁用了 JS,或者正在使用插件过滤 JS,这将失败。
  • 如果用户使用移动设备(使用 iPod touch 测试),这将失败。
  • 如果用户使用的是 Internet Explorer,这将失败。
  • 如果用户使用网络代理,这将失败。

结束语

这不是我基于 IP/地理定位阻止访问的理想方法,但是,这是我目前所知的最佳方法。我所处的情况让我感到不安,但我也认为这是一个探索不太常见的方法来阻止用户访问的机会。我很高兴听到任何没有 JS 的解决方案,以及那些没有 JS 的解决方案。

请指出我的错误(因为我确信有很多错误)它们出现在我的代码和/或概念中。我想养成写代码的习惯。

这是我在 Stack 上的第一篇文章,尽管我在整理项目时多次使用这个社区。感谢您花时间阅读和考虑我的问题,我期待得到一些意见。

最佳答案

自己托管不会有什么不同。事实上,我很确定你不能,你需要将域指向他们的服务器。

我会说你所拥有的就是最好的。就像您提到的那样,有很多解决方法,但这是典型的客户端脚本。

除非 tumblr 有一个变量用于查看您网站的人的登录名,否则没有其他事情可做。即便如此,他们也可以退出。

我建议在您的 tumblr 设置中阻止它们,考虑使用密码保护您的博客,或者更改您的 url(您仍然会保留您的关注者)。

关于javascript - 使用 JavaScript/其他方法阻止访问页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10906112/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com