Doconut Viewer staje się częścią granicy bezpieczeństwa Twojej aplikacji, gdy tylko wyświetla kontrakty, faktury, rysunki techniczne lub rekordy klientów. Doconut dostarcza warstwę podglądu; otaczająca aplikacja musi nadal decydować, kto może otworzyć plik, gdzie przechowywane jest źródło, jak długo dane pochodne pozostają dostępne oraz co jest rejestrowane do celów dochodzeniowych.

Artykuł Doconut o bezpiecznych praktykach przeglądania dokumentów opisuje renderowanie po stronie serwera jako jedną warstwę w projekcie obrony w głąb. Ten artykuł koncentruje się więc na odpowiedzialnościach aplikacji względem Doconut i kieruje szczegóły implementacji do utrzymanej dokumentacji produktu.
Rozpocznij od modelu zagrożeń
„Prywatny” i „bezpieczny” nie są konfiguracjami. Zdefiniuj zdarzenia, które musisz zapobiec lub wykryć, zanim wybierzesz środki kontroli.
| Ryzyko | Przykład | Kontrola aplikacji |
|---|---|---|
| Nieautoryzowany dostęp | Użytkownik zmienia identyfikator dokumentu w URL | Autoryzacja na poziomie obiektu przy każdym żądaniu |
| Przekroczenie najemcy | Uprawniony użytkownik żąda pliku innego klienta | Zakres najemcy uwzględniony w decyzji autoryzacji |
| Ujawnienie źródła | Ścieżka przechowywania lub oryginalny plik jest zwracany bezpośrednio | Kontrolowane przez serwer wyszukiwanie i przepływ renderowania |
| Stary dostęp | Link pozostaje użyteczny po zmianie roli lub sprawy | Krótki czas życia sesji plus ponowna weryfikacja autoryzacji |
| Nadmierna retencja | Tymczasowe dane wejściowe lub wyjściowe gromadzą się | Jawne zadania cyklu życia z obserwowalnymi wynikami |
| Wrażliwe logowanie | Tokeny lub lokalizacje plików pojawiają się w logach | Strukturalna redakcja i telemetryka zawierająca tylko identyfikatory |
Priorytetyzuj ryzyka w zależności od dokumentów i użytkowników w Twoim systemie. Publiczna biblioteka broszur i portal dowodów prawnych nie powinny dzielić tej samej polityki jedynie dlatego, że używają tego samego przeglądarki.
Przypadek użycia przeglądu dokumentów prawnych Doconut jest przydatnym odniesieniem do roli produktu w uwierzytelnionych przepływach pracy związanych z przypadkami, kontraktami, dowodami i zgodnością. Wzmacnia to również granicę architektoniczną: uprawnienia, przechowywanie, rekordy klientów i reguły biznesowe pozostają blisko aplikacji hostującej.
Autoryzuj przed otwarciem dokumentu
Wykonaj uwierzytelnienie i autoryzację na poziomie obiektu przed otwarciem dokumentu przy użyciu Doconut. Oficjalny przewodnik konfiguracji .NET 6 lub wyższego pokazuje, jak skonfigurować przeglądarkę i jak otworzyć dokument po stronie serwera; umieść sprawdzenia tożsamości aplikacji, najemcy i uprawnień do dokumentu przed tym krokiem produktu.
Powtórz tę samą regułę autoryzacji dla każdej powiązanej operacji udostępnianej przez aplikację, w tym stron, miniatur, wyszukiwania, adnotacji, konwersji, pobierania i drukowania. Ukrycie przycisku nie chroni podstawowego żądania.
Unikaj akceptowania ścieżki systemu plików, klucza przechowywania lub zdalnego URL bezpośrednio z przeglądarki. Rozwiąż identyfikator dokumentu zarządzany przez aplikację do jego lokalizacji przechowywania na serwerze, a następnie potwierdź, że rozwiązany obiekt należy do autoryzowanego najemcy i przepływu pracy.
Oddziel przeglądarkę od polityki przechowywania
Przeglądarka nie powinna definiować okresu retencji. Udokumentuj każdą klasę przechowywania i właściciela:
- Dokument źródłowy — kontrolowany przez Twoją podstawową politykę treści lub rekordów.
- Tymczasowe pliki robocze — tworzone do przetwarzania i usuwane w ramach zaplanowanego, obserwowalnego cyklu życia.
- Wygenerowane strony lub pamięci podręczne — ograniczone do minimalnego przydatnego czasu życia i chronione jak źródło.
- Eksporty i pliki gotowe do druku — tworzone tylko wtedy, gdy użytkownik posiada odpowiednie uprawnienie.
- Logi i zdarzenia audytu — zawierają identyfikatory i wyniki, a nie treść dokumentu ani poświadczenia.
Szyfrowanie w tranzycie i w spoczynku zależy od Twojego serwera WWW, dostawcy przechowywania, zarządzania kluczami i ustawień wdrożenia. Zweryfikuj te kontrole w rzeczywistym środowisku; nie wyciągaj wniosków na podstawie samej biblioteki przeglądarki.
Ostrożnie używaj krótkotrwałych odwołań
Krótkotrwałe odwołanie może zmniejszyć czas dostępny do powtórzenia, ale nie zastępuje autoryzacji. Jeśli Twój projekt używa podpisanej trasy lub tokenu sesji:
- Powiąż je z jednym dokumentem i zamierzoną operacją.
- Nadaj mu wąski okres ważności oparty na przepływie pracy.
- Unikaj umieszczania wrażliwych roszczeń lub lokalizacji przechowywania w postaci niezaszyfrowanej.
- Ponownie zweryfikuj autoryzację dla operacji uprzywilejowanych.
- Zdefiniuj, co oznacza odwołanie przed naturalnym upływem czasu.
- Trzymaj tokeny z dala od analiz, odnośników, komunikatów o wyjątkach i zrzutów ekranu.
Gdy sesja przeglądarki wygaśnie, wyświetl neutralny komunikat i zaoferuj bezpieczny sposób ponownego uwierzytelnienia. Nie ujawniaj, czy inny najemca jest właścicielem dokumentu.
Zrozum, co kontrolki po stronie klienta mogą, a czego nie mogą zrobić
Usunięcie kontroli pobierania lub drukowania może usprawnić zamierzony przepływ pracy, ale nie jest gwarancją poufności. Użytkownik, który może zobaczyć treść, nadal może przechwycić ekran, sfotografować go lub użyć możliwości przeglądarki poza przeglądarką.
Traktuj ograniczenia po stronie klienta jako środki użyteczności i odstraszania. Silniejsze kontrole pochodzą z przechowywania plików źródłowych po stronie serwera, stosowania autoryzacji do każdego powiązanego żądania, ograniczania eksportów i używania widocznych znaków wodnych, gdy polityka tego wymaga.
Nie przekształcaj funkcji produktu w roszczenia zgodności
Zgodność regulacyjna zależy od celu, kategorii danych, podstawy prawnej, umów, przetwarzania regionalnego, retencji, reakcji na incydenty i procedur organizacyjnych. Przeglądarka może wspierać zgodny projekt, ale nie czyni aplikacji zgodną sama w sobie.
W ocenie GDPR udokumentuj przynajmniej:
- Gdzie przetwarzane i przechowywane są pliki źródłowe i pochodne
- Kto pełni rolę administratora i podmiotu przetwarzającego dla każdej usługi
- Jakie podprocesory i transfery są zaangażowane
- Jak żądania usunięcia docierają do każdej klasy przechowywania i polityki backupu
- Jakie zdarzenia są logowane i jak długo logi pozostają dostępne
- Jak przeprowadzane są przeglądy dostępu i reakcje na incydenty
Poproś interesariuszy ds. prywatności i prawnych o weryfikację tych decyzji dla Twojego wdrożenia.
Dodaj nagłówki bezpieczeństwa i zasady pamięci podręcznej
Dla uwierzytelnionych tras podglądu oceń restrykcyjną politykę Content Security Policy, politykę ramek, ochronę przed wykrywaniem MIME oraz politykę referera. Jeśli podgląd pojawia się w iframe, wyraźnie określ dozwolone pochodzenie rodzica.
Wybierz nagłówki pamięci podręcznej zgodnie z wrażliwością i trasą renderowania. no-store może być odpowiedni dla niektórych odpowiedzi, ale może wpływać na wydajność i nie usuwa treści już przechwyconych w innym miejscu. Testuj zachowanie przeglądarki, proxy i CDN zamiast polegać wyłącznie na nagłówku.
Loguj decyzje, nie sekrety
Przydatne zdarzenie audytu może zawierać:
- Identyfikatory użytkownika i najemcy
- Identyfikator dokumentu
- Żądaną operację
- Wynik autoryzacji
- Znacznik czasu i identyfikator korelacji
- Wynik retencji lub czyszczenia
Unikaj logowania surowych tokenów, ciągów zapytań, URL-i przechowywania, nazw dokumentów zawierających dane osobowe lub wyodrębnionego tekstu. Chroń logi audytu przed modyfikacją i ogranicz dostęp do zespołów, które ich potrzebują.
Zweryfikuj pełny przepływ
Testowanie bezpieczeństwa powinno obejmować przypadki negatywne:
- Zmień identyfikator dokumentu pozostając uwierzytelnionym.
- Ponownie użyj URL podglądu od innego użytkownika lub najemcy.
- Wywołaj bezpośrednio endpointy strony, miniatury, druku i eksportu.
- Wygas sesję podczas długiego podglądu.
- Usuń uprawnienie użytkownika, gdy dokument jest otwarty.
- Prześlij nieobsługiwane, zbyt duże, uszkodzone lub zabezpieczone hasłem dane wejściowe.
- Potwierdź, że zadania czyszczenia usuwają kwalifikujące się dane i raportują niepowodzenia.
- Sprawdź logi, analizy i strony błędów pod kątem wrażliwych wartości.
Zautomatyzuj stabilne przypadki i zachowaj ręczną weryfikację konfiguracji przechowywania, polityki przeglądarki oraz zmian wersji przeglądarki.
Wnioski
Integracja z myślą o bezpieczeństwie ma wyraźną odpowiedzialność. Doconut dostarcza możliwość przeglądania dokumentów opisaną w swojej oficjalnej dokumentacji; Twoja aplikacja zapewnia uwierzytelnienie, autoryzację, kontrolę przechowywania, retencję, monitorowanie i reakcję na incydenty. Utrzymywanie tych obowiązków w sposób jawny zapewnia silniejsze kontrole i bardziej uczciwe roszczenia dotyczące prywatności.