Согласно Марк ПалмерGrails ресурсы Plugin кодирования проблема с кодом = HTML
В двух словах, чтобы защитить приложение от инъекций кода XSS использует вы должны:
Установите default grails.views.default.codec в config на «HTML»
OK. Так что, если у меня есть это ниже моего Config.groovy
grails.views.default.codec = "none"
И в мой контроллер, я добавляю:
def afterInterceptor = { model ->
model.headerJs = "alert('bingo for '+[$params.unitId]);"
}
И в моем GSP:
<r:script disposition="head">${headerJs}</r:script>
Он работает. Я вижу ожидаемое предупреждение javascript, когда я делаю View Source, и получаю предупреждение, когда страница служит.
Но, если в Config.groovy я применяю рекомендуемое изменение:
grails.views.default.codec = "html"
Мой GSP оказывает
<script type="text/javascript">alert('halooba for '+[1]);</script>
, который я вижу, это очень безопасно.
Моя цель с этим приложением - иметь пользовательские JS-фрагменты, различные свойства и другие значения, сохраненные для клиента в Домене. Эти значения будут введены нашими админами (а не клиентом). На основании того, кто вызывает страницу с запросом HTTP, например, www.mydomain.com/ThisApp/?customerId=13423 (но закодированный клиентId), я бы звонил в Службы моего контроллера, чтобы получить связанные настройки для клиента из Домен и ввести их в ВСП.
Я знаю, что могу поместить JS и CSS в файлы, а затем использовать плагин Resources, чтобы привести их правильно, но я также рассматриваю этот метод для конкретных настроек.
Таким образом, чтобы следовать этому методу безопасности, я либо должен иметь возможность его unencode, либо мне нужно определить другой метод включения javascript в GSP, который не кодирует его.
Любые предложения?
СПАСИБО!
вопрос должен быть изменен с кодом = HTML для кодека = HTML – Twelve24