Во-первых, я не php-кодер, поэтому у меня нет подсказки, почему происходит следующее. У меня есть некоторые php-файлы, созданные разработчиком, которые я использую для поиска в Filemaker Webdirect. Предполагается, что файлы php создают соединение с Filemaker и отображают find в Webdirect. вдруг как вчера, запустив сценарий PHP перенаправлен браузер http://www.searchingresult.com/?pid=9POLWR59T&dn=smilepix.i.com.com&rpid=9POKA9272PHP Script Is Hijacked
Сценарий PHP имеет три файла: fm_link.php, fm_read.php и fm_write.php, которые работают в таком порядке.
Чтобы попытаться решить проблему, я попробовал несколько вещей.
- попробуйте запустить сценарий с другого компьютера - тот же результат, что и выше.
- Поместите сценарии php на другой домен - тот же результат, что и выше.
Вот скрипт, выполняются: fm_link.php
<?php
session_start();
// default parameters, if not passed
$fmurl = ''; // enter the address of the server hosting webdirect
$fmfile = ''; // enter the default file to open
if (isset($_GET['fmurl'])) {
$fmurl = $_GET['fmurl'];
}
if (isset($_GET['fmfile'])) {
$fmfile = $_GET['fmfile'];
}
// store all GET paramters in a session
if (isset($_GET) && count($_GET) > 0) {
$_SESSION['get_requests'] = $_GET;
}
// redirect to WebDirect Session
header('Location: http://' . $fmurl . '/fmi/webd#' . $fmfile);
fm_read.php
<?php
// check for required parameter, should match the UUID passed in fm write file.
if(isset($_GET['file_uuid']) && strlen($_GET['file_uuid'])>0){
$filename_string = filter_var($_GET['file_uuid'], FILTER_SANITIZE_STRING);
$fn = '/tmp/'.$filename_string.'.txt';
$fr = fopen($fn, "r") or die("Unable to open file!");
echo fread($fr, filesize($fn));
fclose($fr);
unlink($fn); // remove the file once read
} else {
exit('Error: No file.');
}
fm_write.php
<?php
session_start();
// only write to file if we get the correct parameter "file_uuid"
if (isset($_GET['file_uuid']) && strlen($_GET['file_uuid']) > 0) {
// save temp file with uuid from server. sanitize the file_uuid parameter
$filename_string = filter_var($_GET['file_uuid'], FILTER_SANITIZE_STRING);
// add extension for writing
$filename = $filename_string . '.txt';
// set session variables to a string to write
//initialize string
$string = '';
// set each parameter as local variable
foreach ($_SESSION['get_requests'] as $key => $value) {
if ($key == 'fmurl' || $key == 'fmfile') {
// do not store these two parameters
} else {
// store as variables
$string .= '$' . urlencode($key) . ' = "' . urlencode($value) . '"; ';
}
}
// write the file to temp
$fn = '/tmp/' . $filename;
if ($fn) {
$f = fopen($fn, 'w+');
if ($f) {
$fw = fwrite($f, $string);
if ($fw) {
echo 'wrote file.'; // . $fn
// once file is written, destroy session
session_destroy();
} else {
echo 'write error';
}
} else {
echo 'open error';
}
} else {
echo 'file error';
}
} else {
exit('nothing to do.');
}
Я в тупике с этим и не знаю, что делать.
Заранее спасибо за вашу помощь - Сэм
Просто догадок после небольшого поиска - очистить кэш веб-браузера. Убедитесь, что новые расширения не добавлены или запущены и не используются «noscript» или их эквивалент или просто отключите «javascript» в веб-браузере. теперь попробуйте использовать веб-сайт. Те же результаты? –
Спасибо Райан за ответ так быстро. Я сделал то, что вы сказали выше, но при отключении javascript я получаю это сообщение: «Вы должны включить javascript в своем браузере, чтобы использовать приложение, созданное с помощью Vaadin». Кроме того, у меня есть сценарий Filemaker pause в точке, где происходит эта проблема, и в глобальном поле параметра я получаю следующее: * Переадресация домена Спонсора
". Я просматриваю наш модем, чтобы узнать, не пострадало ли оно. – user3753328
Can вы разговариваете с человеком «поддержки» по этой проблеме? –