Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Куки сайта

Здраствуйте.
Пытаюсь реализовать авторизацию на сайте,для авторизации нужны куки.
Что нужно реализовать:
1 - Захожу на сайт получаю,сохраняю куки
2 - Снова захожу на сайт с сохраненными куками

Вот попытка:
C#
1
2
3
4
5
6
7
CookieContainer cookies = new CookieContainer();
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://site");
            request.CookieContainer = cookies;
            WebResponse resp=request.GetResponse();
            Stream stream = resp.GetResponseStream();
            StreamReader sr = new StreamReader(stream);
            string html = sr.ReadToEnd();
Насколько я понимаю тут я использую куки которые в cookies а как занести их в cookies
Ответ: Nice-crazy, да
Вопрос: Програмно нажать кнопки на сайте

На сайте есть кнопки для выполнения задания. Нужно нажать 6 кнопок чтобы отправить запрос. Как это можно сделать программно ? За нажатие каждой кнопки добавляется +1 к кукам. Сайт takefriend.ru/ru/etc/vk.
Ответ: На сайте проверяется откуда идет запрос, если не с сайта, то идет перенаправление. Это как-то обойти можно ?
Вопрос: Куки Включено или выключено

Всем привет. Недавно возникла проблема с куками
А тоесть.
Человек заходит на сайт а у него куки не включены. Обидно. Надо, что бы работали.
(опустим вопрос для чего)

Форумчанин помоги мне.

Как реализовать проверку куков на сайте.
Если включены то действий не требуется, если выключены, то попросить включить.



К слову

Код PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
   if(empty($_GET["cookie"]));
  {
   
    header("Location: $_SERVER[PHP_SELF]?cookie=1");
    
    setcookie("test","1"); 
  }
 
  {
    if(empty($_COOKIE["test"]));
    {
      echo("Ж’л€ корректной работы приложени€ необходимо включить cookies");
    }
    else
    {
      // cookie включены, переходим на нужную страницу:
      header("Location: http://localhost/");
      // здесь посылаетс€ заголовок, содержащий адрес нужной страницы
    }
  }
?>
После этой таблетки браузер ругается и говорит
что слишком много запросов. (проверял на ЯндексБраузере) и также, давайте спор какой браузер лучше хуже давайте тоже спор опустим.

Заранее спасибо
Ответ:
Сообщение от BOPOH
Как реализовать проверку куков на сайте.
При первом заходе куку не проверишь, если ее нет. Но можно ставить и проверять на наличие
Код PHP
1
2
3
if (!isset($_COOKIE['sookie'])) {
setcookie ("sookie", 'on' ,time()+ 3600*25 ,'/');
}
Если уж так необходимо точно убедиться, что куки включены - делай перезагрузку страницы, когда куки нет... разные варианты есть... делай по необходимости.
Вопрос: Получить httponly куки

Здравствуйте, прошу помочь. Не могу получить все необходимые куки для авторизации, так как они httponly. Нашел пример кода, как их получить. Но не могу понять его и как с ним работать. Куда там в коде вписать адрес сайта, по которому нужно получить куки. И где указать контейнер webbrowser, где хранятся эти куки. Я через webbrowser автризуюсь на сайте, и потом через запросы парсю сайт.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
[DllImport("wininet.dll", SetLastError = true)]
    public static extern bool InternetGetCookieEx(
        string url, 
        string cookieName, 
        StringBuilder cookieData, 
        ref int size,
        Int32  dwFlags,
        IntPtr  lpReserved);
 
    private const Int32 InternetCookieHttponly = 0x2000;
 
