gpt4 book ai didi

ruby-on-rails - rails 5.2 : Best practice for setting CSP nonce

转载 作者:行者123 更新时间:2023-12-04 06:13:14 27 4
gpt4 key购买 nike

我们的应用程序在 Rails 5.2 上运行,它使用 webpacker 为 Assets 提供服务,而没有 Assets 管道。我想知道在脚本标签上设置 nonce 属性的最佳方法是什么。

content_security_policy.rb ,有一个content_security_policy_nonce_generator对于 UJS,我想知道我是否仍然可以使用它而没有任何副作用。下面的工作,我只是想知道做这样的事情的最佳实践是什么。

#initializers/content_security_policy.rb

# If you are using UJS then enable automatic nonce generation
Rails.application.config.content_security_policy_nonce_generator = -> request { SecureRandom.base64(16)

application.html.erb ,如果我想在脚本标签上有 nonce,我将不得不从请求中获取它。根据这里: https://api.rubyonrails.org/classes/ActionDispatch/ContentSecurityPolicy/Request.html#method-i-content_security_policy_nonce
#app/views/layouts/application.html.erb

<!DOCTYPE html>
<html dir="ltr">
<head>
<title>FruitsMarket</title>
<%= csrf_meta_tags %>
<%= csp_meta_tag %>

<%= stylesheet_pack_tag 'application' %>
<%= javascript_pack_tag 'polyfills' %>
<%= javascript_pack_tag 'application' %>
<script type="text/javascript" nonce=<%= request.content_security_policy_nonce %>>
alert('hi');
</script>
</head>

<body>
<%= yield %>
</body>
</html>

最佳答案

找到了 https://api.rubyonrails.org/classes/ActionView/Helpers/JavaScriptHelper.html
原来有一个 ruby​​ View 助手

<%= javascript_tag nonce: true do -%>
alert('All is good')
<% end -%>

关于ruby-on-rails - rails 5.2 : Best practice for setting CSP nonce,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54525519/

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