try to filter any path information from leaking through to zot_finger; and log the url wherever called to track down where it might be called with a malformed webbie or complete path instead of hostname.

This commit is contained in:
zotlabs 2016-10-13 21:01:54 -07:00
parent daaefed61b
commit bd70e6ae6d
2 changed files with 7 additions and 1 deletions

View File

@ -32,6 +32,8 @@ class Finger {
} else { } else {
$address = substr($webbie,0,strpos($webbie,'@')); $address = substr($webbie,0,strpos($webbie,'@'));
$host = substr($webbie,strpos($webbie,'@')+1); $host = substr($webbie,strpos($webbie,'@')+1);
if(strpos($host,'/'))
$host = substr($host,0,strpos($host,'/'));
} }
$xchan_addr = $address . '@' . $host; $xchan_addr = $address . '@' . $host;
@ -58,7 +60,7 @@ class Finger {
if ($r[0]['hubloc_network'] && $r[0]['hubloc_network'] !== 'zot') { if ($r[0]['hubloc_network'] && $r[0]['hubloc_network'] !== 'zot') {
logger('zot_finger: alternate network: ' . $webbie); logger('zot_finger: alternate network: ' . $webbie);
logger('url: '.$url.', net: '.var_export($r[0]['hubloc_network'],true), LOGGER_DATA, LOG_DEBUG); logger('url: ' . $url . ', net: ' . var_export($r[0]['hubloc_network'],true), LOGGER_DATA, LOG_DEBUG);
return $ret; return $ret;
} }
} }

View File

@ -186,6 +186,8 @@ function zot_finger($webbie, $channel = null, $autofallback = true) {
} else { } else {
$address = substr($webbie,0,strpos($webbie,'@')); $address = substr($webbie,0,strpos($webbie,'@'));
$host = substr($webbie,strpos($webbie,'@')+1); $host = substr($webbie,strpos($webbie,'@')+1);
if(strpos($host,'/'))
$host = substr($host,0,strpos($host,'/'));
} }
$xchan_addr = $address . '@' . $host; $xchan_addr = $address . '@' . $host;
@ -355,6 +357,8 @@ function zot_refresh($them, $channel = null, $force = false) {
$rhs = '/.well-known/zot-info'; $rhs = '/.well-known/zot-info';
logger('zot_refresh: ' . $url, LOGGER_DATA, LOG_INFO);
$result = z_post_url($url . $rhs,$postvars); $result = z_post_url($url . $rhs,$postvars);
logger('zot_refresh: zot-info: ' . print_r($result,true), LOGGER_DATA, LOG_DEBUG); logger('zot_refresh: zot-info: ' . print_r($result,true), LOGGER_DATA, LOG_DEBUG);