如何在静态网页中实现禁止某IP访问,交流~

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在静态网页中实现禁止某IP访问,交流~相关的知识,希望对你有一定的参考价值。

我有个动态网站,使用FSO生成了静态化网页,用户直接访问静态网页。

这样一来本来动态网站中很容易实现的禁止指定IP用户访问却成了难题。

我想过先让用户访问动态网页,如a.asp,确定不是禁止IP用户后再跳转到a.html的方法。但这样有SEO之嫌,而且也容易破解。

如果使用JS语言判断IP,如果是禁止IP用户,然后跳转到其他页面,这样也许可以。但是JS是在HTML开始加载后才会执行,所以加载中也会被看出来,并且也禁止js来可以破解。

还有可以用iframe打开x.asp,由x.asp来判断来访者,然后处理。但是缺点和使用js基本相同。

另外因为使用的虚拟主机,也无法实现组件功能。

我知道这是一个很难的问题,所以这里发贴跟大家交流下,看有没有别的什么好方法。
回 futuredream_ - 助理 三级 :动态Asp VbScript,虚拟主机
回 smluyi - 总监 九级 :js打开一个动态页面,其实就和我用iframe一样的原理,
回 xiliantian - 高级经理 六级 :不错,但是会对SEO造成很大影响,
看来这问题确实很麻烦,辛苦大家了

问题分析:
1、提供给用户访问的是静态页面的URL,那就意味着只能在页面加载后进行判断
2、不能通过动态页面转向到静态页面

我的想法:
首先访问静态a.html,在这里面调用ajax或iframe来访问服务端进行IP验证,如果没问题,则进行前台静态页面跳转到b.html,否则,不进行跳转

优点:
1、在IP验证前不会加载真实页面,不用担心是否会有信息泄露
2、破解稍微有些难度,如果禁止JS或IFRAME也不能正常访问页面

缺点:
1、不太懂SEO,不知道会不会有影响
2、用户段浏览器必须打开JS
参考技术A 楼主能不能这样做:读取静态页面的时候,用js打开一个动态页面(可以设置长度,宽度都为0的动态asp,用户基本不会注意有弹出窗口)进行ip验证,如果ip不通过的话则opener.window.close(),关闭静态页面,或者使html重定向到错误页面提示用户ip有问题。
你说的用户禁止js的问题比较难搞,是否可以用js输出静态页面,如果关闭js功能,则用户只能看到空白的页面。
参考技术B   问题分析:

  1、提供给用户访问的是静态页面的URL,那就意味着只能在页面加载后进行判断 ;

  2、不能通过动态页面转向到静态页面

  首先访问静态a.html,在这里面调用ajax或iframe来访问服务端进行IP验证,如果没问题,则进行前台静态页面跳转到b.html,否则,不进行跳转

  优点:

  1、在IP验证前不会加载真实页面,不用担心是否会有信息泄露

  2、破解稍微有些难度,如果禁止JS或IFRAME也不能正常访问页面

  缺点:

  1、从SEO优化出发,会影响网站的排名

  2、用户段浏览器必须打开JS
参考技术C 问题分析:
1、提供给用户访问的是静态页面的URL,那就意味着只能在页面加载后进行判断
2、不能通过动态页面转向到静态页面

我的想法:
首先访问静态a.html,在这里面调用ajax或iframe来访问服务端进行IP验证,如果没问题,则进行前台静态页面跳转到b.html,否则,不进行跳转

优点:
1、在IP验证前不会加载真实页面,不用担心是否会有信息泄露
2、破解稍微有些难度,如果禁止JS或IFRAME也不能正常访问页面

缺点:
1、不太懂SEO,不知道会不会有影响
2、用户段浏览器必须打开JS
参考技术D 首先个人认为用单纯的Html静态文本和JS客户端代码是不可能实现的,只能用服务器端脚本或者组件功能来实现,JS和IFrame都是不可靠的,但是你的情况也搞得怪特殊的。
例如一般用ASP实现就在被访网页最上部加入
<%
yourip=Request.ServerVariables("REMOTE_ADDR")
if yourip="111.111.111.111" then
Response.Redirect ("http://www.baidu.com")
end if
%>

对了,或者你可以试试用.htaccess的Order Deny来实现限制效果,未经实践纯理论。

H3C 18-63-1 如何禁止访问一个外网IP的一个端口?

使用高级的ACL(3000--3900)即可以实现。
由于不知道你要禁止哪个IP的哪个端口,下面写的配置是例子,请自行修改。
配置:
1、开启包过滤防火墙
[H3C]firewall enable

2、创建ACL,书写规则
[H3C]acl number 3000
[H3C-acl-adv-3000]rule 0 deny tcp destination 100.1.1.1 0 destination-port eq 80 source any
/*注释:这里以外网ip 100.1.1.1 ,禁止80端口为例,在写到deny的时候使用?,可以查看命令,自行选择使用哪种协议和端口*/

[H3C-acl-adv-3000]rule 5 permit ip source any

3、在接口使能
[H3C]interface Ethernet 1/0/1 /*进入出接口,这里以E1/0/1为例*/
[H3C-Ethernet0/0]firewall packet-filter 3000 oubound /*使能ACL */

希望可以帮你,请及时采纳,谢谢!
参考技术A acl number 3000
rule deny tcp source any destination 192.168.1.1 0.0.0.0 destination-port eq 80(端口号)
rule perimit ip any any
interface e1/0/20 //路由器外网口
packet-filter 3000 outbound
参考技术B 使用高级的ACL(3000--3900)即可以实现。
由于不知道你要禁止哪个IP的哪个端口,下面写的配置是例子,请自行修改。
配置:
1、开启包过滤防火墙
[H3C]firewall enable

2、创建ACL,书写规则
[H3C]acl number 3000
[H3C-acl-adv-3000]rule 0 deny tcp destination 100.1.1.1 0 destination-port eq 80 source any
/*注释:这里以外网ip 100.1.1.1 ,禁止80端口为例,在写到deny的时候使用?,可以查看命令,自行选择使用哪种协议和端口*/

[H3C-acl-adv-3000]rule 5 permit ip source any

3、在接口使能
[H3C]interface Ethernet 1/0/1 /*进入出接口,这里以E1/0/1为例。

以上是关于如何在静态网页中实现禁止某IP访问,交流~的主要内容,如果未能解决你的问题,请参考以下文章

网页被禁止访问,如何解除

手机怎样禁止访问某个网站?

为啥PHPcms网站后台添加单网页访问时却是网站首页?

怎么设置禁止打开网页?

Asp.net生成静态网页的实现代码

请问一下网页出现 URL禁止 对不起,你不是授权访问网址这是啥问题?