Хранение PDF в SQL Server таблице

Sasha3091
Уже с Приветом
Posts: 1369
Joined: 05 Sep 2008 01:22

Хранение PDF в SQL Server таблице

Post by Sasha3091 »

Всем привет.

Собственно вопрос - какие за и против того, чтобы хранить PDF не как отдельные файлы, а в SQL Server таблице в Binary.

Файлы будут открываться с вебсайта в браузере. Почему в SQL Server таблице? Ну чтобы по прямому линку к файлу его невозможо было открыть. Тоесть - самих файлов на диске не будет.
При клике на кнопку на страничке будет идти запрос к SQL Server таблице и оттуда доставаться Binary дата и через Response.ContentType = "application/pdf" будет показываться на страничке.
Есть ли другие варианты?
Дело в том, что там будет инфа о пациентах.

Спасибо.
tessob
Уже с Приветом
Posts: 549
Joined: 07 Jan 2016 13:04

Re: Хранение PDF в SQL Server таблице

Post by tessob »

Можете хранить в базе ссылку на файл, например в S3, и ключи шифрования, чтоб пациенты не утекли. Просто недостаток вашего решения в том, что ваши транзакции в СУБД резко подорожают в вычислительном плане и вы потеряете в производительности.
Sasha3091
Уже с Приветом
Posts: 1369
Joined: 05 Sep 2008 01:22

Re: Хранение PDF в SQL Server таблице

Post by Sasha3091 »

что мешает в этом случае открыть PDF напрямую http://www.mysite.com/myfolder/mypd.pdf?
alex_127
Уже с Приветом
Posts: 7723
Joined: 29 Mar 2000 10:01
Location: Kirkland,WA

Re: Хранение PDF в SQL Server таблице

Post by alex_127 »

Docs
https://docs.microsoft.com/en-us/sql/re ... rver-ver15
отсутствие прямой ссылки это не защита сама по себе.
voyager3
Уже с Приветом
Posts: 1964
Joined: 11 Mar 2015 01:12

Re: Хранение PDF в SQL Server таблице

Post by voyager3 »

Вам же надо будет это дело сертифицировать по HIPAA. От того, что вы доки засунете в виде блоба в СУБД безопаснее не станет. Данные должны быть зашифорованы, как при храннии, так и при передаче. Товарищ Флеш в теме не отписывается, наверное, потому что подавился кофе.
Andrey Strelnikov
Уже с Приветом
Posts: 607
Joined: 17 Dec 2009 11:27

Re: Хранение PDF в SQL Server таблице

Post by Andrey Strelnikov »

Sasha3091 wrote: 31 Jan 2020 05:00 Всем привет.

Собственно вопрос - какие за и против того, чтобы хранить PDF не как отдельные файлы, а в SQL Server таблице в Binary.

Файлы будут открываться с вебсайта в браузере. Почему в SQL Server таблице? Ну чтобы по прямому линку к файлу его невозможо было открыть. Тоесть - самих файлов на диске не будет.
При клике на кнопку на страничке будет идти запрос к SQL Server таблице и оттуда доставаться Binary дата и через Response.ContentType = "application/pdf" будет показываться на страничке.
Есть ли другие варианты?
Дело в том, что там будет инфа о пациентах.

Спасибо.
Была аналогичная фича в моей практике еще на classic asp. Пдф c меддаными загружались через форму на сайте, потом шифровались не помню какой компонентой с добавлением простой соли . Также и выдавались в админке после расшифровки. Сами файлы лежали на диске. Но не читались. Главно "соль" не потерять :) Понадобились мне старые файлы как-то... Еще до меня были сделаны. Не помню каким образом нашел все-таки в свн и тд старую соль.
Sierra2k
Уже с Приветом
Posts: 1600
Joined: 18 Jun 2006 19:40
Location: СНГ->USA

Re: Хранение PDF в SQL Server таблице

Post by Sierra2k »

Sasha3091 wrote: 31 Jan 2020 05:20 что мешает в этом случае открыть PDF напрямую http://www.mysite.com/myfolder/mypd.pdf?
Даже если фаилы будут в базе, то у каждого фаила будет уникальный URL, так?
Следовательно, не важно где фаилы будут физически находиться.

Вы можете фаилы хранить на диске, но браузеру их отдавать как Stream byte[]

