检查请求脚本的URL在SOAP
问题描述:
我有非常基本的SOAP服务器:检查请求脚本的URL在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;
}
希望帮助:)
谢谢您的快速答复!不幸的是,'$ _SERVER ['HTTP_REFERER']'没有设置... – 2014-10-31 12:18:32
尝试用gethostbyaddr($ _ SERVER ['REMOTE_ADDR'])而不是$ _SERVER ['HTTP_REFERER'] – 2014-10-31 13:12:09
恐怕这并不实际返回请求域,但服务器所有者的域(这不是我的域)。我想我只需要通过请求用户名和密码来代替“白名单”系统。 – 2014-10-31 16:17:08