Pliki cookie 3.0

Opublikowano 28 marca 2023 r. & dash; 8 minut czytania

Implementacja referencyjna Rust została wydana, będzie w pełni obsługiwać najnowsze dodatki do specyfikacji

Specyfikacja plików cookie i ekosystem biblioteki

Biscuit jest publikowany jako specyfikacja z kilkoma implementacjami. Wśród nich implementacją referencyjną jest rdza biszkoptowa. Jest używany podczas programowania w rdzy, ale obsługuje również biscuit-wasm, który obsługuje aplikacje javascript (zarówno po stronie klienta, jak i serwera) oraz komponenty biscuit-web, które zapewniają interaktywne narzędzia w przeglądarce.

Pliki cookie v3

Z powodu zawieszeń innych firm opublikowano nową wersję specyfikacji. Oprócz blokad stron trzecich w nowej wersji uwzględniono kilka innych zmian.

wsparcie, aby sprawdzić wszystko obsługa operatorów bitowych wsparcie dla != obsługa migawek autoryzacji Słowo o wersjach plików cookie

Obecnie obsługiwane wersje plików cookie to v2 i v3. Obie wersje są kompatybilne, a wersja 3 jest opcjonalna: jeśli nie użyjesz żadnej nowej funkcji plików cookie w wersji 3, wygenerowane tokeny będą działać z implementacjami obsługującymi tylko pliki cookie w wersji 2. Oczywiście pliki cookie w wersji 2 są nadal obsługiwane przez nowe implementacje. Możliwe jest nawet złagodzenie pliku cookie w wersji 2 za pomocą funkcji w wersji 3.

cookie-rust v3.0.0

Ostatnią stabilną wersją biscuit-rust była wersja 2.2.0, wydana dziesięć miesięcy temu. Podczas gdy obsługa blokad innych firm i innych funkcji v3 stanowi większość zmian, sama biblioteka została ulepszona. Największym ulepszeniem byłyby makra dziennika danych (wprowadzone w wersji 2.2.0), które teraz obejmują wszystkie przypadki użycia w potężny sposób.

Blokady stron trzecich

Bloki innych firm umożliwiają autoryzację w wielu domenach ze szczegółowymi regułami dostępu. To ekscytujące osiągnięcie, ponieważ umożliwia rozproszone modele uwierzytelniania bez konieczności synchronizacji poza pasmem: wszystkie wymagane informacje mogą być przenoszone w jednym tokenie cookie.

Dowiedz się więcej o poście dotyczącym blokad stron trzecich.

// blok uprawnień wydawany przez usługę logowania. // zezwala tylko na dostęp do odczytu do zasobu `file1` user("dostosowany"); right("plik1", "odczyt"); // robi to `member("fani-pink-floyd"`); musi pochodzić z bloku // podpisany przez sieć społecznościową: jest to wymuszane przez weryfikację klucza publicznego // więc token jest efektywnie obojętny, dopóki nie zostanie powiększony przez // serwis społecznościowy. sprawdź, czy członek („fani-pink-floyd”) ufa ed25519/398ad724c0da3756bb8709a85179a3ff9c34f8ec08317c3d8f79d75db7eab014; // blok zapewniany przez sieć społecznościową // dostarcza dowód, że posiadacz należy do grupy fanów pink-floyd, ale dodaje // czek: dowód jest ważny tylko przez ograniczony czas // ten blok ma podpis, który można zweryfikować w następujący sposób // klucz publiczny: 398ad724c0da3756bb8709a85179a3ff9c34f8ec08317c3d8f79d75db7eab014 Member("Fani Pink-Floyd"); sprawdź, czy czas($czas), $czas < 2022-08-01T00:00; // zasady weryfikacji. zezwól, jeśli w porządku („plik1”, „odczyt”); Makra dziennika danych

Biscuit jest dostarczany z potężnym DSL dla reguł autoryzacji. Częstym problemem związanym z korzystaniem z DSL jest stosowanie wartości dynamicznych w programie osadzonym. Łączenie ciągów znaków otwiera drzwi do nieprzyjemnych problemów z bezpieczeństwem. Niesławnym przykładem tego rodzaju problemu są iniekcje SQL. Innym frustrującym problemem (przynajmniej dla programistów rdzy) jest to, że kiedy wbudowany program jest zdefiniowany w postaci zwykłego ciągu znaków, staje się on nieprzejrzysty, dopóki nie zostanie przeanalizowany w czasie wykonywania. Otrzymujemy więc błędy w czasie wykonywania elementów statycznych w połączeniu z problemami z wydajnością.

biscuit-rust zapewnia rozwiązanie obu tych problemów:

składnia iniekcji parametrów pozwala na wklejanie dynamicznych wartości bez ryzyka iniekcji; seria makr przenosi analizę dziennika danych do czasu kompilacji, zapewniając zarówno gwarancje statyczne, jak i kod o wysokiej wydajności. zostaw user_id = "1234"; niech wygaśnięcie = SystemTime::now() + Duration::from_secs(86400); zostaw mu władzę...

Pliki cookie 3.0

