filemaker — PHP-скрипт захвачен

Во-первых, я не php-кодер, поэтому понятия не имею, почему происходит следующее.
У меня есть несколько php-файлов, созданных разработчиком, которые я использую для поиска в Filemaker Webdirect. Предполагается, что файлы php создают соединение с Filemaker и отображают находку в Webdirect.
Внезапно со вчерашнего дня запуск сценария php перенаправил браузер на http://www.searchingresult.com/?pid=9POLWR59T&дп = smilepix.i.com.com&rpid = 9POKA9272

Скрипт php имеет три файла: fm_link.php, fm_read.php и fm_write.php, которые запускаются в этом порядке.

Чтобы попытаться решить проблему, я попробовал несколько вещей.

  1. попробуйте запустить скрипт с другого компьютера — результат тот же, что и выше.
  2. Поместите 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.');
}

Я замер с этим и не знаю что делать.

Заранее спасибо за помощь — Сэм

1

Решение

Таким образом, из кода, который вы показываете, похоже, что единственным кодом, который может заставить страницу перенаправить пользователя на другую страницу, является следующая строка fm_link.php:

header('Location: http://' . $fmurl . '/fmi/webd#' . $fmfile );

Все остальное в других файлах — чтение и запись в файл на вашем сервере, но ни один из них не вызовет перенаправление.

Также кажется, что это может быть причиной, потому что он просто принимает информацию, переданную из любой формы или ссылки, по которой вы щелкаете. fm_link.php файл. Кто бы ни захватил вашу установку, возможно, поместил вредоносный код в форму или ссылку, триггеры fm_link.php который не выглядит включенным в код, который вы показываете.

Я не думаю, что источник вашей проблемы показан в коде, который вы опубликовали, но мой ответ на ваш пост: позвонить профессионалу.

Если вы не php-кодер, хорошо, что вы не уверены в том, что происходит, и это хорошее место для изучения, но я бы не советовал вам пытаться справиться с этим самостоятельно через StackOverflow. Если кто-то действительно похитил ваш код, было бы лучше, чтобы профессиональный разработчик посмотрел на общую структуру. Вы можете видеть симптом того, что на самом деле является более серьезной проблемой.

Вы можете связаться с компанией, в которой я работаю, Скелетный ключ, о помощи вам, или вы можете искать другую компанию-разработчика, используя Поиск консультанта FileMaker. В любом случае, попросите разработчика проверить это.

0

Другие решения

Я подозреваю, что там, где размещен php, есть какой-то мод apache или что-то, что перенаправляет страницу еще до запуска вашего скрипта.

Похоже, это зависит от того, где находятся ваши PHP-файлы и как на них есть ссылки в FM-файле. Домен, который вы используете, устарел? Вы можете попытаться указать местоположение php-файлов с помощью IP-адреса.

Кстати, я тестировал решение, размещенное на моем собственном сервере в Chrome и Firefox, и оба они работали для меня. Firefox не поддерживается браузером для WebDirect, но это сработало.

Эти файлы были из поста в блоге здесь:
http://www.soliantconsulting.com/blog/2015/01/extending-webdirect-url-parameters

Спасибо
Майк

0

По вопросам рекламы [email protected]