Рендеринг javascript, хранящегося в базе данных

У меня в таблице базы данных только один столбец, и он содержит ссылку на javascript, например

<script src = "some src"></script> 

или код javascript, например

<script>
some code
<script>

Итак, мой вопрос, можно ли исправить этот javascript внутри файла cshtml?

Во-первых, вам нужно, чтобы этот файл some src был доступен на вашем веб-сервере. Во-вторых, вы что-нибудь пробовали?

OneCricketeer 28.05.2018 17:49

@ cricket_007 Я пробовал включать напрямую, как этот Model.JsContent. Model.JsContent содержит ссылку на javascript

Lim Popo 28.05.2018 18:16

Не могли бы вы отредактировать свой вопрос, включив в него минимальный воспроизводимый пример?

OneCricketeer 28.05.2018 18:21

Насколько я понял, вы пытаетесь получить код JavaScript внутри тега <script> из вашего файла .csthml. Я прав?

k1dev 28.05.2018 18:24

Звучит как кошмар абсолютной безопасности ...

PhonicUK 28.05.2018 18:39

Я пытаюсь сделать следующее: 1. в действии контроллера я устанавливаю поле объекта модели представления на <script> alert ('test'); </script>, а в chstml я пытаюсь отобразить его как @ Html.Raw (Model.JsContent ). Но я не вижу предупреждения.

Lim Popo 28.05.2018 18:50
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
6
169
1

Ответы 1

Вы можете использовать метод Html.Raw в вашем представлении

@model YourViewModel
@Html.Raw(Model.YourScriptContent)

Предполагая, что YourScriptContent является свойством вашей модели представления, для которой вы устанавливаете значение содержимого скрипта в своем действии GET.

public ActionResult Index()
{
   var vm = new YourViewModel();
   vm.YourScriptContent =  "<script>alert('testing');</script>";
   return View(vm);
}

По умолчанию razor будет HTML-кодировать возвращаемое значение любого кода / выражения C# с префиксом @. Но метод Raw вернет разметку, не закодированную в HTML, что вам и нужно в этом случае.

Поскольку при рендеринге вы не используете кодировку HTML, я надеюсь, что вы полностью доверяете значениям содержимого скрипта :). Прочтите об атаках путем внедрения сценария, если вы не следуете предыдущему утверждению.

Что конкретно не работает? Что происходит с этой реализацией?

Shyju 28.05.2018 18:53

он отображается как есть, но не вызывает функцию оповещения

Lim Popo 28.05.2018 19:13

проверьте консоль вашего браузера. Я предполагаю, что содержимое вашего скрипта недействительно

Shyju 28.05.2018 19:14

Извините, я забыл упомянуть, что это для umbraco crm

Lim Popo 29.05.2018 15:10

каков источник созданной страницы?

Eyescream 30.05.2018 17:57

Другие вопросы по теме