Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否使用JavaScript/其他方法阻止对页面的访问? 一些背景_Javascript_Jquery_Ip Address_Tumblr_Privacy - Fatal编程技术网

是否使用JavaScript/其他方法阻止对页面的访问? 一些背景

是否使用JavaScript/其他方法阻止对页面的访问? 一些背景,javascript,jquery,ip-address,tumblr,privacy,Javascript,Jquery,Ip Address,Tumblr,Privacy,我有一个博客 我还有一个疯狂的前女友 此人一直痴迷于访问我的帖子,鉴于我们关系的性质(或缺乏关系),我觉得这相当令人不安。我的目标是阻止访问她,或任何可能是她/她的朋友/家人的人,而不必更改我已建立的URL 进攻计划 由于我没有在第三方主机上托管我的博客,我几乎无法访问有助于阻止她访问的工具。不过,如果有解决方案需要,我确实拥有主机。我不是专家,据我所知,JavaScript是唯一能让她相信她无法访问我的页面的方法 我已经拼凑了一个脚本,非常感谢您的指导。使用jQuery和jQueryCooki

我有一个博客

我还有一个疯狂的前女友

此人一直痴迷于访问我的帖子,鉴于我们关系的性质(或缺乏关系),我觉得这相当令人不安。我的目标是阻止访问她,或任何可能是她/她的朋友/家人的人,而不必更改我已建立的URL

进攻计划 由于我没有在第三方主机上托管我的博客,我几乎无法访问有助于阻止她访问的工具。不过,如果有解决方案需要,我确实拥有主机。我不是专家,据我所知,JavaScript是唯一能让她相信她无法访问我的页面的方法

我已经拼凑了一个脚本,非常感谢您的指导。使用jQuery和jQueryCookie插件,我想出了一些代码来演示我的目标让我们开始吧。

var ips=“{text:ips}”//tumblr生成的字符串:由空格分隔的IP地址
var towns=“{text:towns}”;//城镇也一样
var iparray=ips.split(“”);
var townarray=towns.split(“”);
$.getJSON(“http://www.geoplugin.net/json.gp?jsoncallback=?",
函数(数据){//JSON请求,返回地理位置数据
对于(i=0;i
已知故障点
  • 如果用户禁用了JS,或者正在使用插件过滤JS,则此操作将失败
  • 如果用户在移动设备上(使用iPod touch进行测试),这将 失败
  • 如果用户正在使用Internet Explorer,则此操作将失败
  • 如果用户使用web代理,则此操作将失败
结语 这不是我基于IP/地理位置阻止访问的理想方法,但是,这是我目前所能做的最好的方法。我所处的情况让我感到不安,但我也认为这是一个探索不太常见的阻止用户访问的方法的机会。我很高兴听到任何解决方案,可能没有JS,以及那些做

请指出我在代码和/或概念中的错误(我相信有很多)。我想养成熟练地编写代码的习惯


这是我在Stack上的第一篇文章,尽管我在创建项目时多次使用这个社区。谢谢你花了一些时间来阅读和考虑我的问题,我期待着得到一些输入。p> 自己主持不会有什么不同。事实上,我很确定你不能,你需要把域名指向他们的服务器

我想说你那里的东西是最好的。就像你提到的,有很多方法可以解决这个问题,但这是客户端脚本的典型情况

除非tumblr为查看您站点的用户的登录设置了一个变量,否则就没有其他事情可做了。即使那样,他们也可以注销


我建议在你的TunBrr设置中阻止他们,考虑密码保护你的博客,或者改变你的URL(你仍然会留下你的追随者)。

你没有列出的三个重要的失败点:


  • (认为他们不能进入第二页?怎么样?)
您列出的故障点无效:

  • 移动设备。(除非您谈论的是/mobile,在这种情况下,我的不好。)您可以通过将移动主题粘贴到/iphone theme的自定义布局页面来自定义移动设备的主题,也可以通过取消选中此框来完全禁用它:

您有一个Tumbler帐户,他们允许您将javascript发布到您的页面?或者这是你自己主持的微博?作为一个低技术的解决方案,为什么不停止发布呢?Tumblr允许在主题中完全定制客户端语言,我会将它们重定向回仪表板,而不是
window.location=”http://tumblr.com/dashboard“
如果美国
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);
}