https://stackoverflow.com/questions/320 ... ith-a-name

Я бы в базу их не ставил, а хранил на диске, но прямого URL к этим фаилам не делал.
Sasha3091
Уже с Приветом
Posts: 1369
Joined: 05 Sep 2008 01:22

Re: Хранение PDF в SQL Server таблице

Post by Sasha3091 »

Стремный вариант, можно еще проще - переименовать расширение в .res, ну а потом уже отдавать как Stream byte[].

Двже, если просекут прямой URL - получат 404.3 вмесо файла.

Кстати, заметил странный баг - напрямую файл в браузере открывается. Через Stream byte[] - нет. Причем, exception не вылетает. Ругается сам браузер. Не на всех PDF такое.
User avatar
liamkin
Уже с Приветом
Posts: 2603
Joined: 19 Jun 2003 20:22
Location: USA

Re: Хранение PDF в SQL Server таблице

Post by liamkin »

Sasha3091 wrote: 31 Jan 2020 15:59 Стремный вариант, можно еще проще - переименовать расширение в .res, ну а потом уже отдавать как Stream byte[].

Двже, если просекут прямой URL - получат 404.3 вмесо файла.

Кстати, заметил странный баг - напрямую файл в браузере открывается. Через Stream byte[] - нет. Причем, exception не вылетает. Ругается сам браузер. Не на всех PDF такое.
Stream byte - это хорошее решение. Плюс надо перед отдачей расшифровать из внутреннего вашего ключа (он может быть уникальным для каждого пациента), во временный одноразовый ключ для раздачи. Раздачи кстати тоже можно логить, для аудита - с датой, ключом временной раздачи, номером пациента, айпишником куда отдали. А пациенту рисовать ПДФ и временный одноразовый ключ. Чтобы если файл перехватят - только пациент мог расшифровать.
Sasha3091
Уже с Приветом
Posts: 1369
Joined: 05 Sep 2008 01:22

Re: Хранение PDF в SQL Server таблице

Post by Sasha3091 »

Термо... ну вы поняли - и все ключи шифрования наши:)
User avatar
IvanGrozniy
Уже с Приветом
Posts: 10396
Joined: 04 Feb 2004 14:14
Location: Edgewater, NJ

Re: Хранение PDF в SQL Server таблице

Post by IvanGrozniy »

Sasha3091 wrote: 31 Jan 2020 05:20 что мешает в этом случае открыть PDF напрямую http://www.mysite.com/myfolder/mypd.pdf?
Можно разные решения на эту тему придумать, чтобы ограничить доступ одного чела только к его файлу. Советую посмотреть в сторону Content Delivery Network от облачных решений. У них уже все заточено под эти нужды. Далете токен челу перед запросом файла в облако Амазона и дело в шляпе. Не нужно велосипед изобретать в очередной раз как вы выше делаете :wink: Если не понравится их решение, то можно подобное самому запилить на своем сервере.
Вот документация:
https://docs.aws.amazon.com/mediapackag ... -auth.html
Sasha3091
Уже с Приветом
Posts: 1369
Joined: 05 Sep 2008 01:22

Re: Хранение PDF в SQL Server таблице

Post by Sasha3091 »

я боюсь, что тогда HIPAA сертификация не пройдет
User avatar
IvanGrozniy
Уже с Приветом
Posts: 10396
Joined: 04 Feb 2004 14:14
Location: Edgewater, NJ

Re: Хранение PDF в SQL Server таблице

Post by IvanGrozniy »

Sasha3091 wrote: 31 Jan 2020 16:26 я боюсь, что тогда HIPAA сертификация не пройдет
Думаю пройдет сертификация на ура. Все серьезно у них и технология зарекомендовавшая себя. Главное без ошибок внедряйте и тестируйте.
Иначе свой сервер сделайте с проверкой токенов и раздачей файлов из файловой системы. Но выше точно сказали, что файлы не нужно хранить в базенке, лучше в файловой системе сервера со ссылками из БД. Нужно будет прикуртить проверку дополнительного токена пользователя и соотвествие разрешенных для просмотра ему файлов.
User avatar
IvanGrozniy
Уже с Приветом
Posts: 10396
Joined: 04 Feb 2004 14:14
Location: Edgewater, NJ

