Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> предотвращение запуска скрипта вне сайта 
V
    Опции темы
Sniper
Дата 5.3.2009, 20:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 511
Регистрация: 8.5.2002

Репутация: нет
Всего: 2



есть сайт 

index.php mainpage.php simplepage.php

так вот как предотравить запуск simplepage.php из строки браузера, но чтобы при этом из скрипта inde.php можно было запустить и simplepage.php?


--------------------
"Я испытываю отвращение к системе, разработаннной для "пользователя", если в слове "пользователь" закодировано уничижительное значение "тупой и примитивный".
Кен Томпсон, создатель Unix
PM MAIL   Вверх
skyboy
Дата 5.3.2009, 20:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Цитата(Sniper @  5.3.2009,  19:46 Найти цитируемый пост)
из скрипта inde.php можно было запустить и simplepage.php? 

имеется в виду include?
тогда типовое решение: в inde.php объявить переемнную или константу, а в simplepage.php проверять isset этой переменной/константы. если не установлена - выходить.
также можно запретить доступ "снаружи" через директиву Deny в файле .htaccess
PM MAIL   Вверх
enof
Дата 5.3.2009, 21:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 837
Регистрация: 23.1.2009
Где: Санкт-Петербург

Репутация: 30
Всего: 35



Sniper, если правильно понял и сервер apache, то создайте в каталоге со скриптом файл .htaccess 
Код

<Files simplepage.php>
  Deny from all
</Files> 


Это сообщение отредактировал(а) enof - 5.3.2009, 21:25
PM MAIL ICQ Skype   Вверх
Photon
Дата 5.3.2009, 22:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Злобный программер
**


Профиль
Группа: Участник
Сообщений: 282
Регистрация: 27.2.2009
Где: Таганрог

Репутация: 10
Всего: 12



Более правильное решение:

в самом начале index.php:

Код

define('coreLoad',true);


в файлах, которые не должны работать сами по себе, в самом начале добавляем:

Код

if(!defined('coreLoad') || !coreLoad )
      header('Location: index.php');






--------------------
With best regards..
PM MAIL ICQ Skype GTalk Jabber   Вверх
Sniper
Дата 5.3.2009, 22:45 (ссылка)    | (голосов:3) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 511
Регистрация: 8.5.2002

Репутация: нет
Всего: 2



Цитата

тогда типовое решение: в inde.php объявить переемнную или константу, а в simplepage.php проверять isset этой

переменная видится только в том скрипте в котором выполняется или нет?


--------------------
"Я испытываю отвращение к системе, разработаннной для "пользователя", если в слове "пользователь" закодировано уничижительное значение "тупой и примитивный".
Кен Томпсон, создатель Unix
PM MAIL   Вверх
enof
Дата 5.3.2009, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 837
Регистрация: 23.1.2009
Где: Санкт-Петербург

Репутация: 30
Всего: 35



Sniper, переменная видна в файле, в котором происходит подключение.
PM MAIL ICQ Skype   Вверх
Photon
Дата 5.3.2009, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Злобный программер
**


Профиль
Группа: Участник
Сообщений: 282
Регистрация: 27.2.2009
Где: Таганрог

Репутация: 10
Всего: 12



Если остальные скрипты подключаются через include('script_name.php'), то константа будет видна везде..
Если они вызываются как-то по-другому, тогда придется эту константу как-то передавать скрипту..
Можно, например, через сессию..

index.php
Код

define('coreLoad', true);
session_start();
$_SESSION['coreLoad'] = coreLoad;


Остальные скрипты:
Код

session_start();
if (!isset($_SESSION['coreLoad']) || !$_SESSION['coreLoad'])
    header('Location: index.php');



--------------------
With best regards..
PM MAIL ICQ Skype GTalk Jabber   Вверх
enof
Дата 5.3.2009, 22:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 837
Регистрация: 23.1.2009
Где: Санкт-Петербург

Репутация: 30
Всего: 35



Photon, skyboy, чем решение с дополнительными лишними теледвижениями с пхп правильнее реализации 
этой задачи с помощью стандартных средств сервера?
PM MAIL ICQ Skype   Вверх
Sniper
Дата 5.3.2009, 22:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 511
Регистрация: 8.5.2002