/// <summary>
/// Gets the URI cookie container.
/// </summary>
/// <param name="uri">The URI.</param>
/// <returns></returns>
public static CookieContainer GetUriCookieContainer(Uri uri)
{
    CookieContainer cookies = null;
    // Determine the size of the cookie
    int datasize = 8192 * 16;
    StringBuilder cookieData = new StringBuilder(datasize);
    if (!InternetGetCookieEx(uri.ToString(), null, cookieData, ref datasize, InternetCookieHttponly, IntPtr.Zero))
    {
        if (datasize < 0)
            return null;
        // Allocate stringbuilder large enough to hold the cookie
        cookieData = new StringBuilder(datasize);
        if (!InternetGetCookieEx(
            uri.ToString(),
            null, cookieData, 
            ref datasize, 
            InternetCookieHttponly, 
            IntPtr.Zero))
            return null;
    }
    if (cookieData.Length > 0)
    {
        cookies = new CookieContainer();
        cookies.SetCookies(uri, cookieData.ToString().Replace(';', ','));
    }
    return cookies;
}
Ответ: OwenGlendower,
Вот так тогда решил передавать полученный контейнер из формы2 в форму1. В форме2 создал метод возвращающий куки контейнер.
C#
1
2
3
4
5
6
7
8
 public CookieContainer kont()
        {
            {
            Uri site = new Uri("http://траляля");
            BrCookie = GetUriCookieContainer(site);
            }
            return BrCookie;
        }

получаю контейнер в форме1, с нужными (httponly) куки. Спасибо!
Вопрос: Странное повидение корзины на сайте.

Добрый вечер. Такая ситуация. Есть интернет-магазин написанный на asp.net 4 web forms
Товары добавляются в корзину с помощью аякс и вебмотод. После добавления с помощью аякс и вебметод сайт получает информацию о корзине. Все работает нормально. Добавил-получил обновленные данные. Иногда, когда открываем страницу корзины, товаров просто нет. Куда они пропадают, не ясно. В качестве уникально идентификатора используется куки файл.
Если нужно могу показать часть кода.
Ответ:
Sergey_net
Из-за проблемы начал использовать куки файл, сроком 6 часов. Я так понимаю, если сессия даже завершается, то куки файл все таки остается.

в вашем коде при старте новой сессии кука будет перезаписана и старая корзина - потеряется

Sergey_net
Изопропил,

что посоветуйте добавлять куки непосредственно из страницы(мастер страница)?

не получили нужную куку от клиента - создаём новую корзину.
expires всегда выставлять заново при каждом обращении - иначе рано или поздно броузер прибьёт куку
Вопрос: ASP.NET MVC При работе с сайтом часто слетает авторизация (Identity 2.0)

Всем привет!

С некоторого времени заметил, что стала часто слетать авторизация.

Т.е. пользователь открывает сайт, логинится, после этого открывает свой личный кабинет, начинает там работать.
И через пару кликов авторизация почему-то слетает, и чтобы зайти в личный кабинет, надо снова логиниться.

Подскажите, в какую сторону копать?

Авторизация - стандартная, на Identity 2.0, ASP.NET MVC 5.
Ответ:
Glass
Скорее всего, дело в том, что при кука протухает при переходе на блог.
Возможно, из-за того, что Wordpress отдает другие куки, а эту (асп-шную) не отдает.
Точный момент протухания пока не могу отловить, ковыряясь в HTTP Headers.

Кука не протухает, если на месте и с тем же значением. Что-то в механизме аутентификации зарыто. Возможность сессия старая убивается, а на место старой создается новая при открытии blog. А аутентификационная кука создается на основании первой открытой сессии. Соответственно, значение в куки не меняется, а аутентификация не распознает более старый токен, ожидая, что токен должен быть уже на основании новой сессии. Это предположение только, потому что мне кажется, что токен в куки в данном случае не должен привязываться к сессии как это делается при создании AntiForgery куки.
Вопрос: Куки - хранение на сервере

Привет.
Задумался о вопросах безопасности хранения куков.
Пример: при обращении к яндексу он пишет в браузер куки сроком на 10 лет! Стало быть записанные куки и сопутствующие данные яндекс видимо записывает у себя на серверах. Может это СУБД может еще что. По логике вещей куки пользователя нужно хранить у себя на сервере где-то.
Предствим что яндекс таки хранит эти куки у себя в СУБД в том же самом PostgreSQL.
Каждый новый юзер - новая запись в БД.
Я могу вручную удалить куки из своего браузера и опять таки яндексу придется записать новые куки в мой браузер и записать новые значения в БД.
Я думаю не составит большого труда написать простеньку прогу, которая будет постоянно обращаться к сайту, получать куки, дропать их и так далее по кругу. В итоге в БД мы постоянно будем писать все новые и новые данные. Не является ли это угрозой переполнения БД? Конечно яндексу может быть это и не грозит, но если для проекта использовать дешовый хостинг с ограниченными ресурсами, то мне кажется это представляет вполне реальную угрозу. Или я не прав и глубоко заблуждаюсь?
Ответ:
abrasum писал(а):Стало быть записанные куки и сопутствующие данные яндекс видимо записывает у себя на серверах. Может это СУБД может еще что. По логике веще куки пользователя нужно хранить у себя на сервере где-то.