Re: Хранение PDF в SQL Server таблице

Post by IvanGrozniy »

Sasha3091 wrote: 31 Jan 2020 16:26 я боюсь, что тогда HIPAA сертификация не пройдет
Раньше работал с медицинскими данными с ограничениями HIPPA сертификации. Поэтому у меня есть интерес к этой теме. Похоже, что использовать можно предварительно заключив специальный договор с Амазоном. Вот что удалось найти не тему AWS и HIPPA.
https://www.hipaajournal.com/amazon-clo ... compliant/
is Amazon CloudFront HIPAA Compliant?
In order for any cloud service to be used in conjunction with protected health information, HIPAA-covered entities must enter into a business associate agreement with the service provider. Therefore, before Amazon CloudFront can be deployed, a HIPAA-compliant business associate agreement must be obtained.

Recently, Amazon has updated its HIPAA compliance program and CloudFront has now been included as a HIPAA-eligible service. CloudFront is now included in the list of services covered by the business associate agreement provided for AWS. If you have already executed a BAA for AWS, it is possible to use CloudFront to deliver content containing PHI. However, make sure you check that your BAA specifically states CloudFront is covered.

The service should also be configured to log CloudFront usage data for auditing purposes for HIPAA-compliant workloads. Access logs should be enabled on the platform and requests sent to the CloudFront API should be captured.

Provided a BAA has been obtained for AWS – that includes CloudFront – and the solution is configured correctly, Amazon CloudFront is HIPAA compliant and can be used by healthcare organizations without violating HIPAA Rules.
User avatar
Flash-04
Уже с Приветом
Posts: 63430
Joined: 03 Nov 2004 05:31
Location: RU -> Toronto, ON

Re: Хранение PDF в SQL Server таблице

Post by Flash-04 »

voyager3 wrote:Вам же надо будет это дело сертифицировать по HIPAA. От того, что вы доки засунете в виде блоба в СУБД безопаснее не станет. Данные должны быть зашифорованы, как при храннии, так и при передаче. Товарищ Флеш в теме не отписывается, наверное, потому что подавился кофе.
:ROFL: приятно что ктото радеет за моё здоровье :great:
Not everyone believes what I believe but my beliefs do not require them to.
User avatar
IvanGrozniy
Уже с Приветом
Posts: 10396
Joined: 04 Feb 2004 14:14
Location: Edgewater, NJ

Re: Хранение PDF в SQL Server таблице

Post by IvanGrozniy »

Flash-04 wrote: 31 Jan 2020 18:49
voyager3 wrote:Вам же надо будет это дело сертифицировать по HIPAA. От того, что вы доки засунете в виде блоба в СУБД безопаснее не станет. Данные должны быть зашифорованы, как при храннии, так и при передаче. Товарищ Флеш в теме не отписывается, наверное, потому что подавился кофе.
:ROFL: приятно что ктото радеет за моё здоровье :great:
Мне вот с этой хиппой нравилось раньше, что Буш всех заставлял в медицинской сфере не спрашивать ССН у пациентов/клиентов. Я в те времена как раз работал в этой области, поэтому в первую очередь боялись под раздачу попасть, если где-то ССН в базе будет хранится. В крайнем случае разрешали последних 4 цифры ССН хранить. А сейчас что? Опять все распоясались при Обаме с Трампом - налево и направо мой ССН срашивают. Кредитки, мед страховки, банки, брокеры и т.д. Все-таки при Буше больше порядка было в этом плане :)
User avatar
Alex_L
Уже с Приветом
Posts: 12158
Joined: 02 Oct 2000 09:01
Location: Одесса, Укр -> Belmont, CA

Re: Хранение PDF в SQL Server таблице

Post by Alex_L »

Может проще сделать, давать номер телефона вместо SSN всем кроме финансовых организаций.
My God!... I'm Gorgeous!
User avatar
olegy
Уже с Приветом
Posts: 2127
Joined: 07 Nov 2000 10:01
Location: San Diego, CA, USA

Re: Хранение PDF в SQL Server таблице

Post by olegy »

Есть старое, доброе решение - SAS - https://docs.microsoft.com/en-us/azure/ ... s-overview
не знаю,если оно HIPPA complaint.
Я гражданин Украины, киевлянин и я против хунты!

Return to “Вопросы и новости IT”