HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Как определить что скрипт запущен локально
  #1  
Старый 21.05.2009, 15:50
pretolock
Новичок
Регистрация: 16.05.2009
Сообщений: 12
С нами: 8940677

Репутация: 0
Отправить сообщение для pretolock с помощью AIM
По умолчанию Как определить что скрипт запущен локально

Как сдалать проверку в PHP скрипте 1 что он запущен из скрипта 2, который находится на томже сайте
Т.е. нужно запретить запуск скрипта 1 удаленно и из других скриптов, если они используют хостинг, этого же сервера

if ($_SERVER['SERVER_ADDR'] != $_SERVER['REMOTE_ADDR'])
предотвращает только удаленный запуск
 
Ответить с цитированием

  #2  
Старый 21.05.2009, 17:01
Gifts
Reservists Of Antichat - Level 6
Регистрация: 25.04.2008
Сообщений: 827
С нами: 9497186

Репутация: 1304


По умолчанию

В первом файле
PHP код:
define('l_include',1); 
Во втором первыми строками:
PHP код:
if (!defined('l_include')) die; 
 
Ответить с цитированием

  #3  
Старый 21.05.2009, 17:34
pretolock
Новичок
Регистрация: 16.05.2009
Сообщений: 12
С нами: 8940677

Репутация: 0
Отправить сообщение для pretolock с помощью AIM
По умолчанию

Цитата:
Сообщение от Gifts  
В первом файле
PHP код:
define('l_include',1); 
Во втором первыми строками:
PHP код:
if (!defined('l_include')) die; 
а что мешает воспользоваться хостингом на томже серваке и написать:
PHP код:
define('l_include',1); 
в чужом скрипте, а потом вызвать мой скрипт который должен быть запущен локально на моем хостинге?
 
Ответить с цитированием

  #4  
Старый 21.05.2009, 19:22
-=Static=-
Участник форума
Регистрация: 12.11.2006
Сообщений: 213
С нами: 10260776

Репутация: 185
По умолчанию

Если ты никому не расскажешь, что у тебя константа для проверки называется "l_include" - то никто и не догадается, что надо именно ее объявить. А если уже прочли скрипт, например через file_priv в sql-inj - то тут практически никакая проверка не спасет

Вот еще мысль: Можно сделать проверку полного пути от корня сервера, чтоб быть уверенным что скрипт Б инклудят из скрипта в твоей папке. Например так:
PHP код:
<?
$docRoot 
"/www/home/myfolder/public_html";
if(
$_SERVER["DOCUMENT_ROOT"] != $docRoot) die("You try to include my script from another fucking server");

// ...
?>
 
Ответить с цитированием

  #5  
Старый 21.05.2009, 20:41
Gifts
Reservists Of Antichat - Level 6
Регистрация: 25.04.2008
Сообщений: 827
С нами: 9497186

Репутация: 1304


По умолчанию

pretolock Не позволит нормально настроенный сервер/права на файл. Если злоумышленнику удалось заинклудить/прочитать исходный текст скрипта - ни одна защита не спасет (кроме быть может самописных библиотек-расширений ПХП)

-=Static=- На переменные нельзя надеяться. Например:
PHP код:
echo $_SERVER["DOCUMENT_ROOT"].'<hr>';
$_SERVER["DOCUMENT_ROOT"] = 'some trash dir';
echo 
$_SERVER["DOCUMENT_ROOT"]; 
 
Ответить с цитированием

  #6  
Старый 21.05.2009, 20:47
eLWAux
Постоянный
Регистрация: 15.06.2008
Сообщений: 941
С нами: 9423746

Репутация: 2399


По умолчанию

а делов то..
PHP код:
 if ( $_SERVER['SERVER_NAME'] == 'localhost' OR
      
$_SERVER['SERVER_ADDR'] == '127.0.0.1') {
      print 
'local run';
 } else {
      print 
'remote run';
 } 
 
Ответить с цитированием

  #7  
Старый 21.05.2009, 21:15
Kaimi
Познавший АНТИЧАТ
Регистрация: 23.08.2007
Сообщений: 1,237
С нами: 9851426

Репутация: 1676


По умолчанию

Цитата:
а делов то..
Угу, в своем скрипте перед инклудом твоего скрипта дописываешь
$_SERVER['SERVER_NAME'] = ....;
$_SERVER['SERVER_ADDR'] = ....;

И способ не работает
 
Ответить с цитированием

  #8  
Старый 21.05.2009, 21:34
Gifts
Reservists Of Antichat - Level 6
Регистрация: 25.04.2008
Сообщений: 827
С нами: 9497186

Репутация: 1304


По умолчанию

eLWAux Достаточно неожиданно, но условие будет выполняться всегда ^^ Во всяком случае server_addr Да и вообще - зачем читать хотя бы первый пост до конца?
 
Ответить с цитированием

  #9  
Старый 21.05.2009, 21:49
m0Hze
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
С нами: 9223466

Репутация: 3171


По умолчанию

Самый оптимальный вариант - вариант Gift
только я бы еще сделал както так:

PHP код:
<?php

/**
 * @author m0hze
 * @copyright 2009
 */

$rand rand(1,6);
define(generate_def($rand),1);
  function 
generate_def($number)

  {

    
$arr = array('a','b','c','d','e','f',

                 
'g','h','i','j','k','l',

                 
'm','n','o','p','r','s',

                 
't','u','v','x','y','z',

                 
'A','B','C','D','E','F',

                 
'G','H','I','J','K','L',

                 
'M','N','O','P','R','S',

                 
'T','U','V','X','Y','Z',

                 
'1','2','3','4','5','6',

                 
'7','8','9','0','.',',',

                 
'(',')','[',']','!','?',

                 
'&','^','%','@','*','$',

                 
'<','>','/','|','+','-',

                 
'{','}','`','~');

    
// Генерируем пароль

    
$def "";

    for(
$i 0$i $number$i++)

    {

      
// Вычисляем случайный индекс массива

      
$index rand(0count($arr) - 1);

      
$def .= $arr[$index];

    }

    return 
$def;
}

?>
Вот только неподумал, как во второй скрипт передать загенеренную константу
НУ может ктото другой придумает,но при таком раследе я непредставляю как ктото сможет угадать бдующую константу.
 
Ответить с цитированием

  #10  
Старый 21.05.2009, 22:59
pretolock
Новичок
Регистрация: 16.05.2009
Сообщений: 12
С нами: 8940677

Репутация: 0
Отправить сообщение для pretolock с помощью AIM
По умолчанию

Цитата:
Сообщение от m0Hze  
Вот только неподумал, как во второй скрипт передать загенеренную константу
НУ может ктото другой придумает,но при таком раследе я непредставляю как ктото сможет угадать бдующую константу.
я думаю сделать так:
- скрипт который должен запустить локальный скрипт генерирует случайное число
- записывает его в файл
- вызывает локальный скрипт и передает ему в URL'e это случайное число
- локальный скрипт сравнивает случайное число из URL'а со случайным числом прочитанным из файла
- локальный скрипт удаляет файл со случайным числом

как такая схема?
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как определить, что Ваш ребенок растет хакером? PHOEN_i_X Болталка 148 13.06.2010 18:02
F.A.Q по Пранку Nightmarе Статьи 43 28.03.2010 10:55
Мой ржачный разговор в аське с кем-то вроде как с античата, как я подумал Дрэгги Болталка 21 22.07.2007 12:33



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


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




ANTICHAT ™ © 2001- Antichat Kft.