• Уменьшение отступа

    Обратная связь

    (info@ru-sfera.pw)

Как передать скрипту куку с другого компьютера?


Lyudmila

Уважаемый пользователь
Форумчанин
Регистрация
12.03.2014
Сообщения
150
Репутация
205
Здравствуйте, всем!
Если кто знает алгоритм решения задачи "Как передать скрипту куки с другого компьютера?",
пропишите, пожалуйста, последовательность действий, то бишь - АЛГОРИТМ.
Как правильно поставить задачу?
Или, ссылочку, где это уже прописано, если можно!
Если привязываться к языку программирования то лучше к PHP.
Заранее благодарю.
 

X-Shar

:)
Администрация
Регистрация
03.06.2012
Сообщения
6 068
Репутация
8 174
Людмила, не очень понимаю вопрос, что нужно ?

Если нужно просто работать с куками в пхп, то тут всё очень просто…

Но рассмотрим в начале теорию:

Cookies –Это небольшие текстовые файлики, которые сохраняются на компьютер пользователя при посещении сайта, в этих фалах сохраняется обычно настройки, сессия которая позволяет идентифицировать пользователя, например здесь на форуме благодаря кукам не приходится каждый раз вводить пароль при переходе из темы в тему и т.д.

После того, как Cookies устанавливаются на веб-сайт, все последующие запросы страницы этого же сайта будет также включать Cookies до истечения срока действия куков. Другие веб-сайты не могут получить доступ к кукам установленым на вашем сайте, и наоборот, так что, вопреки распространенному мнению, они относительно безопасные места для хранения личной информации. Cookies и сами по себе не способны причинить ущерба для конфиденциальности пользователя.

НЕОБХОДИМО ОБРАТИТЬ ТАКЖЕ ВНИМАНИЕ, ЧТО СУЩЕСТВУЮТ ТАК НАЗЫВАЕМЫЕ XSS-АТАКИ НА САЙТЫ, КОТОРЫЕ ПОЗВОЛЯЮТ КРАСТЬ КУКИ ПОЛЬЗОВАТЕЛЕЙ, ПУТЁМ ФОРМИРОВАНИЯ СПЕЦИАЛЬНОЙ ССЫЛКИ НА УЯЗВИМЫЙ САЙТ, СУЩЕСТВУЮТ ДАЖЕ ГОТОВЫЕ СПЕЦИАЛЬНЫЕ СКРИПТЫ, КОТОРЫЕ ПОЗВОЛЯЮТ ЭКСПЛУАТИРОВАТЬ ТАКИЕ УЯЗВИМОСТИ, Т.Е. ЗАЛИВАЕМ ЭКСПЛОИТ НА СВОЙ ХОСТИН, ДАЛЕЕ ФОРМИРУЕМ СПЕЦИАЛЬНУЮ ССЫЛКУ НА УЯЗВИМЫЙ САЙТ И ТЫРИМ КУКИ ! ;)

Существует много способов защиты, самые простые – это привязывать сессию к айпишнику пользователей, фильтрация специальных символов на уровне сервера, на уровне скрипта, заголовок httponly и т.д.

Теперь по теме:

Итак расмотрим как генерируются куки
Веб-браузер запрашивает URL, который соответствует сценарию PHP. В рамках этого сценария выполняется SetCookie-функция, которая встроена в PHP.

На странице исполняется сценарий PHP и отправляется обратно в браузер, с HTTP Set-Cookie заголовком, который содержит имя (например, MyCookie) и значение.

Когда он получает этот заголовок HTTP, браузер создает и сохраняет заданное значение, как Cookies с именем MyCookie.

После получения запроса страницы с заголовком кукисов, PHP автоматически создает запись в массиве $_COOKIE с именем куки ($_COOKIE ['MyCookie']) и его значение.

Другими словами, функция PHP SetCookie позволяет установить переменную, которая будет автоматически установлено на последующие запросы страницы с того же браузера. Прежде чем мы рассмотрим конкретный пример, давайте внимательно посмотрим на SetCookie функцию:
Код:
setcookie(name[, value[, expiryTime[, path[, domain[, secure[,httpOnly]]]]]])

Единственным обязательным параметром для этой функции является имя, которое определяет название куки. Значение параметра позволяет создавать новые куки, или изменить значение, хранящееся в существующием кукисе.

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

Если вы хотите куки сохранялсь после завершения текущего сеанса браузера, вы должны установить expiryTime параметр, чтобы указать количество секунд с 1 января 1970 г. до времени, в котором вы хотите чтобы куки были удалены автоматически.

Текущее время в этом формате можно получить, используя функцию PHP time. Таким образом, у куки может быть срок действия которого истекает в течение одного часа, например, путем установки expiryTime time() + 3600.

Рассмотрим два примера на практике:

1)

Код:
// Срок действия куки истекает через год
setcookie('mycookie', 'somevalue', time() + 3600 * 24 * 365);
// Удаляем их
setcookie('mycookie', '', time() – 3600 * 24 * 365);

