2012-03-27 141 views
-2

你好,我在这里面临的一些情况下检测网址在asp.net以及php.Actualy我使用php的网址在我的asp.net page.For例如,我使用一个域像检测传入的网址在php

www.smlsml.com.pk在这个域内我使用的是asp.net页面,在asp.net页面中,我打电话给php url,比如www.phpurl.com.Problem是我想要确保php当这是从www.smlsml.com.pk.I调用的意思是当我从asp.net页面调用php url时,那么php url应该是chek,而如果从www.smlsml.com.pk调用php url,那么它会被打开,如果它直接打开或任何其他除www.smlsml.com.pk然后它应该重定向到Myasp.aspx页我在哪里使用iframe和它的src是php url,所以当aspx页面将调用它需要进行身份验证如果有的话一个得到了解我的想法,然后请帮助我在PHP或在asp.net做,因为我是新来的PHP和在asp.net我知道如何保护一个PHP页面。请任何一个帮助,或者如果任何人有更好的主意比这再请分享me.Thanks提前

更新

$adeel = array("http://a.sml.com.pk","http://a.sml.com.pk"); 
if(!in_array($_SERVER['SERVER_NAME'],$adeel)){ 
echo "Outer"; 
} 
else{ 
echo "inner"; 
} 

回答

1

我认为你是在谈论检查HTTP请求的指引,也就是说,你的PHP脚本被称为URL从。

此URL是在PHP-环境变量$_SERVER['HTTP_REFERER']

但一个音符,但:这是因为这引荐很容易被伪造或省略一个很大的安全漏洞。所以你最好传递一些安全令牌,你可以检查它(但不能使用同一个会话)。

下面是有关从ASP传递会话令牌到PHP另一个问题:

Persist Session from ASP.NET to PHP


如果你想使用$_SERVER['HTTP_REFERER']不过,您可能希望只检查域,而不是完整的URI。最好隔离域名,例如

$referrerDomain = parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST); 

和使用,在您的in_array()功能:

$adeel = array("a.sml.com.pk", "b.sml.com.pk"); 
    if (! in_array(referrerDomain, $adeel)){ 
     echo "Outer"; 
    } 
    else { 
     echo "inner"; 
    } 
+0

爵士我曾经在PHP网页上面的代码作为更新,但这个没有做任何事情将ü请赤,或在此 – 2012-03-27 07:50:08

+0

任何修改Sir请参阅我的更新 – 2012-03-27 09:55:58

+0

您正在使用'$ _SERVER ['SERVER_NAME']'',其中包含此脚本实际运行的服务器的名称,但您需要使用'$ _SERVER ['HTTP_REFERER']'(请参阅我的文章)。但请记住,$ _SERVER ['HTTP_REFERER']拥有完整的URI,因此您需要在域名后面删除任何内容以进行检查。 – acme 2012-03-27 12:04:40