Ciasteczka szyfrowane?

Odpowiedz Nowy wątek
2019-04-02 22:49

Rejestracja: 1 rok temu

Ostatnio: 2 tygodnie temu

0

Witam,

Potrzebuję w ciasteczkach przechowywać adres ip oraz wersję przeglądarki mam pytanie odnośnie szyfrowania ciasteczek
Czy zwykła funkcja hash do takiej potrzeby wystarczy?

Może jakieś inne pomysły ?
Jakieś porady etc.?

Pozdrawiam.

Pozostało 580 znaków

2019-04-02 23:01

Rejestracja: 6 lat temu

Ostatnio: 6 miesięcy temu

0

Może cuś takiego
Ewentualnie jeszcze base_64_encode()

$cookiename = ...
$ipaddr = ...
$vbrowser = ...

$salt="somestring";
$ip_hash= SHA2(salt + $ipaddr);
$vbrowser_hash= SHA2(dalt + $vbrowser);
setCookie($cookiename,$ip_hash,$vbrowser_hash);
edytowany 1x, ostatnio: au7h, 2019-04-02 23:02

Pozostało 580 znaków

2019-04-03 00:38

Rejestracja: 8 lat temu

Ostatnio: 7 godzin temu

Lokalizacja: Grudziądz/Bydgoszcz

1

a czemu w ciasteczkach? Nie możesz wykorzystać sesji i po stronie serwera trzymać ip i przeglądarkę identyfikując po id sesji?

Pozostało 580 znaków

2019-04-03 07:57
Moderator

Rejestracja: 12 lat temu

Ostatnio: 5 godzin temu

Lokalizacja: Wrocław

0

Chcesz je szyfrować czy hashować?
No i przede wszystkim, jak zauważył @mr_jaro: dlaczego w ogóle chcesz trzymać te dane w ciasteczkach?


edytowany 1x, ostatnio: Patryk27, 2019-04-03 07:57

Pozostało 580 znaków

2019-04-03 14:27

Rejestracja: 1 rok temu

Ostatnio: 2 tygodnie temu

0

Jest mi to potrzebne ponieważ potrzebuję zrobić również odliczanie...

Chciałbym je szyfrowac

Pozostało 580 znaków

2019-04-03 14:30
Moderator

Rejestracja: 12 lat temu

Ostatnio: 5 godzin temu

Lokalizacja: Wrocław

0

Wydaje mi się, że mamy do czynienia z problemem X/Y - jakie odliczanie potrzebujesz zrobić?


Pozostało 580 znaków

2019-04-03 15:15

Rejestracja: 1 rok temu

Ostatnio: 2 tygodnie temu

0

Odliczanie zrobię sam, to odstawiamy.

Potrzebuję wiedzieć co mam rozumieć przez słowo szyfrować ciasteczka.
Jak tego dokonać oraz jaka metoda będzie dla tego najlepsza?

Pozostało 580 znaków

2019-04-03 15:27

Rejestracja: 2 lata temu

Ostatnio: 1 tydzień temu

0

najprościej to rot13, dla bezpieczeństwa możesz zrobić rot13(rot13(content))
ale pozostaje pytanie - dlaczego?
jak chcesz zrobić odliczanie czegokolwiek na serwerze, gdzie serwer co jakiś czas wysyła trigger do klienta, to może prościej użyć websocketów?

edytowany 1x, ostatnio: iksde, 2019-04-03 15:29

Pozostało 580 znaków

2019-04-04 07:43

Rejestracja: 10 lat temu

Ostatnio: 6 godzin temu

Lokalizacja: Krasnystaw

0

Jeśli to ma być jakieś odliczanie w stylu Codility, z zapamiętywaniem i uwzględnianiem zamknięcia przeglądarki to może i tak. Ale można dość łatwo wpaść na to że coś jest szyfrowane rot13, do takich rzeczy po stronie serwera to jest albo mcrypt_encrypt i mcrypt_decrypt (i już deprecated w PHP 7.1):
https://www.php.net/manual/en/function.mcrypt-encrypt.php
albo też openssl_encrypt / openssl_decrypt:
https://www.php.net/openssl_encrypt

Ale dalej. Chcąc zapisać user agent albo samą wersję przeglądarki oraz IP klienta czyli to co jest w $_SERVER['HTTP_USER_AGENT'] oraz $_SERVER['REMOTE_ADDR'] to jeżeli to jest jakaś tablica asocjacyjna w PHP to bez szyfrowania serializujesz tablicę a potem przez kodowanie transportowe base64_encode zapisujesz do cookie a przy odczycie robisz na odwrót. Przy użyciu mcrypt czy openssl tak samo masz base64 co jest pokazane pod linkami wyżej.

Natomiast co do hashowania typu SHA1, SHA2 jest dość ciekawy mechanizm tzw. signed cookie czyli z użyciem tajnego klucza (soli) robisz hash_hmac, czyli hash z user agent, nazwy ciasteczka, wartości do zapisu złączonych razem i tajnej soli, następnie dopisujesz to z separatorem do tego co ma być zapisane w cookie.
https://github.com/koseven/ko[...]tem/classes/Kohana/Cookie.php

Powyższe rozwiązanie stosowane możliwe że i w innych frameworkach ma na celu kontrolę integralności bo każda próba ręcznej modyfikacji wartości ciasteczka (w FF składowane w SQLite) albo inna nazwa ciasteczka, inny user agent i pomijając już możliwość kolizji SHA1 jako bardzo mało prawdopodobne, to system powinien ze względu na stwierdzenie niezgodności hashy takie ciasteczko odrzucić.

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0