Я настраиваю загрузку некоторых файлов в своем веб-приложении и буду хранить файлы в виде данных base64 на своем бэкэнде.Я также отображаю ссылки на файлы, которые загружены в формате:
<a href="{{doc.data}}">{{doc.name}}</a>
, где документ выглядит примерно так:
doc = {
name: 'example.pdf',
data: 'application/pdf;base64,JVBERi0xLjUNCiW...'
}
Вход для загрузки принимает изображения и PDF-файлы.
Теперь, это прекрасно работает при нажатии на ссылки для файлов изображений, но для PDF-файлов перед ссылкой добавляется «небезопасный», поэтому Angular должен санировать эту привязку.Я сделал плункер, чтобы продемонстрировать: https://next.plnkr.co/edit/mWQwSQGXXTjMDIGj?open=lib%2Fapp.ts&deferRun=1. Попробуйте загрузить изображение и PDF-файл и посмотрите разницу при попытке загрузить их по ссылкам.
После некоторых исследований я знаю, что могу обойтидезинфекция для связывания с использованием
bypassSecurityTrustResourceUrl(doc.data)
Но я скептически отношусь к этому.Возникают вопросы:
Безопасно ли в моей ситуации обходить очистку URL-адресов?Почему?
Почему значения URL для файлов PDF помечаются как небезопасные, а значения URL для изображений - нет?
Что делаетпроверять дезинфицирующее средство при взгляде на resourceURL?Является ли «небезопасным» какой-либо URL-адрес со словом «application», потому что он может содержать скрипт?
Заранее спасибо.