Att ta bort en nedladdningsknapp kan stödja ett endast‑visningsarbetsflöde, men det gör inte ett synligt dokument omöjligt att kopiera. En säker implementation kräver server‑sidig auktorisation, skyddad lagring, kortlivade sessioner, noggrann loggning och en ärlig förståelse för vad gränssnittsbundna begränsningar kan åstadkomma.
Doconut erbjuder en inbäddad .NET‑dokumentvisare för affärsapplikationer. Denna handledning förklarar den omgivande säkerhetsdesignen utan att publicera gissade konfigurationsegenskaper eller annan odokumenterad Doconut‑källkod.

1. Definiera vad “Endast‑visning” betyder
Börja med en exakt policy. Olika team kan använda “endast‑visning” för att betyda:
- Erbjuda inte den ursprungliga filen som nedladdning.
- Visa inte en export‑åtgärd.
- Tillåt inte utskrift.
- Tillåt endast visning under en auktoriserad session.
- Förhindra att användare når lagringsplatsen direkt.
- Lägg till audit‑poster när ett dokument öppnas.
Detta är separata kontroller. Bestäm vilka som krävs och verifiera att den Doconut‑produkt, plugins och licens du valt stödjer det visarbeteende du behöver.
Lova aldrig att ett synligt dokument inte kan fångas. Skärmdumpar, kameror, tillgänglighetsverktyg, webbläsarfunktioner och auktoriserad åtkomst till visade pixlar gör absolut förhindrande orealistiskt.
2. Skydda den ursprungliga filen
Den ursprungliga dokumentfilen bör förbli i skyddad server‑sidig lagring.
Använd:
- Server‑genererade dokumentidentifierare
- Begränsade lagringsbehörigheter
- Kryptering i vila där det krävs
- En dokumenterad retention‑policy
- Separata behörigheter för uppladdning, visning, export och administration
Skicka inte lagringsuppgifter, obegränsade filsökvägar eller permanenta offentliga URL‑er till klienten.
3. Auktorisera varje dokumentförfrågan
I ASP.NET Core, skydda visarrutten med standardautentiserings‑ och auktoriseringsmekanismer.
Servern bör verifiera:
- Användaren är autentiserad.
- Dokumentet finns.
- Användaren har rätt att visa just det dokumentet.
- Den begärda åtgärden är tillåten för användarens roll och aktuella arbetsflödestillstånd.
[Authorize]‑attributet kan skydda en rutt, medan policies, claims eller resurs‑baserad auktorisation kan fatta det dokument‑specifika beslutet.
Auktorisation måste också omfatta varje endpoint som returnerar dokumentdata, sidor, export, annotationer eller utskriftsutdata. Att bara säkra den initiala sidan lämnar alternativa rutter öppna.
4. Separera visnings‑ och nedladdningsbehörigheter
Modellera behörigheter explicit snarare än att härleda dem från en dold knapp.
Till exempel:
CanViewDocumentCanDownloadOriginalCanExportDocumentCanPrintDocumentCanManageDocument
Dessa namn beskriver applikationspolicyer, inte Doconut‑API:er. Ditt auktorisationslager bör utvärdera dem på servern innan motsvarande åtgärd utförs.
En administratör kan ha nedladdningsbehörighet medan en annan autentiserad användare bara har visningsbehörighet. Båda kan dela samma applikationssida men få olika auktoriserade funktioner.
5. Konfigurera visaren enligt officiell dokumentation
Använd endast konfigurationsnamnen och integrationsstegen som dokumenterats för den exakta Doconut‑version som är installerad i din applikation.
Den verifierade Doconut Viewer‑sidan ger aktuell produktinformation. Doconut‑nedladdnings‑ och dokumentationssidan erbjuder installationsresurser och versionsspecifika exempel.
Om den installerade produkten exponerar en stödjande inställning för att dölja eller inaktivera en nedladdningsåtgärd:
- Tillämpa den enligt den officiella dokumentationen.
- Betrakta den som en gränssnitts‑ och arbetsflödeskontroll.
- Håll den relaterade server‑endpointen skyddad.
- Testa att icke‑auktoriserade användare inte kan kringgå den med en direkt förfrågan.
Kopiera inte gissade konfigurationsegenskaper från en orelaterad artikel och anta att de stöds.
6. Håll visarintegration bakom en tjänst
En dedikerad applikationstjänst kan:
- Hämta det auktoriserade dokumentet
- Öppna det via ett godkänt lagringsabstraktionslager
- Tillämpa stödjande visarkonfiguration
- Frigöra strömmar och temporära resurser
- Registrera sanerade audit‑händelser
- Returnera säkra felmeddelanden till controllern
Detta håller SDK‑specifika detaljer utanför auktorisationspolicyer och presentationskod.
Standard‑.NET‑typer som Stream, FileStream, CancellationToken och beroende‑injicerade tjänster kan forma den omgivande applikationsgränsen. Följ Doconut:s egen dokumentation för anrop mot SDK:n.
7. Tillämpa försvar i djupet
Ett endast‑visningsarbetsflöde kan inkludera:
- Autentisering och resurs‑nivå‑auktorisation
- Nät‑ och lagringsisolering
- Kort sessionstid
- Begränsade export‑ och utskrifts‑rutter
- Vattenmärkning när det stöds och är lämpligt
- Audit‑händelser för dokumentåtkomst
- Hastighets‑ och samtidighetsbegränsningar
- Klara retention‑ och rensningsregler
- Säkerhetsövervakning för ovanliga åtkomstmönster
Ingen enskild kontroll är tillräcklig. En dold knapp utan server‑skydd är särskilt lätt att kringgå.
8. Logga åtkomst utan att läcka data
Användbara audit‑fält inkluderar:
- Applikations‑dokumentidentifierare
- Auktoriserad användaridentifierare
- Tidsstämpel
- Begärd åtgärd
- Resultat
- Korrelationsidentifierare
- Sanerad orsak till avslag eller fel
Undvik att logga:
- Dokumentinnehåll
- Lagretillgångar
- Åtkomst‑tokens
- Känsliga URL‑er
- Fullständiga server‑sökvägar
- Onödig personlig information
Skydda audit‑loggar enligt deras känslighet och retention‑krav.
9. Testa försök att kringgå UI‑tillståndet
Stanna inte när du bekräftat att en verktygsfält‑knapp saknas.
Testa om en endast‑visningsanvändare kan:
- Begära den ursprungliga fil‑rutten direkt
- Anropa en export‑ eller utskrifts‑ruta
- Ändra ett dokumentidentifierare
- Återanvända en utgången session
- Åtkomma en annan användares dokument
- Upptäcka lagrings‑URL:er i markup eller nätverksrespons
- Utlösa detaljerade fel som avslöjar interna sökvägar
- Behålla åtkomst efter att deras behörighet har återkallats
Inkludera både automatiserade auktorisationstester och manuella webbläsartester.
10. Sätt realistiska användarförväntningar
Förklara vad policyn gör:
- Den begränsar applikations‑tillhandahållna nedladdnings‑ eller export‑arbetsflöden.
- Den begränsar åtkomst till auktoriserade användare.
- Den kan registrera visningshändelser.
- Den håller den ursprungliga filen bakom server‑kontroller.
Förklara också vad den inte kan garantera:
- Den kan inte förhindra fotografering eller skärmdumpar i varje miljö.
- Den kan inte återkalla information som redan har setts och kommit ihåg.
- Den ersätter inte kontrakts‑, organisations‑ eller endpoint‑säkerhetskontroller.
Denna distinktion gör produkten mer trovärdig och hjälper intressenter att välja lämpliga kontroller för mycket känsligt material.
Verifieringschecklista
- Visning och nedladdning använder separata server‑behörigheter.
- Varje dokumentförfrågan utför resurs‑nivå‑auktorisation.
- Den ursprungliga filen har ingen permanent offentlig URL.
- Visarinställningar hämtas från dokumentationen för den installerade Doconut‑versionen.
- Dolda åtgärder har skyddade server‑endpoints.
- Tillfälliga data har en definierad rensningsprocess.
- Audit‑loggar undviker dokumentinnehåll och hemligheter.
- Oauktoriserade direkta förfrågningar täcks av tester.
- Felresponsen exponerar inte interna lagringsdetaljer.
- Produktkopian påstår inte absolut kopieringsprevention.
Var Doconut passar in
Doconut tillhandahåller det inbäddade visningslagret i .NET‑applikationen. Din applikation förblir ansvarig för identitet, auktorisation, behörigheter, lagring, retention, revision och sanningen i “endast‑visning”-löftet.
Utvärdera Doconut .NET‑dokumentvisare‑SDK mot dina säkerhetskrav och representativa dokument. Använd de officiella resurserna för stödjande konfiguration snarare än att förlita dig på gissad källkod.
Slutsats
Ett endast‑visningsdokumentarbetsflöde är en försvar‑i‑djupet‑design, inte en boolesk flagga. Skydda den ursprungliga filen, auktorisera varje förfrågan, separera visnings‑ och nedladdningsbehörigheter, validera stödjande visarinställningar, auditera åtkomst och testa direkta försök att kringgå gränssnittet.
Med dessa kontroller på plats kan Doconut leverera den inbäddade dokumentupplevelsen medan din ASP.NET‑applikation upprätthåller säkerhetspolicyn kring den.