Php 检查SOAP中的请求脚本url

Php 检查SOAP中的请求脚本url,php,soap,Php,Soap,我有非常基本的SOAP服务器: $soap = new SoapServer(null, array('uri' => '')); $soap->addFunction('myFunction'); if ($_SERVER['REQUEST_METHOD'] == 'POST') { $soap->handle(); } else { echo "Available functions:"; foreach ($soap->getFuncti

我有非常基本的SOAP服务器:

$soap = new SoapServer(null, array('uri' => ''));

$soap->addFunction('myFunction');

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $soap->handle();
} else {
    echo "Available functions:";
    foreach ($soap->getFunctions() as $func) {
        echo "\n\t" . $func;
    }
}
现在,我有一组特定的域(我自己的域),我希望从这些域中获得请求,而没有其他域—比如在数组中:

$allowed_domains = array('http://www.example.com', 'http://www.otherexample.com');
我如何才能创建一个“白名单”,因为只有在这些域中才能真正向这个soap服务器脚本发出请求(任何其他域都将被拒绝访问)


谢谢大家!

检查可以如下所示:

if(!in_array($_SERVER['HTTP_REFERER'], $allowed_domains) {
    // operation is denied
    exit 0;
}

希望有帮助:)

谢谢您的快速回答!不幸的是,
$\u服务器['HTTP\u REFERER']
未设置…请尝试使用gethostbyaddr($\u服务器['REMOTE\u ADDR'])而不是$\u服务器['HTTP\u REFERER'],恐怕这实际上不会返回请求域,而是服务器所有者的域(不是我的域)。我想我只需要请求用户名和密码,而不是“白名单”系统。