gpt4 book ai didi

asp.net - 将nonce属性添加到自动生成的WebForms脚本中

转载 作者:行者123 更新时间:2023-12-02 03:03:20 25 4
gpt4 key购买 nike

在我的网站上实现CSP header 时,我遇到了Webforms添加到页面的自动生成的回发JavaScript的问题:

<script type="text/javascript">
//<![CDATA[
var theForm = document.forms['form1'];
if (!theForm) {
theForm = document.form1;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
//]]>
</script>
为了支持其他一些内联脚本标签,我已经成功添加了 nonce属性;但是我找不到办法修改这段生成的代码来做同样的事情。我已经探索了 ClientScript.GetPostBackEventReference,但这似乎可以控制其中的JavaScript,与 <script>标记本身的呈现无关。
该解决方案不一定需要添加 nonce属性-符合要求的任何操作都可以。例如,如果有一个ASP.NET设置可以配置为将该脚本加载为文件(我可以将其列入白名单),那就很好了。

最佳答案

祝您好运并使用Webforms Scheme在ASP.NET上实现良好的CSP-WebForms控件将添加大量内联脚本,例如在此登录按钮上:

<a id="btnLogin" class="btn btn-info pull-right" href="javascript:__doPostBack(&#39;btnLogin&#39;,&#39;&#39;)">Login</a>

如果您不使用许多 <asp:...控件,那么可能还不错。

要允许您运行上述脚本,可以将其添加到 script-src之后的CSP中:
sha256-uVkxb0ccirYwSBxwdr2/4qtJEH1eBw7MslAgyLdAVVY="
它使您的浏览器知道它应该执行任何具有该sha256哈希的脚本。

如果您使用与我正在使用的换行符不同的换行符(我相信是Windows风格),则我给您的哈希可能无法正常工作。

您还应该注意,如果没有页面将默认表单ID更改为“form1”以外的其他内容。

关于asp.net - 将nonce属性添加到自动生成的WebForms脚本中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44461778/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com