WebHostingTalk.ru  

Вернуться   WebHostingTalk.ru > Главные форумы > Технические аспекты и вопросы безопасности

Ответ
 
Опции темы
  #1  
Старый 02.11.2002, 06:06
avik avik вне форума
Дипломник
 
Регистрация: 07.07.2002
Сообщений: 34
По умолчанию

Люди, подскажите почему пхп так себя ведет.

Пытаюсь сделать так: (это из примера работы пхп и WMSigner от WebMoney)

$fp = popen("./WMSigner", "r+&quot

Выдает:
Invalid argument in /usr/local/psa/home/vhosts/........

Что только не пробовал вызывать, из разных мест,
результат такой. Ему ненравится open_base_directory ?
Так если open_base_directory, то и ошибка об этом говорит. А тут совсем не про него.
Убираю плюс, ошибка пропадает, но и не работает дальше.

Выключаю safe mode, все равно не работает.
А open_base_directory, убрать или изменить не могу.
Панель управления Плеск не даст, или както можно?

пхп настроен так: safe mode on, open_base_directory /tralala...

Мне кажется это изза open_base_directory, как можно это обойти, чтобы запустить этот WMSigner?
Перловый вариант работает отлично с WMSigner, а пхп нет.

Может кто сталкивался с запуском WMSigner из пхп, посоветуйте, как сделать?



Ответить с цитированием
  #2  
Старый 02.11.2002, 10:34
AndreyS AndreyS вне форума
Лаборант
 
Регистрация: 16.06.2002
Сообщений: 139
По умолчанию

Аргументы popen насколько я знаю только "r" или "w"
А по поводу safe mode - как настроен php_safe_mode_exec_dir ?
Ответить с цитированием
  #3  
Старый 02.11.2002, 14:51
avik avik вне форума
Дипломник
 
Регистрация: 07.07.2002
Сообщений: 34
По умолчанию

</span><table border="0" align="center" width="95%" cellpadding="3" cellspacing="1"><tr><td>Цитата (AndreyS @ 02 Ноя. 2002, 10:34)</td></tr><tr><td id="QUOTE">Аргументы popen насколько я знаю только &quot;r&quot; или &quot;w&quot;
А по поводу safe mode - как настроен php_safe_mode_exec_dir ?[/QUOTE]<span id='postcolor'>
Это уже интересно, а как же WM-новцы такое написали:
(Привожу полностью функцию)

/////////////////////////////////////////////////////////////////
// _GetSign - формирование строки подписи.
// Для внутреннего пользования функциями данного модуля
//
// Параметры :
// $inStr - Строка для подписи
// Возвращает :
// Строку - подпись
//
//! Для работы функции в той же директории, что и запушенный скрипт (не путайте
//! с местом расположения данного файла-модуля), должны существовать файлы
//! WMSigner и WMSigner.ini

function _GetSign($inStr)
{
$fp = popen(&quot;./WMSigner&quot;, &quot;r+&quot;

$PlanStr = &quot;$inStr\004\r\n&quot;;
fwrite($fp,$PlanStr);
$s = fgets($fp, 133);
pclose($fp);

return $s;
}
/////////////////////////////////////////////////////////////////


Если &quot;r&quot; пишу, то ($s = fgets($fp, 133) выдает ошибку и ничего нужного не возвращает.

2
А по поводу safe_mode_exec_dir:
Local Value = no value
Master Value = no value

Пробовал ставить так:
Local Value = /usr/local/bin
Master Value = no value

И вродебы пробовал ставить так:
(по разному пробовал, уже забыл как)
Local Value = .
Master Value = .

И что интересно, клиент говорит, что у другого хостера все ок.
Ответить с цитированием
  #4  
Старый 02.11.2002, 15:58
AndreyS AndreyS вне форума
Лаборант
 
Регистрация: 16.06.2002
Сообщений: 139
По умолчанию

По поводу popen - это вопрос еще тот
Вот что пишет man:
</span><table border="0" align="center" width="95%" cellpadding="3" cellspacing="1"><tr><td>Цитата </td></tr><tr><td id="QUOTE">
Historically, popen() was implemented with a unidirectional pipe; hence many implementations of popen() only allow the type argument to specify reading or writing, not both.[/QUOTE]<span id='postcolor'>

Соответственно работать будет не для всех реализаций и платформ. Отсюда и предупреждение разработчиков php

</span><table border="0" align="center" width="95%" cellpadding="3" cellspacing="1"><tr><td>Цитата </td></tr><tr><td id="QUOTE">Note: If you're looking for bi-directional support (two-way), use proc_open(). [/QUOTE]<span id='postcolor'>

Но proc_open это для php 4.3.0

А safe_mode_exec_dir должен указывать на директорию откуда можно запускать программы.
Насколько я помню (когда копал исходники) там если пути к программе нет, то тупо подставляется путь safe_mode_exec_dir
Ответить с цитированием
  #5  
Старый 02.11.2002, 22:34
TiM TiM вне форума
Младший научный сотрудник
 
Регистрация: 18.07.2002
Сообщений: 525
Отправить сообщение для TiM с помощью ICQ
Восклицание

На сколько мне известно, то popen() закрыта если safe_mode включена, возможен запуск только из диры safe_mode_exec_dir и кроме того в последнем нельзя использовать &quot;.&quot; и &quot;..&quot; (как и в popen).
__________________
GARM Technologies - №1 в Латвии :cool:
Выделенные сервера, VPS и рамещение сервера в Латвии.
Любой тип хостинга, который Вы только можете себе представить.
Ответить с цитированием
  #6  
Старый 15.11.2002, 17:57
avik avik вне форума
Дипломник
 
Регистрация: 07.07.2002
Сообщений: 34
По умолчанию

Первая проблема вродебы решена.
Через з.., но работает.

Вот с форума WM:
http://forum.webmoney.ru/asp/n_message.asp?idcl=21&amp;MessageID=22077

---------------------------------------------
Не все OS поддерживают двунапраправленный pipe. Можете использовать
временный файл и однонаправленный pipe подобным образом:

тело фунции можете заменить на:
================================
$tmp=tempnam(&quot;/tmp&quot;,&quot;wm&quot;
$fp = popen(&quot;./WMSigner &gt;&quot;.$tmp, &quot;w&quot;
$PlanStr = &quot;$inStr\004\r\n&quot;;
fwrite($fp,$PlanStr);
pclose($fp);
$fp=fopen($tmp,&quot;r&quot;
$s = fgets($fp, 133);
fclose($fp);
unlink($tmp);
return $s;
===============================

К сожалению это тоже не универсальный метод, поскольку на некоторых хостингах нельзя создать файл в папке /tmp. В этом случае создайте подобную папку в доступном вам месте файловой системы, и следите за количеством файлов в ней.
-------------------------------------------------
Режим safe_mode пришлось выключить.
Кстати, а что хорошего давал включеный режим safe_mode?
Чем может грозить его выключение?
(это второстепенный вопрос, но тоже важный для меня, а главный вопрос снизу

Появилась вторая:

curl не хочет &quot;идти&quot; на https, а на http ходит нормально.
Делается все так:

==========================================
$ch = curl_init(&quot;https://w3s.webmoney.ru&quot;.$addr);
curl_setopt($ch, CURLOPT_HEADER, 0);

// CURLOPT_RETURNTRANSFER часто работает некорректно

$fp = tmpfile();
curl_setopt ($ch, CURLOPT_FILE, $fp);
curl_exec($ch);
curl_close($ch);

fseek($fp,0,SEEK_SET);
$result = fgets($fp,1024);
fclose($fp);

return $result;
======================================

Пхп скомпилин с curl, последняя стабильная версия 7.10.1

Что нужно , чтобы курл на https ходил?

Выручайте!!! Хелп!



Ответить с цитированием
  #7  
Старый 16.11.2002, 00:09
TiM TiM вне форума
Младший научный сотрудник
 
Регистрация: 18.07.2002
Сообщений: 525
Отправить сообщение для TiM с помощью ICQ
По умолчанию

PHP с OpenSSL?
__________________
GARM Technologies - №1 в Латвии :cool:
Выделенные сервера, VPS и рамещение сервера в Латвии.
Любой тип хостинга, который Вы только можете себе представить.
Ответить с цитированием
  #8  
Старый 16.11.2002, 02:52
avik avik вне форума
Дипломник
 
Регистрация: 07.07.2002
Сообщений: 34
По умолчанию

</span><table border="0" align="center" width="95%" cellpadding="3" cellspacing="1"><tr><td>Цитата (TiM @ 16 Ноя. 2002, 00:09)</td></tr><tr><td id="QUOTE">PHP с OpenSSL? [/QUOTE]<span id='postcolor'>
Сначала пхп был без опенссл, а потом я скомпилил с ней, и все равно ничего ж(
Ответить с цитированием
  #9  
Старый 07.12.2002, 20:41
TiM TiM вне форума
Младший научный сотрудник
 
Регистрация: 18.07.2002
Сообщений: 525
Отправить сообщение для TiM с помощью ICQ
Восклицание

Помнится там для походов на https требовалось больше телодвижений чем просто добавление буковки s после http . Что конкретно - не спрашивайте. Попробуйте покопаться на php.net, там это было.
__________________
GARM Technologies - №1 в Латвии :cool:
Выделенные сервера, VPS и рамещение сервера в Латвии.
Любой тип хостинга, который Вы только можете себе представить.
Ответить с цитированием
Ответ


Ваши права в разделе
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
VPS и функция include aseo Технические аспекты и вопросы безопасности 5 14.02.2008 19:22
Перловое Set-Cookie: не работает в Firefox ? chek.imde Технологии программирования для web 4 04.10.2007 15:59
Изменение личных данных не работает Sergio Замечания и предложения 14 05.01.2004 17:04
Как curl работает? avik Технические аспекты и вопросы безопасности 7 16.11.2002 20:34


Часовой пояс GMT +3, время: 06:26.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot