首页 > 其他分享 >NET Core 3.1 MVC 在html中引用js的方法使用时不生效异常

NET Core 3.1 MVC 在html中引用js的方法使用时不生效异常

时间:2023-12-06 09:23:00浏览次数:43  
标签:nonce Core src self script js html csp

  • 在html的select元素添加了onchange事件,changeContent方法也在当前html下。
<select id="changeLanguage" class="form-control  input-lg" asp-for="language" asp-items="Model.supportedLanguages" onchange="changeContent()"></select>
<script >
    function changeContent() {
        ......
    }
</script>

  • 运行起来后,选择变更后缺没有反应。

  • 后来找了很久,发现方法根本没有执行,然后在console也发现一句话(如下),因为CSP安全策略挡住了,发现项目代码中的过滤器确实添加了此策略(如下)
  Refused to execute inline event handler because it violates the following Content Security Policy directive: "default-src 'self'". Either the 'unsafe-inline' keyword, a hash ('sha256-...'), or a nonce ('nonce-...') is required to enable inline execution. Note that hashes do not apply to event handlers, style attributes and javascript: navigations unless the 'unsafe-hashes' keyword is present. Note also that 'script-src' was not explicitly set, so 'default-src' is used as a fallback.
var csp = "default-src 'self'; object-src 'none'; frame-ancestors https://*.XXXX.com; sandbox allow-forms allow-same-origin allow-scripts; base-uri 'self';";
if (!context.HttpContext.Response.Headers.ContainsKey("Content-Security-Policy"))
{
    context.HttpContext.Response.Headers.Add("Content-Security-Policy", csp);
}

后来查找相关资料,及console的提示,需要在csp上添加script-src 'self' unsafe-inline;,但显然这不符合安全规范。
我目前做法是在script添加nonce属性,随机输入一串字符,同时也在csp上添加script-src 'self' 'nonce-2726c7f26cfgfgsedd435877d7d8i38dx87bmw7r0hms645kbchr873k';
但显然固定的字符串,并不安全,应采取随机hash作为值。(后续再研究)

<script nonce="2726c7f26cfgfgsedd435877d7d8i38dx87bmw7r0hms645kbchr873k">
......
</script>

标签:nonce,Core,src,self,script,js,html,csp
From: https://www.cnblogs.com/hwxing/p/17878785.html

相关文章

  • Http 获取JSON
    packagecom.ls.utils;importjakarta.servlet.http.HttpServletRequest;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;importjava.nio.charset.StandardCharsets;/***@authorLartimes*@version1.0*@des......
  • JS反调试VMdebugger
    今天干活的时候,要在前端调试找token值,打开“源代码”选项卡的时候,就不断步入“VMXXX”格式的源码当中,在查询了一些资料之后,发现Node.js反调试的一种手段,网上有说是Googlechrome加载evel()函数,应该是存在这种的情况的,不过在测试的过程当中大多数应该都是反调试的这种。该反调试的......
  • .NET Core 开发的支付SDK集 - paylink
    一套基于.NETCore开发的支付SDK集-paylink 前言在我们的日常工作开发中对接一些第三方支付是比较常见的,如最常见的就是支付宝、微信支付的对接。今天给大家推荐一个基于.NETCore开发的支付SDK集:paylink,它极大简化了API调用及通知的处理流程从而大大提供我们的工作生......
  • JSON utils 工具类核心方法parseObject , toString实现
    1packagecom.ls.utils;23importjava.lang.reflect.Array;4importjava.lang.reflect.Field;5importjava.util.Arrays;67/**8*@authorLartimes9*@version1.010*@description:JSON工具类11*toJSONString12*parseObject13......
  • coredump文件生成,以及GDB工具使用
    一、coredump文件生成Core文件其实就是内存的映像,当程序崩溃时,存储内存的相应信息,主用用于对程序进行调试。当程序崩溃时便会产生core文件,其实准确的应该说是coredump文件,默认生成位置与可执行程序位于同一目录下。1.查看core文件生成是否开启ulimit-a第一行corefile......
  • js格式化工具
    背景通常我们进行网页调试或者爬虫的时候,发现get到的js通常是格式很乱的,不利分分析代码和查找所以本文找到一个可以将js格式化的工具在线解析1.网址https://coding.tools/cn/javascript-beautifier比如我们请求一个jshttps://unpkg.com/[email protected]/components/prism-do......
  • HTML学习笔记四:html-body-行内元素
    HTML学习笔记四:body元素行内元素MDN元素查询地址所有的html的元素我们都可以通过以下地址进行相关的查询和理解。https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/metabody中元素分类块级元素行内元素行内元素行内元素区别于块级元素,不会独占一行,一个行内元......
  • HTML学习笔记五:html-body-form表单
    HTML学习笔记五:html-body-form表单MDN元素查询地址所有的html的元素我们都可以通过以下地址进行相关的查询和理解。https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/meta表单元素在网页中,如果需要向web服务器提交用户输入的信息时候,需要用到form表单进行提交。......
  • HTML学习笔记六:html-body-框架元素
    HTML学习笔记六:html-body-框架元素MDN元素查询地址所有的html的元素我们都可以通过以下地址进行相关的查询和理解。https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/meta框架标签iframe可以通过使用iframe标签在当前页面的框架内嵌入一个外部链接的网页。可用......
  • HTML学习笔记七:html-字符实体和全局属性
    HTML学习笔记七:html-字符实体和全局属性MDN元素查询地址所有的html的元素我们都可以通过以下地址进行相关的查询和理解。https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/meta字符实体用特定代码来表示一个符号,即为字符实体。字符实体格式:以&开头以;结尾......