Репутация: нет
Всего: 2



Цитата

Если остальные скрипты подключаются через include('script_name.php')...

вот вы и заработали +1
спасибо.

enof тоже +1

Это сообщение отредактировал(а) Sniper - 5.3.2009, 22:59


--------------------
"Я испытываю отвращение к системе, разработаннной для "пользователя", если в слове "пользователь" закодировано уничижительное значение "тупой и примитивный".
Кен Томпсон, создатель Unix
PM MAIL   Вверх
skyboy
Дата 5.3.2009, 23:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



enof, могу предположить(только предположить!), что .htaccess не на каждом хостинге возможно использовать(IIS или nginx поддерживают аналог .htaccess?).
даже если поддерживает, то, получается, система может не работать "как надо", будучи установленной "из коробки"(например, CMS при установке навряд ли будет перезаписывать существующий .htaccess файл - вдруг, там настройки какие критические?). потому и в самописных системах, и в готовых CMS встречается именно решение на define + isset. впрочем, допускаю, причина может быть и не в этом. в таком случае, прошу меня поправить.
PM MAIL   Вверх
bars80080
Дата 5.3.2009, 23:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(enof @  5.3.2009,  21:52 Найти цитируемый пост)
Photon, skyboy, чем решение с дополнительными лишними теледвижениями с пхп правильнее реализации 
этой задачи с помощью стандартных средств сервера? 


Цитата(skyboy @  5.3.2009,  22:39 Найти цитируемый пост)
, то, получается, система может не работать "как надо", будучи установленной "из коробки"

может и именно с этим я и столкнулся как-то раз. deny блокировало все запросы, даже шедшие от CMS. почему у них там была такая реализация - фиг знает.
PM MAIL WWW   Вверх
enof
Дата 5.3.2009, 23:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 837
Регистрация: 23.1.2009
Где: Санкт-Петербург

Репутация: 30
Всего: 35



Цитата(skyboy @  5.3.2009,  23:39 Найти цитируемый пост)
.htaccess не на каждом хостинге возможно использовать

тоже об этом думал, но так рассуждая, придется забыть про половину возожностей языка\сервера smile 
PM MAIL ICQ Skype   Вверх
skyboy
Дата 6.3.2009, 00:39 (ссылка) |  (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



Цитата(enof @  5.3.2009,  22:55 Найти цитируемый пост)
но так рассуждая, придется забыть про половину возожностей языка\сервера

та ладно.
просто в нормально спроектированной системе должно поддерживаться либо все широкоиспользуемое, либо должна быть возможность конфигурирования, либо сразу должно декларироваться: такая-то фишка работает только при выполнении таких-то требований. и это, по-моему, нормально.
так, все-таки, есть в nginx .htaccess или подобие?
PM MAIL   Вверх
nerezus
Дата 6.3.2009, 01:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вселенский отказник
****


Профиль
Группа: Участник
Сообщений: 3330
Регистрация: 15.6.2005

Репутация: 12
Всего: 43



Цитата

так, все-таки, есть в nginx .htaccess или подобие?
 Куда же без этого. Там и реврайт-система есть своя даже.

Цитата

но так рассуждая, придется забыть про половину возожностей языка\сервера
 +1
Сразу сделать ряд допущений: php версия > 5.2(требуется для фреймворка), magic quotes = off, short tags = on, url open = on,  url include = off, r. globals = off, и жить станет легче.


--------------------
Сообщество художников Artsociety.ru
PM MAIL WWW   Вверх
Sniper
Дата 6.3.2009, 09:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 511
Регистрация: 8.5.2002

Репутация: нет
Всего: 2



Цитата(skyboy @ 5.3.2009,  20:39)
.htaccess не на каждом хостинге возможно использовать

к счастью хостинг у меня в соседней комнате ;-)


--------------------
"Я испытываю отвращение к системе, разработаннной для "пользователя", если в слове "пользователь" закодировано уничижительное значение "тупой и примитивный".
Кен Томпсон, создатель Unix
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0733 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.