Opublikowano 28 marca 2023 r. & dash; 8 minut czytania

Implementacja referencyjna Rust została wydana, będzie w pełni obsługiwać najnowsze dodatki do specyfikacji

Specyfikacja plików cookie i ekosystem biblioteki

Biscuit jest publikowany jako specyfikacja z kilkoma implementacjami. Wśród nich implementacją referencyjną jest rdza biszkoptowa. Jest używany podczas programowania w rdzy, ale obsługuje również biscuit-wasm, który obsługuje aplikacje javascript (zarówno po stronie klienta, jak i serwera) oraz komponenty biscuit-web, które zapewniają interaktywne narzędzia w przeglądarce.

Pliki cookie v3

Z powodu zawieszeń innych firm opublikowano nową wersję specyfikacji. Oprócz blokad stron trzecich w nowej wersji uwzględniono kilka innych zmian.

wsparcie, aby sprawdzić wszystko obsługa operatorów bitowych wsparcie dla != obsługa migawek autoryzacji Słowo o wersjach plików cookie

Obecnie obsługiwane wersje plików cookie to v2 i v3. Obie wersje są kompatybilne, a wersja 3 jest opcjonalna: jeśli nie użyjesz żadnej nowej funkcji plików cookie w wersji 3, wygenerowane tokeny będą działać z implementacjami obsługującymi tylko pliki cookie w wersji 2. Oczywiście pliki cookie w wersji 2 są nadal obsługiwane przez nowe implementacje. Możliwe jest nawet złagodzenie pliku cookie w wersji 2 za pomocą funkcji w wersji 3.

cookie-rust v3.0.0

Ostatnią stabilną wersją biscuit-rust była wersja 2.2.0, wydana dziesięć miesięcy temu. Podczas gdy obsługa blokad innych firm i innych funkcji v3 stanowi większość zmian, sama biblioteka została ulepszona. Największym ulepszeniem byłyby makra dziennika danych (wprowadzone w wersji 2.2.0), które teraz obejmują wszystkie przypadki użycia w potężny sposób.

Blokady stron trzecich

Bloki innych firm umożliwiają autoryzację w wielu domenach ze szczegółowymi regułami dostępu. To ekscytujące osiągnięcie, ponieważ umożliwia rozproszone modele uwierzytelniania bez konieczności synchronizacji poza pasmem: wszystkie wymagane informacje mogą być przenoszone w jednym tokenie cookie.

Dowiedz się więcej o poście dotyczącym blokad stron trzecich.

// blok uprawnień wydawany przez usługę logowania. // zezwala tylko na dostęp do odczytu do zasobu `file1` user("dostosowany"); right("plik1", "odczyt"); // robi to `member("fani-pink-floyd"`); musi pochodzić z bloku // podpisany przez sieć społecznościową: jest to wymuszane przez weryfikację klucza publicznego // więc token jest efektywnie obojętny, dopóki nie zostanie powiększony przez // serwis społecznościowy. sprawdź, czy członek („fani-pink-floyd”) ufa ed25519/398ad724c0da3756bb8709a85179a3ff9c34f8ec08317c3d8f79d75db7eab014; // blok zapewniany przez sieć społecznościową // dostarcza dowód, że posiadacz należy do grupy fanów pink-floyd, ale dodaje // czek: dowód jest ważny tylko przez ograniczony czas // ten blok ma podpis, który można zweryfikować w następujący sposób // klucz publiczny: 398ad724c0da3756bb8709a85179a3ff9c34f8ec08317c3d8f79d75db7eab014 Member("Fani Pink-Floyd"); sprawdź, czy czas($czas), $czas < 2022-08-01T00:00; // zasady weryfikacji. zezwól, jeśli w porządku („plik1”, „odczyt”); Makra dziennika danych

Biscuit jest dostarczany z potężnym DSL dla reguł autoryzacji. Częstym problemem związanym z korzystaniem z DSL jest stosowanie wartości dynamicznych w programie osadzonym. Łączenie ciągów znaków otwiera drzwi do nieprzyjemnych problemów z bezpieczeństwem. Niesławnym przykładem tego rodzaju problemu są iniekcje SQL. Innym frustrującym problemem (przynajmniej dla programistów rdzy) jest to, że kiedy wbudowany program jest zdefiniowany w postaci zwykłego ciągu znaków, staje się on nieprzejrzysty, dopóki nie zostanie przeanalizowany w czasie wykonywania. Otrzymujemy więc błędy w czasie wykonywania elementów statycznych w połączeniu z problemami z wydajnością.

biscuit-rust zapewnia rozwiązanie obu tych problemów:

składnia iniekcji parametrów pozwala na wklejanie dynamicznych wartości bez ryzyka iniekcji; seria makr przenosi analizę dziennika danych do czasu kompilacji, zapewniając zarówno gwarancje statyczne, jak i kod o wysokiej wydajności. zostaw user_id = "1234"; niech wygaśnięcie = SystemTime::now() + Duration::from_secs(86400); zostaw mu władzę...

What's Your Reaction?

like

dislike

love

funny

angry

sad

wow