Видалення кнопки завантаження може підтримати робочий процес лише для перегляду, проте це не робить видимий документ неможливим для копіювання. Безпечна реалізація потребує серверної авторизації, захищеного сховища, короткоживучих сесій, ретельного журналювання та реалістичного розуміння того, чого можуть досягти обмеження інтерфейсу користувача.
Doconut надає вбудований .NET переглядач документів для бізнес‑застосунків. Цей посібник пояснює дизайн безпеки без публікації вгаданих параметрів конфігурації чи іншого недокументованого коду Doconut.

1. Визначте, що означає «Тільки перегляд»
Почніть з чіткої політики. Різні команди можуть розуміти «только перегляд» так:
- Не пропонувати оригінальний файл для завантаження.
- Не показувати дію експорту.
- Не дозволяти друк.
- Дозволити перегляд лише під час авторизованої сесії.
- Запобігти прямому доступу користувачів до місця зберігання.
- Додавати записи аудиту, коли документ відкривається.
Це окремі контролі. Визначте, які з них потрібні, і переконайтеся, що обраний вами продукт Doconut, плагіни та ліцензія підтримують потрібну поведінку переглядача.
Ніколи не обіцяйте, що видимий документ не може бути захоплений. Скриншоти, камери, інструменти доступності, можливості браузера та авторизований доступ до відображуваних пікселів роблять абсолютний захист нереалістичним.
2. Захист оригінального файлу
Оригінальний документ має залишатися у захищеному сховищі на боці сервера.
Використовуйте:
- Ідентифікатори документів, що генеруються сервером
- Обмежені дозволи сховища
- Шифрування в спокої, якщо це потрібно
- Документовану політику зберігання
- Окремі дозволи для завантаження, перегляду, експорту та адміністрування
Не надсилайте клієнту облікові дані сховища, необмежені шляхи до файлів або постійні публічні URL‑адреси.
3. Авторизуйте кожен запит документа
У ASP.NET Core захистіть маршрут переглядача стандартними механізмами автентифікації та авторизації.
Сервер має перевіряти:
- Користувач автентифікований.
- Документ існує.
- Користувач має право переглядати саме цей документ.
- Запитана дія дозволена для ролі користувача та поточного стану робочого процесу.
Атрибут [Authorize] може захистити маршрут, тоді як політики, претензії або авторизація на основі ресурсів можуть приймати рішення щодо конкретного документа.
Авторизація має охоплювати будь‑яку кінцеву точку, що повертає дані документа, сторінки, експорти, анотації або друковані результати. Захист лише початкової сторінки залишає інші маршрути відкритими.
4. Розділіть дозволи перегляду та завантаження
Моделюйте дозволи явно, а не виводьте їх з прихованої кнопки.
Наприклад:
CanViewDocumentCanDownloadOriginalCanExportDocumentCanPrintDocumentCanManageDocument
Ці назви описують політики застосунку, а не API Doconut. Ваш шар авторизації має оцінювати їх на сервері перед виконанням відповідної дії.
Адміністратор може мати дозвіл на завантаження, тоді як інший автентифікований користувач має лише дозвіл на перегляд. Обидва користувачі можуть користуватися однією і тією ж сторінкою застосунку, отримуючи різні авторизовані можливості.
5. Налаштуйте переглядач згідно офіційної документації
Використовуйте лише назви параметрів конфігурації та кроки інтеграції, задокументовані для точної версії Doconut, встановленої у вашому застосунку.
Перевірена Сторінка переглядача Doconut містить актуальну інформацію про продукт. Сторінка завантаження та документації Doconut надає ресурси для встановлення та приклади, специфічні для версії.
Якщо встановлений продукт надає підтримуване налаштування для приховування або вимкнення дії завантаження:
- Застосуйте його згідно офіційної документації.
- Розглядайте його як контроль інтерфейсу користувача та робочого процесу.
- Тримайте відповідну серверну кінцеву точку захищеною.
- Перевірте, що неавторизовані користувачі не можуть обійти його прямим запитом.
Не копіюйте вгадані параметри конфігурації з несуміжних статей і не припускайте, що вони підтримуються.
6. Тримайте інтеграцію переглядача за межами сервісу
Спеціальний сервіс застосунку може:
- Визначити авторизований документ
- Відкрити його через схвалений абстрактний шар сховища
- Застосувати підтримувані налаштування переглядача
- Вивільнити потоки та тимчасові ресурси
- Записати очищені записи аудиту
- Повернути безпечні помилки контролеру
Так ви тримаєте деталі SDK поза політиками авторизації та кодом представлення.
Стандартні типи .NET, такі як Stream, FileStream, CancellationToken, та сервіси, впроваджені через DI, можуть формувати межу застосунку. Дотримуйтесь власної документації Doconut щодо викликів SDK.
7. Застосуйте захист у глибину
Робочий процес лише для перегляду може включати:
- Автентифікацію та авторизацію на рівні ресурсу
- Ізоляцію мережі та сховища
- Коротку тривалість сесії
- Обмежені маршрути експорту та друку
- Водяні знаки, коли це підтримується і доречно
- Події аудиту доступу до документу
- Обмеження швидкості та контролі конкурентності
- Чіткі правила зберігання та очищення
- Моніторинг безпеки для виявлення незвичних шаблонів доступу
Жоден окремий контроль не є достатнім. Прихована кнопка без серверного захисту особливо легко обходиться.
8. Реєструйте доступ без витоку даних
Корисні поля аудиту включають:
- Ідентифікатор документа в застосунку
- Ідентифікатор авторизованого користувача
- Часова мітка
- Запитана дія
- Результат
- Ідентифікатор кореляції
- Очищену причину відмови або помилки
Уникайте журналювання:
- Вмісту документу
- Облікових даних сховища
- Токенів доступу
- Чутливих URL‑адрес
- Повних шляхів сервера
- Непотрібної персональної інформації
Захищайте журнали аудиту відповідно до їх чутливості та вимог щодо зберігання.
9. Тестуйте спроби обійти інтерфейс
Не зупиняйтеся після підтвердження, що кнопка на панелі інструментів відсутня.
Перевірте, чи користувач лише для перегляду може:
- Запросити прямий маршрут до оригінального файлу
- Викликати маршрут експорту або друку
- Змінити ідентифікатор документа
- Використати прострочену сесію
- Доступитися до документа іншого користувача
- Виявити URL‑адреси сховища в розмітці або мережевих відповідях
- Викликати докладні помилки, що розкривають внутрішні шляхи
- Зберегти доступ після відкликання дозволу
Включайте як автоматизовані тести авторизації, так і ручне тестування в браузері.
10. Встановіть точні очікування користувачів
Поясніть, що робить політика:
- Обмежує завантаження або експорт, які надає застосунок.
- Обмежує доступ лише авторизованим користувачам.
- Може реєструвати події перегляду.
- Тримає оригінальний файл під контролем сервера.
Також поясніть, чого вона не може гарантувати:
- Не може запобігти фотографуванню або скриншотам у будь‑якому середовищі.
- Не може відкликати інформацію, вже побачену та запам’ятовану.
- Не замінює договірні, організаційні або кінцеві засоби безпеки.
Таке розмежування підвищує довіру до продукту та допомагає зацікавленим сторонам обирати відповідні контролі для надчутливих матеріалів.
Контрольний список перевірки
- Перегляд і завантаження використовують окремі серверні дозволи.
- Кожен запит документа виконує авторизацію на рівні ресурсу.
- Оригінальний файл не має постійного публічного URL.
- Налаштування переглядача беруться з документації для встановленої версії Doconut.
- Приховані дії мають захищені серверні кінцеві точки.
- Тимчасові дані мають визначений процес очищення.
- Журнали аудиту не містять вмісту документу та секретів.
- Неавторизовані прямі запити охоплені тестами.
- Відповіді з помилками не розкривають внутрішні деталі сховища.
- Копія продукту не стверджує абсолютну запобігання копіюванню.
Де Doconut підходить
Doconut забезпечує вбудований шар перегляду в .NET‑застосунку. Ваш застосунок залишається відповідальним за ідентифікацію, авторизацію, дозволи, сховище, зберігання, аудит та правдивість обіцянки «только перегляд».
Оцініть SDK переглядача документів Doconut для .NET згідно ваших вимог безпеки та типових документів. Використовуйте офіційні ресурси для підтримуваних налаштувань, а не покладайтеся на вгаданий код.
Висновок
Робочий процес лише для перегляду — це дизайн захисту у глибину, а не булевий прапорець. Захистіть оригінальний файл, авторизуйте кожен запит, розділіть дозволи перегляду та завантаження, перевірте підтримувані налаштування переглядача, аудитуйте доступ і тестуйте прямі спроби обійти інтерфейс.
З цими контролями Doconut може забезпечити вбудований досвід роботи з документами, тоді як ваш ASP.NET застосунок впроваджує політику безпеки навколо нього.