PHP | Безопасность | Исполняющий файл

U
На сайте с 13.03.2012
Offline
27
#11

сделайте ключ безопасности script.php?name=1&key=2093673047teg3634y9e

и еще добавьте ограничение по IP либо другим параметрам

-
Qest
На сайте с 21.10.2010
Offline
40
#12

По поводу deny all. НЕТ!

У меня есть 2 файла, 1.php и 2.php

на 1.php, есть поиск ajax. Тоесть пользователь вводит запрос в инпут, и этот запрос отпарвляется аяксом на 2.php где обрабатывается и возвращает результаты на 1.php, где они выводятся.

Если я в папку с 2.php кладу htaccess с deny all. То поиск на 1.php перестает работать и в ручную я тоже не могу подключиться к 2.php

А мне нужно чтобы вручную я не мог подключиться, а поиск работал (тоесть скрипты работали, а через браузер нет)

---------- Добавлено 01.05.2012 в 21:10 ----------

Unicode:
сделайте ключ безопасности script.php?name=1&key=2093673047teg3634y9e
и еще добавьте ограничение по IP либо другим параметрам

Не понял, и что с этим ключом делать. Если он генерируется в первом файле и отправляется во второй то с чем его сравнивать во втором файле?

Или вы имеете введу сделать постоянный ключ, отправлять постом и проверять его во втором файле? Впринципе в таком случае можно будет взломать только если знаешь этот ключ

SI
На сайте с 03.12.2007
Offline
130
#13

HTTP протокол текстовый. Любой запрос можно подсмотреть, записать и повторить. Невозможно определить запрос из браузера или его в консоли через Netcat набрали.

-= Онлайн сервисы =-
I
На сайте с 23.12.2010
Offline
25
#14
Qest:

Не понял, и что с этим ключом делать. Если он генерируется в первом файле и отправляется во второй то с чем его сравнивать во втором файле?

Или вы имеете введу сделать постоянный ключ, отправлять постом и проверять его во втором файле? Впринципе в таком случае можно будет взломать только если знаешь этот ключ

почитайте про сессии.

коротко - при открытии первой страницы генерится достаточно большое случайное число которое

а) сохраняется в куку на клиенте (в броузере)

б) сохраняется на сервере в базе/файле

при вызове второй страницы ваш скрипт берет переданную броузером куку и ищет ее в базе/файле. если находит - предполагается что запрос пришел с первой страницы.

Qest
На сайте с 21.10.2010
Offline
40
#15
iopiop:
почитайте про сессии.
коротко - при открытии первой страницы генерится достаточно большое случайное число которое
а) сохраняется в куку на клиенте (в броузере)
б) сохраняется на сервере в базе/файле
при вызове второй страницы ваш скрипт берет переданную броузером куку и ищет ее в базе/файле. если находит - предполагается что запрос пришел с первой страницы.

Вы не поверите, но я знаю что такое сессии. Ваш способ будет работать если каждый раз при открытии страницы генерировать новую сессию, делать запрос к базе, плюс во втором файлу так же делать запрос к базе (что не есть быстро), к тому же в сессии ограничение на 20 минут, и если пользователь потусуется на первой странице больше 20 минут то сессия удалиться, и что сравнивать во втором файле в таком случае? И вообще при чем тут сессии. Можно уж тогда просто генерировать уникальную строку и записывать ее в куку и базу при входе на первую страницу.

Можно сделать вариант с ключем, если придумать алгоритм по которому он генерируется и сравнивается в втором файле. Тоесть например в первом файле генерируется ключ как сегодняшнее число + 12345 и передается во второй файл, где так же по такому же алгоритму создается ключ и сравнивается с переданным.

Qest
На сайте с 21.10.2010
Offline
40
#16

UPD: Можно прописать htaccess таким образом:

---

SetEnvIf Referer "http://mysite.com/1.php" site

<FILES 2.php>

order deny,allow

deny from all

allow from env=site

</FILES>

---

И положить в папку с 2.php

В таком случае доступ к 2.php будет только у скриптов со страницы 1.php

Полагаю это наиболее простой вариант.

DV
На сайте с 01.05.2010
Offline
644
#17

Вынесите второй файл вообще из из директории пользователя сервера. Сам не пробовал, вы можете попробовать.

VDS хостинг ( http://clck.ru/0u97l ) Нет нерешаемых задач ( https://searchengines.guru/ru/forum/806725 ) | Перенос сайтов на Drupal 7 с любых CMS. ( https://searchengines.guru/ru/forum/531842/page6#comment_10504844 )
Qest
На сайте с 21.10.2010
Offline
40
#18
DenisVS:
Вынесите второй файл вообще из из директории пользователя сервера. Сам не пробовал, вы можете попробовать.

Да, я про такое читал, но в моем случае запрос ко второму файлу делается аяксом, тоесть JS, а так как JS это не серверный язык то мне кажется нельзя прописать в JS путь который за пределами корня. Во всяком случае я не знаю как.

I
На сайте с 23.12.2010
Offline
25
#19
Qest:
Вы не поверите, но я знаю что такое сессии. Ваш способ будет работать если каждый раз при открытии страницы генерировать новую сессию, делать запрос к базе, плюс во втором файлу так же делать запрос к базе (что не есть быстро), к тому же в сессии ограничение на 20 минут, и если пользователь потусуется на первой странице больше 20 минут то сессия удалиться, и что сравнивать во втором файле в таком случае? И вообще при чем тут сессии. Можно уж тогда просто генерировать уникальную строку и записывать ее в куку и базу при входе на первую страницу.

про сессии рекомендовано почитать т.к. они работают так, как я описал - через куки.

Qest:

Можно сделать вариант с ключем, если придумать алгоритм по которому он генерируется и сравнивается в втором файле. Тоесть например в первом файле генерируется ключ как сегодняшнее число + 12345 и передается во второй файл, где так же по такому же алгоритму создается ключ и сравнивается с переданным.

дата для этих целей не подойдет.

---------- Добавлено 01.05.2012 в 23:31 ----------

Qest:
UPD: Можно прописать htaccess таким образом:
---
SetEnvIf Referer "http://mysite.com/1.php" site

как вам уже сказали - реферер снифится и подделывается на ура.

Qest
На сайте с 21.10.2010
Offline
40
#20

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

?

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий