ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

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

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

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

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

  #2  
Старый 21.05.2009, 17:01
Аватар для Gifts
Gifts
Reservists Of Antichat - Level 6
Регистрация: 25.04.2008
Сообщений: 827
Провел на форуме:
2769640

Репутация: 1304


По умолчанию

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

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

Репутация: 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=-
-=Static=-
Участник форума
Регистрация: 12.11.2006
Сообщений: 213
Провел на форуме:
347573

Репутация: 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
Gifts
Reservists Of Antichat - Level 6
Регистрация: 25.04.2008
Сообщений: 827
Провел на форуме:
2769640

Репутация: 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
eLWAux
Members of Antichat - Level 5
Регистрация: 15.06.2008
Сообщений: 941
Провел на форуме:
5111568

Репутация: 2399


Отправить сообщение для eLWAux с помощью ICQ
По умолчанию

а делов то..
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
Kaimi
Reservists Of Antichat - Level 6
Регистрация: 23.08.2007
Сообщений: 1,237
Провел на форуме:
18127311

Репутация: 1676


Отправить сообщение для Kaimi с помощью ICQ
По умолчанию

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

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

  #8  
Старый 21.05.2009, 21:34
Аватар для Gifts
Gifts
Reservists Of Antichat - Level 6
Регистрация: 25.04.2008
Сообщений: 827
Провел на форуме:
2769640

Репутация: 1304


По умолчанию

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

  #9  
Старый 21.05.2009, 21:49
Аватар для m0Hze
m0Hze
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
Провел на форуме:
6462214

Репутация: 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, 21:54
Аватар для Gifts
Gifts
Reservists Of Antichat - Level 6
Регистрация: 25.04.2008
Сообщений: 827
Провел на форуме:
2769640

Репутация: 1304


По умолчанию

m0Hze Зачем угадывать? Инклудим файл с генератором, инклудим интересующий файл.

Опять таки - если есть возможность читать/инклудить чужой файл - бесполезно это баловство на чистом пхп
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как определить, что Ваш ребенок растет хакером? 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
С чего начинается достойный проект ОТЕЦ Чужие Статьи 2 28.09.2006 08:43



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


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




ANTICHAT.XYZ