一百圆,求PHPiis ip地址和域名限制制方法。

您可能喜欢的相关文章推荐:用apache搭建的WEB服务器,如何让网友只能通过设定的域名访问,而不能直接通过服务器的IP地址访问呢,通过查找,有两个方法可以实现,都是修改httpd.conf文件来实现的,下面举例说明。方法一:在httpd.conf文件最后面,加入以下代码     NameVirtualHost 211.*.*.*     &VirtualHost 211.*.*.*&     ServerName 211.*.*.*     &Location /&&&      Order Allow,Deny&&&&    Deny from all     &/Location&     &/VirtualHost&         &VirtualHost 211.*.*.*&     DocumentRoot "c:/web"     ServerName      &/VirtualHost&      说明:蓝色部分是实现拒绝直接通过211.*.*.*这个IP的任何访问请求,这时如果你用211.*.*.*访问,会提示拒绝访问。红色部分就是允许通过这个域名访问,主目录指向c:/web(这里假设你的网站的根目录是c:/web)   方法二:在httpd.conf文件最后面,加入以下代码     NameVirtualHost 211.*.*.*     &VirtualHost 211.*.*.*&     DocumentRoot "c:/test"     ServerName 211.*.*.*     &/VirtualHost&          &VirtualHost 211.*.*.*&     DocumentRoot "c:/web"     ServerName      &/VirtualHost&           说明:蓝色部分是把通过211.*.*.*这个IP直接访问的请求指向c:/test目录下,这可以是个空目录,也可以在里面建一个首页文件,如index.hmtl,首面文件内容可以是一个声明,说明不能通过IP直接访问。红色部分的意思跟方法一是一样的。&&&&& &&&&&&& 注意:1.&直接复制粘贴的话可能会带有中文空格,请把这些多余的空格去掉。       2.& 如果使用了负载均衡,限制的IP不要写外网IP,请填写内网IP。当前位置:-> ->
文章详细内容
各种跨域方法的实现汇总
摘要:JavaScript是一种在Web开发中经常使用的前端动态脚本技术。在JavaS...
JavaScript是一种在Web开发中经常使用的前端动态脚本技术。在JavaScript中,有一个很重要的安全性限制,被称为“Same-Origin Policy”(同源策略)。这一策略对于JavaScript代码能够访问的页面内容做了很重要的限制,即JavaScript只能访问与包含它的文档在同一域下的内容。
JavaScript这个安全策略在进行多iframe或多窗口编程、以及Ajax编程时显得尤为重要。根据这个策略,在下的页面中包含的JavaScript代码,不能访问在域名下的页面内容;甚至不同的子域名之间的页面也不能通过JavaScript代码互相访问。对于Ajax的影响在于,通过XMLHttpRequest实现的Ajax请求,不能向不同的域提交请求,例如,在下的页面,不能向提交Ajax请求,等等。
然而,当进行一些比较深入的前端编程的时候,不可避免地需要进行跨域操作,这时候“同源策略”就显得过于苛刻。本文就这个问题,概括了跨域所需要的一些技术。
下面我们分两种情况讨论跨域技术:首先讨论不同子域的跨域技术,然后讨论完全不同域的跨域技术。
不同子域的跨域技术
我们分两个问题来分别讨论:第一个问题是如何跨不同子域进行JavaScript调用;第二个问题是如何向不同子域提交Ajax请求。
先来解决第一个问题,假设域下有两个不同子域:和。现在假设在下面有一个页面,里面定义了一个JavaScript函数:
function funcInDef() {
我们想在下的某个页面里调用上面的函数。再假设我们要讨论的下面的这个页面是以iframe形式嵌入在下面那个页面里的,这样我们可能试图在iframe里做如下调用:
window.top.funcInDef();
好,我们注意到,这个调用是被前面讲到的“同源策略”所禁止的,JavaScript引擎会直接抛出一个异常。
为了实现上述调用,我们可以通过修改两个页面的domain属性的方法做到。例如,我们可以将上面在和下的两个页面的顶端都加上如下的JavaScript代码片段:
&script type="text/javascript">
document.domain = "";
这样,两个页面就变为同域了,前面的调用也可以正常执行了。
这里需要注意的一点是,一个页面的document.domain属性只能设置成一个更顶级的域名(除了一级域名),但不能设置成比当前域名更深层的子域名。例如,的页面只能将它的domain设置成,不能设置成sub.,当然也不能设置成一级域名com。
上面的例子讨论的是两个页面属于iframe嵌套关系的情况,当两个页面是打开与被打开的关系时,原理也完全一样。下面我们来解决第二个问题:如何向不同子域提交Ajax请求。
通常情况下,我们会用与下面类似的代码来创建一个XMLHttpRequest对象:
factories = [
function() { return new XMLHttpRequest(); },
function() { return new ActiveXObject("Msxml2.XMLHTTP"); },
function() { return new ActiveXObject("Microsoft.XMLHTTP"); }
function newRequest() {
for(var i = 0; i < factories. i++) {
var factory = factories[i];
return factory();
} catch(e) {}
上面的代码中引用ActiveXObject,是为了兼容IE6系列浏览器。每次我们调用newRequest函数,就获得了一个刚刚创建的Ajax对象,然后用这个Ajax对象来发送HTTP请求。例如,下面的代码向发送了一个GET请求:
var request = newRequest();
request.open("GET", "" );
request.send(null);
假设上面的代码包含在一个域名下的页面里,则这个GET请求可以正常发送成功,没有任何问题。然而,如果现在要向发送请求,则出现跨域问题,JavaScript引擎抛出异常。
解决的办法是,在域下放置一个跨域文件,假设叫crossdomain.html;然后将前面的newRequest函数的定义移到这个跨域文件中;最后像之前修改document.domain值的做法一样,在crossdomain.html文件和域下调用Ajax的页面顶端,都加上:
&script type="text/javascript">
document.domain = "";
为了使用跨域文件,我们在域下调用Ajax的页面中嵌入一个隐藏的指向跨域文件的iframe,例如:
&iframe name="xd_iframe" style="display:none" src="/crossdomain.html">&/iframe>
这时域下的页面和跨域文件crossdomain.html都在同一个域()下,我们可以在域下的页面中去调用crossdomain.html中的newRequest函数:
var request = window.frames["xd_iframe"].newRequest();
这样获得的request对象,就可以向发送HTTP请求了。
完全不同域的跨域技术
如果顶级域名都不相同,例如和之间想通过JavaScript在前端通信,则所需要的技术更复杂些。在讲解不同域的跨域技术之前,我们首先明确一点,下面要讲的技术也同样适用于前面跨不同子域的情况,因为跨不同子域只是跨域问题的一个特例。当然,在恰当的情况下使用恰当的技术,能够保证更优的效率和更高的稳定性。简言之,根据不同的跨域需求,跨域技术可以归为下面几类:
JSONP跨域GET请求
通过iframe实现跨域
flash跨域HTTP请求
window.postMessage
下面详细介绍各种技术。
利用在页面中创建&script>节点的方法向不同域提交HTTP请求的方法称为JSONP,这项技术可以解决跨域提交Ajax请求的问题。JSONP的工作原理如下所述:假设在/index.php这个页面中向/getinfo.php提交GET请求,我们可以将下面的JavaScript代码放在/index.php这个页面中来实现。
var eleScript= document.createElement("script");
eleScript.type = "text/javascript";
eleScript.src = "/getinfo.php";
document.getElementsByTagName("HEAD")[0].appendChild(eleScript);
当GET请求从/getinfo.php返回时,可以返回一段JavaScript代码,这段代码会自动执行,可以用来负责调用/index.php页面中的一个callback函数。
JSONP的优点是:它不像XMLHttpRequest对象实现的Ajax请求那样受到同源策略的限制;它的兼容性更好,在更加古老的浏览器中都可以运行,不需要XMLHttpRequest或ActiveX的支持;并且在请求完毕后可以通过调用callback的方式回传结果。
JSONP的缺点则是:它只支持GET请求而不支持POST等其它类型的HTTP请求;它只支持跨域HTTP请求这种情况,不能解决不同域的两个页面之间如何进行JavaScript调用的问题。
2. 通过iframe实现跨域
iframe跨域的方式,功能强于JSONP,它不仅能用来跨域完成HTTP请求,还能在前端跨域实现JavaScript调用。因此,完全不同域的跨域问题,通常采用iframe的方式来解决。
与JSONP技术通过创建&script>节点向不同的域提交GET请求的工作方式类似,我们也可以通过在/index.php页面中创建指向/getinfo.php的iframe节点跨域提交GET请求。然而,请求返回的结果无法回调/index.php页面中的callback函数,因为受到“同源策略”的影响。
为了解决这个问题,我们需要在下放置一个跨域文件,比如路径是/crossdomain.html。当/getinfo.php这个请求返回结果的时候,它大体上有两个选择。第一个选择是,它可以在iframe中做一个302跳转,跳转到跨域文件/crossdomain.html,同时将返回结果经过URL编码之后作为参数缀在跨域文件URL后面,例如/crossdomain.html?result=&URL-Encoding-Content>。另一个选择是,它可以在返回的页面中再嵌入一个iframe,指向跨域文件,同时也是将返回结果经过URL编码之后作为参数缀在跨域文件URL后面。
在跨域文件中,包含一段JavaScript代码,这段代码完成的功能,是从URL中提取结果参数,经过一定处理后调用原来的/index.php页面中的一个预先约定好的callback函数,同时将结果参数传给这个函数。/index.php页面和跨域文件是在同一个域下的,因此这个函数调用可以通过。跨域文件所在iframe和原来的/index.php页面的关系,在前述第一种选择下,后者是前者的父窗口,在第二种选择下,后者是前者的父窗口的父窗口。
根据前面的叙述,有了跨域文件之后,我们就可以实现通过iframe方式在不同域之间进行JavaScript调用。这个调用过程可以完全跟HTTP请求无关,例如有些站点可以支持动态地调整在页面中嵌入的第三方iframe的高度,这其实是通过在第三方iframe里面检测自己页面的高度变化,然后通过跨域方式的函数调用将这个变化告知父窗口来完成的。
既然利用iframe可以实现跨域JavaScript调用,那么跨域提交POST请求等其它类型的HTTP请求就不是难事。例如我们可以跨域调用目标域的JavaScript代码在目标域下提交Ajax请求(GET/POST/etc.),然后将返回的结果再跨域传原来的域。
使用iframe跨域,优点是功能强大,支持各种浏览器,几乎可以完成任何跨域想做的事情;缺点是实现复杂,要处理很多浏览器兼容问题,并且传输的数据不宜过大,过大了可能会超过浏览器对URL长度的限制,要考虑对数据进行分段传输等。
3. 利用flash实现跨域HTTP请求
据称,flash在浏览器中的普及率高达90%以上。flash代码和JavaScript代码之间可以互相调用,并且flash的“安全沙箱”机制与JavaScript的安全机制并不尽相同,因此,我们可以利用flash来实现跨域提交HTTP请求(支持GET/POST等)。
例如,我们用浏览器访问/index.php这个页面,在这个页面中引用了/flash.swf这个flash文件,然后在flash代码中向/webservice.php发送HTTP请求。这个请求能否被成功发送,取决于在的根路径下是否放置了一个crossdomain.xml以及这个crossdomain.xml的配置如何。flash的“安全沙箱”会保证:仅当服务器在根路径下确实放置了crossdomain.xml文件并且在这个文件中配置了允许接受来自的flash的请求时,这个请求才能真正成功。下面是一个crossdomain.xml文件内容的例子:
&?xml version="1.0"?>
&cross-domain-policy>
&allow-access-from domain="" />
&/cross-domain-policy>
4. window.postMessage
window.postMessage是HTML标准的下一个版本HTML5支持的一个新特性。受当前互联网技术突飞猛进的影响,浏览器跨域通信的需求越来越强烈,HTML标准终于把跨域通信考虑进去了。但目前HTML5仍然只是一个draft。window.postMessage是一个安全的实现直接跨域通信的方法。但是目前并不是所有浏览器都能支持,只有Firefox 3、Safari 4和IE8可以支持这个调用。
使用它向其它窗口发送消息的调用方式大概如下:
otherWindow.postMessage(message, targetOrigin);
在接收的窗口,需要设置一个事件处理函数来接收发过来的消息:
window.addEventListener("message", receiveMessage, false);
function receiveMessage(event){
if (event.origin!== "http://example.org:8080")
消息包含三个属性:data、origin(携带发送窗口所在域的真实信息)和source(代表发送窗口的handle)。安全性考虑,使用window.postMessage,必需要使用消息的origin和source属性来验证发送者的身份,否则会造成XSS漏洞。window.postMessage在功能上同iframe实现的跨域功能同样强大,并且使用简单,效率更高,但缺点是它目前在浏览器兼容方面有待提高。
在IE6,IE7下可利用IE的Opener可赋值为Object或Function的漏洞,提供postMessage方案的补充方案:
&!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
&html xmlns="http://www.w3.org/1999/xhtml">
&title>CrossDomain&/title>
&iframe src="http://sh-tanzhenlin/CrossDomain-child.html"
frameborder="0" visible="false" height="0" width="0" id="ifrChild">&/iframe>
&script type="text/javascript">
var child = document.getElementById("ifrChild");
var openerObject = {
funcInParent:function(arg){
alert(arg);
alert('executed by a function in parent page');
if(!+'\v1' && !'1'[0]){ //test browser is ie6 or ie7
child.contentWindow.opener = openerO
//postMessage showtime
function onClick(){
openerObject.funcInIframe('data from parent page ');
&input type="button" value="click me" onclick="onClick()" />
用iframe内嵌其它域下的页面:
&!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
&html xmlns="http://www.w3.org/1999/xhtml">
&script type="text/javascript">
onload = function(){
if(!+'\v1' && !'1'[0]){ // test browser if is ie6 or ie7
window.opener.funcInIframe=function(arg){
alert(arg);
alert('executed by a function in iframe');
window.opener.funcInParent('data from iframe')
本文地址:,欢迎访问原出处。
标签: , ,
注:与内容无关的评论将被删除,严重者禁用帐号!
不吐不快,赶紧来一发!
| 服务协议 | 隐私权保护 | 开放平台 | 广告服务 | PHP1招聘 | PHP1公益 | 客服中心
Copyright (C) 1998 - . All Rights Reserved
第一PHP社区全球最新的免费资源发布区
Livehost.fr法国免费可绑域名空间和Hostinghood德国免费PHP空间
& 日 17:20 &
Livehost.fr是一个来自法国的免费空间,提供10GB的容量和无限流量(官方没有在任何页面显示流量限制),页面底部下有一个广告(时有时无的)。是一个来自德国的免费空间,提供1GB的容量和10GB的流量,没有广告。
众所周知,法国的空间和德国的空间一样都是以稳定出名的,但大多数的空间都有广告和大量函数限制。Livehost.fr空间和Hostinghood也有大量的函数限制,但是可以成功安装Disucz!程序和Typecho程序(禁用函数较多,但可以使用MyFtp解压缩)。
Livehost.fr和Hostinghood都算不是老牌的,所以也就是让大家去练练手,本文就来为大家分享一下这两个空间的申请和使用基本方法,更多的,可以看:
1、京东云主机:
2、日本空间:
3、免费空间去掉广告:
Livehost.fr法国免费可绑域名空间和Hostinghood德国免费PHP空间
一、Livehost.fr法国免费空间申请方法
1、Livehost.fr网站:
1、官方网站:http://www.livehost.fr/
2、首先进入官网,点击如图所示的按钮开始申请 。
3、输入所需要的信息注册(邮箱一定要真实,需要接受信息的) 。
4、等进度条读完就可以到邮箱查看激活邮件了 。他们还提供免费邮箱,不过我们需要的是免费主机 。
5、验证成功的提示,你可以在右上角看到你已经登陆了 。
6、点击我框中的地方去开通免费。
7、选择第一个绿色的按钮开通免费空间 。
8、输入所需要的信息 点击蓝色按钮即可注册 。
9、创建成功的提示 。
10、这时你可以看到你主机的全部信息和控制面板了。(点击放大)
二、Livehost.fr免费空间管理使用
1、在上面的图片中可以找到右边的添加一个新MySQL按钮,点击它,输入所需要的信息 。
2、创建成功提示 。
3、你可以在面板中看到你创建的免费空间和Mysql的情况。
4、进入免费空间管理,选择第三个选项,可以绑定域名,输入域名 。
5、需要注意的是,要绑定域名必须要把NS指定到ns1.livehost.fr,ns2.livehost.fr,否则会提示下面的内容 。
6、指定域名到ns1.livehost.fr,ns2.livehost.fr 。
三、Hostinghood德国免费PHP空间申请
1、Hostinghood官网:
1、官方网站:/
2、首先进入他们的首页,点击注册申请。注意:域名必须填写类似hezii.pw这样的顶级域名,hezii.org.wf这类二级域名是不会成功的 。密码中必须要有一个大写字母 。
3、成功后你会收到一封邮件,点击链接确认注册 。
4、注册完成!你会收到一封关于主机信息的文件 。
5、你可以在邮箱里找到登陆链接,登陆成功的提示及登陆后的页面。
四、Hostinghood免费空间管理教程
1、数据库添加,在菜单中选择Database 。
2、再选择你的网站。
3、新建一个数据库。
4、数据库建立完成 数据库主机为localhost。
5、子域名添加,在菜单中选择Subdomain,再选择你的网站。
6、创建一个子域名,创建完成。
7、FTP添加,在菜单中选择FTP。
8、再选择你的网站,创建一个FTP账号。
10、解压缩教程,Hostinghood本身的文件管理器并没有提供解压缩的程序,而且FileBox解压失败,所以只能用到在线FTP了,这里推荐一个网站
,速度较快。
11、注意:直接登陆会显示不出来文件,勾选Passive mode即可显示文件。
12、登陆后即可使用上传删除解压缩等操作。
五、Livehost.fr和Hostinghood免费空间相关演示
1、Livehost.fr空间相关演示:
1、Typecho:http://hezii.livehost.fr/demo/typecho2、Discuz!:http://hezii.livehost.fr/demo/dz3、不绑米掩饰:http://hezii.livehost.fr4、不绑米演示:http://hezii.livehost.fr/demo
2、Hostinghood空间相关演示:
1、绑米演示:http://hostinghood.hezii.pw2、Typecho:http://hostinghood.hezii.pw/demo/typecho3、Discuz!:http://hostinghood.hezii.pw/demo/dz4、不绑米演示:http://hezii.
六、Livehost.fr和Hostinghood空间申请使用小结
1、Livehost.fr和Hostinghood这两个免费空间从域名注册时间来看都仅有几年的时间,申请和使用都并不复杂。Hostinghood空间有一点广告,但是比较小,不影响使用。
2、Livehost.fr和速度一般,空间的稳定性还需要继续观察一段时间,大家如果在使用这两个空间过程中有新的发现,都可以在本篇文章下留言及时告知。
文章出自:&& 由部落编辑整理,版权归原作者所有。本站文章除注明出处外,皆为作者原创文章,可自由引用,但请注明来源。
真的,我猜你也会喜欢的:
您或许对下面这些文章有兴趣:&&&&&&&&&&&&&&&&&&&&本月吐槽辛苦排行榜
免费资源部落博客、论坛、问答和优惠网的创建者
经常混迹于各种免费资源中,尝鲜后乐于分享给他人。用WP搭建了部落博客,没事儿就折腾Wordpress,喜欢找免费空间,但只求精,稳定,耐用。有时也会介绍一点关于建站的知识和主机、服务器的使用心得与体会。PS:此人为男。
TA的专栏:&&|&&
关于本文的作者
所属分类:
链接地址:
浏览前页:
浏览后页:
部落快速搜索栏
热门点击排行榜
网站导航栏
免费资源重点推荐
最新文章推荐
部落最新评论列表
不得不看的秘密
部落本月最受关注的热点
(热度255℃) (热度219℃) (热度150℃) (热度110℃) (热度91℃) (热度83℃) (热度76℃) (热度72℃) (热度64℃) (热度61℃) (热度56℃) (热度50℃) (热度49℃) (热度48℃) (热度41℃) (热度40℃) (热度38℃)
部落本月踩得最多的宝贝
(踩17,850次) (踩12,410次) (踩12,170次) (踩9,870次) (踩7,030次) (踩6,920次) (踩5,970次) (踩4,930次) (踩3,830次) (踩3,540次)
免费资源部落,是一个致力发布和推广来自世界各地的免费资源,包括多样实用的免费空间、各种优秀的免费软件、各样可用的免费网盘等个人博客网站。站长qi是一位很普通不过的人,长期关注网络空间、互联网、软件应用、程序开发与设计、网络应用等。免费资源部落成立的目的就是希望与更多人分享网络快乐与精彩!本站持续修改完善中,如遇不便还请谅解^_^

我要回帖

更多关于 域名限制 的文章

 

随机推荐