2012-10-30 11 views
6

Potrzebuję sposobu na przekazanie zmiennej między dwiema stronami w bezpieczny sposób.Najbezpieczniejszy sposób przekazywania zmiennych między dwiema stronami za pomocą PHP

wiem, że mogę użyć pola POST/GET/Cookie/sesji lub ukryte, ale myślę, że żaden z tych sposobów nie są wystarczająco bezpieczne, ponieważ:

get widać w url
cookie jest po stronie klienta, więc może to być zmiana klient
sesji mogą zmierzyć Session ID porwanie i ...

teraz chcę wiedzieć, czy jest inny niż tych sposobów lepszych sposobów, a jeśli nie jest czarownicą z nich jest najlepszy sposób przekazywania zmiennych w bezpieczny sposób;

+7

Sesje. Jeśli im nie ufasz, to myślę, że nie masz opcji. – Crontab

+1

Sesje są Twoim przyjacielem na php (po stronie serwera)/alternatywa zajrzyj do magazynu HTML html http://www.w3schools.com/html/html5_webstorage.asp – donald123

+2

Zdecydowanie sesje. Zainteresowane czytaj: http://cleverlogic.net/tutorials/session-hijacking-0. – alexn

Odpowiedz

10

Sesja jest najbezpieczniejszą dostępną metodą.

Regeneracja identyfikatorów sesji pomoże zapobiegać przejmowaniu sesji, ale protokół SSL za pośrednictwem protokołu HTTPS naprawdę będzie chronił przed nią.

BTW: Jeśli sesja zostanie przejęta i wyświetlasz dane użytkownika klientowi, nie ma znaczenia, w jaki sposób dostałeś dane na drugą stronę, porywacz ją zobaczy. Jeśli używasz go tylko po stronie serwera, porywacz go nie zobaczy.

+0

Identyfikator sesji regeneracji może być pomocny w zapobieganiu podsłuchom tylko w przypadku, gdy sekcja po zalogowaniu uruchamia TLS. Jeśli zregenerowany identyfikator zostanie skopiowany z lokalizacji przeglądarki, a następnie odtworzony w innej przeglądarce, zakładam, że logowanie będzie się nadal odbywać niezależnie od TLS lub nie. Czy mam rację? –

3

Przekazywanie wartości zmiennych między stronami z wykorzystaniem sesji jest najbardziej bezpieczny

i zregenerować identyfikatora sesji przez session_regenerate_id każdej zmianie poziomu zabezpieczeń (takich jak zalogowaniu). Możesz nawet zregenerować identyfikator sesji każdego żądania, jeśli chcesz.

dobre Przeczytaj

PHP Security Guide: Sessions

0

Nie ma nic złego w używaniu GET - tak długo, jak są one odkażane prawidłowo ... zawsze można połączyć się z mieszania parametrów, aby zmniejszyć ryzyko jej manipulowanie przy użyciu sesji, aby upewnić się, że są one legalne.

1

ponieważ sesja jest po stronie serwera, jego najbardziej bezpieczny sposób przekazać zmienne i zapobiec przechwycenia sesji można użyć funkcji session_regenerate_id w php instrukcję: http://php.net/manual/en/function.session-regenerate-id.php

ale to nie oznacza, że ​​zawsze używać sesje do przekazywania zmiennych nadal możesz używać plików cookie, ale szyfrować dane przed ich zapisaniem w ciasteczkach.

Powiązane problemy