Нет. Это ответ на каждый приведенный домысел. Куки на то и куки, чтобы лежать у клиента. Который может их стереть. А может вообще не принимать. Это, заодно, решение всех твоих проблем с переполнением.
Вопрос: Identity 2.21 asp.net 4 время жизни куков и сессии

Привет всем!
Использую Identity 2.21, asp.net mvc 6, framework 4.5
Задача состоит в том, что когда пользователь авторизируется на сайте и случайно закрывает браузер или вкладку, то запустив браузер повторно, он все еще аворизиован на сайте.
подскажите как по закрытию браузера или вкладки сбрасывать куки и ссесию, чтобы он за ново входил на сайт?
Ответ:
Axeleron
yardie, надо смотреть в сторону настроек куки сессии. Если при закрытия браузера пользователь автоматически не отлогинивается, означает что куки персистентная (Persistent Cookie) и задается этот тип путем установки значения ExpiryDate датой в определенный момент будущего (дни, месяцы, года вперед по отнощению к сегодняшней дате).


Хрому покласть на (не) персистентность.

как варианты решения: серверная сессия и периодический пинг со стороны клиента, или удержание коннекта на SignalR для продления жизни сессии. На куках задачу в общем случае не решить.
Вопрос: Куки на субдоменах

Гуру, помогите пожалуйста!

Либо не допонял теорию, либо кривые руки...

Создал в OpenServer домен для отладки "www.aaa.com".

Записываю куку (пишу авторизацию) на сайте "aaa.com" - все работает, но на сайте "www.aaa.com" - уже не работает...

Проверяю через
PHP
1
echo 'COOKIE:<pre>'; print_r($_COOKIE); echo '</pre>';
На www. кука не появляется в списке, но без www. кука есть!
Ответ: Спасибо... буду проверять! Не уверен, но кажется того-же эффекта добивался пустой строкой вместо домена... теперь предстоят тесты (проект вырос и установка куков окружена уже кучей "мусора" - тяжело поймать "почему не всегда ставит куку")
Вопрос: Запоминание выбора пользователем стиля оформления страниц сайта

Всем доброго времени суток. Пожалуйста подскажите решение проблемы, а то вся работа стоит из-за нее((

Задача:
В меню сайта имеется две кнопки (white , black). Нужно, чтобы при нажатии на каждую, скачивалась и ставилась соответствующая таблица стилей.
Мое решение:
Сделал через сессии (код ниже)
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    <?
         // открываем сессию
         session_start();
         // задаём значение переменной
         $_SESSION['w'] = $_POST['white'];
         $_SESSION['b'] = $_POST['black'];
         
          if (isset($_SESSION['w'])){
            $_SESSION['st']="css/base.css";
            $_SESSION['w']=true;
            echo '<meta http-equiv="refresh" content="0; url="">';
         }
          if (isset($_SESSION['b'])){
            $_SESSION['st']="css/base_black.css";
            $_SESSION['b']=true;
            echo '<meta http-equiv="refresh" content="0; url="">';
         }
    ?>
и на странице как:
CSS
1
<link rel="stylesheet" type="text/css" href=<?=$_SESSION['st'];?>> 
Проблема:
Меняется стиль на всех страницах, как я и хотел. Но сбивается на дефолтный, если перезагрузить браузер. Хотелось бы чтобы "сайт" запоминал выбор пользователя. Я так понял, надо это сделать не через сессии, а через куки. Или через сессии+куки. Но в php я совсем недавно, и уже порядка 20 часов за два дня, я не могу решить свою проблему.

В общем. Нужно чтобы сайт менял стиль при нажатии на кнопку, и запоминал этот выбор (в куки). Буду рад любой помощи
Ответ: Jodah, ну вот как-то не получилось( У меня 3 файла стиля, поэтому 3 куки. Не знаю как компактней(