2) Давайте теперь посмотрим на примере куки в использовании. Представьте, что вы хотите, чтобы отображалось специальное приветствие для людей которые впервые посетили ваш сайт. Вы можете использовать куки, чтобы подсчитать, сколько раз пользователь был на вашем сайте прежде, и отображать только сообщения, когда куки не был установлен.

Вот код:

Код:
if (!isset($_COOKIE['visits']))
	{
	$_COOKIE['visits'] = 0;
	}
	$visits = $_COOKIE['visits'] + 1;
	setcookie('visits', $visits, time() + 3600 * 24 * 365);
	include 'welcome.html.php';

Этот код начинается с проверки, если $_COOKIE ['visites'] установлено. Если это не так, то значит, что visits куки еще предстоит установить в браузер пользователя. Чтобы справиться с этим, положим $_COOKIE ['visits'] = 0.Остальная часть нашего кода можно смело предположить, что $_COOKIE ['visits'] содержит число предыдущих визитов пользователя.

Далее, чтобы отработать номер этого визита, мы берем $_COOKIE ['visits'] и добавляем значение 1. Эта переменная $visits, будет использованна нашим PHP шаблоном.

Наконец, мы используем SetCookie чтобы установить посещение куки, чтобы отразить новое число посещений. Мы установили это куки которое истекает в течение одного года.

При всей проделанной работе, наш контроллер включает в себя шаблоны PHP welcome.html.php:

Код:
<?php include_once $_SERVER['DOCUMENT_ROOT'] .
'/includes/helpers.inc.php'; ?>
<!DOCTYPE html>
<html lang="en">
	<head>
	<meta charset="utf-8">
	<title>Установка кукисов</title>
</head>
<body>
	<p>
		<?php
		if ($visits > 1)
		{
			echo "вы посетли наш сайт $visits. раз";
		}
		else
		{
			// Первый визит
			echo 'Добро пожаловать на мой сайт!';
		}
		?>
	</p>
</body>
</html>
 

Lyudmila

Уважаемый пользователь
Форумчанин
Регистрация
12.03.2014
Сообщения
150
Репутация
205
А-А-ААААГРОМ-М-М-НОЕ СПАСИБО!
Да-да именно это! Спасибо!
X-Shar, совершенно замечательный ответ после которого Йя-я-я немного стала заикаться, -поскольку мне все это теперь надо осознать!
 

Lyudmila

Уважаемый пользователь
Форумчанин
Регистрация
12.03.2014
Сообщения
150
Репутация
205
X-Shar сказал: НЕОБХОДИМО ОБРАТИТЬ ТАКЖЕ ВНИМАНИЕ, ЧТО СУЩЕСТВУЮТ ТАК НАЗЫВАЕМЫЕ XSS-АТАКИ НА САЙТЫ, КОТОРЫЕ ПОЗВОЛЯЮТ КРАСТЬ КУКИ ПОЛЬЗОВАТЕЛЕЙ, ПУТЁМ ФОРМИРОВАНИЯ СПЕЦИАЛЬНОЙ ССЫЛКИ НА УЯЗВИМЫЙ САЙТ...
Вот мне все это надо в целях организации защиты сайта.
На данном этапе, главное понять, как это работает, и как пробиваются сайты из-вне.
Мне надо защититься от взлома.
 

Lyudmila

Уважаемый пользователь
Форумчанин
Регистрация
12.03.2014
Сообщения
150
Репутация
205
При создании системы авторизации/регистрации необходимо снизить вероятность подмены данных и получения авторизированного доступа к разрабатываемому мною сайта.
Где-то так... Но я пока в этом вопросе нулевая...
Пока так. Мой плот, хоть и потихонечку, но строится.
Спасибо огромное!
 

Lyudmila

Уважаемый пользователь
Форумчанин
Регистрация
12.03.2014
Сообщения
150
Репутация
205
Вот еще тоже момент, который напрямую относится к этому вопросу: подмена данных может происходить путем посылки данных скрипту через заголовки посредством сокетов и header() . Но для меня это пока темный лес. Но... и это тоже надо будет как-то осознать.
 

X-Shar

:)
Администрация
Регистрация
03.06.2012
Сообщения
6 068
Репутация
8 174
А вообще защита от XSS & SQL injection может строится по разному, можно на уровне сервера, можно на уровне скрипта, но лучше комплексно, например так:
Что-бы не разводить писанину, вот ссылка:

А вообще в сети много инфы, запросы: "Защита от XSS", "Защита от sql инъекций" !

Про куки тоже запрос:"Работа с cookies в php".
 

Lyudmila

Уважаемый пользователь
Форумчанин
Регистрация
12.03.2014
Сообщения
150
Репутация
205
А вообще защита от XSS & SQL injection может строится по разному, можно на уровне сервера, можно на уровне скрипта, но лучше комплексно, например так:
Что-бы не разводить писанину, вот ссылка:

А вообще в сети много инфы, запросы: "Защита от XSS", "Защита от sql инъекций" !

Про куки тоже запрос:"Работа с cookies в php".

Спасибо!
 
Верх Низ