当前位置: 首页 > 面试题库 >

如何在没有不安全的内联JavaScript / CSS代码的情况下使用React?

上官波鸿
2023-03-14
问题内容

背景

我必须对React应用程序使用内容安全策略。

原因,但是,在这里不是什么大问题,是因为我正在创建WebExtension / Browser Extension
/附加组件,并且这些附件确实具有这样的内容安全策略,并且存在类似'unsafe- eval''unsafe- inline'被严格禁止的事情:

由于重大安全问题,addons.mozilla.org上列出的扩展名不允许在其CSP中使用’unsafe-eval’,’unsafe-
inline’,远程脚本,blob或远程源的扩展名。

我在create-react-app遵循本指南的情况下创建了该应用程序。目的是能够在那里使用WebExtensions的默认CSP进行响应,或者至少进行较小的调整。

但是 请注意,出于安全原因,实际上也应该在“常规”网站上使用(如此严格的)CSP,因此此问题 不仅 针对附加组件制造商。

问题

但是当我运行时npm run build,生成index.html的确包含了足够多的内联JS代码。

所以我该如何配置/使用反应以不这样做并…

  1. 还是将所有JS / CSS代码放入单独的文件中?
  2. 或添加名词或CSP允许的其他内容?
  3. 或以类似方式解决该问题?

编辑

实际上,似乎开发版本(我在运行时创建npmstart)没有这样的缩小。


问题答案:

实际上,由于@heyimalex,我为我的问题找到了一个非常简单的答案。像这样运行构建脚本:

INLINE_RUNTIME_CHUNK=false npm run build

之后,它应该与CSP兼容。



 类似资料:
  • 我们有一个应用程序,将部署在具有不同IP的服务器上。JNLP是在构建时生成的。因此,我们定义了没有代码库的JNLP: 然而,当第二次启动这个应用程序时(从第一次启动时创建的桌面图标),代码库被设置为本地文件系统,这是绝对无用的。我希望Java Webstart在第一次启动应用程序时使用实际的源地址设置代码库。这似乎不是真的。 我如何准备一个通用的JNLP,它可以在不同的服务器上使用而无需修改?

  • 我是UI自动测试的新手,当只有.apk文件时,我无法弄清楚如何设置UI测试。 在线教程和其他示例没有显示如何使用我的3P. apk文件。我知道在Appium中,只需将文件/目录和名称添加到所需的功能,服务器就会安装它。

  • 我有一个使用webhdfs管理HDFS的工作应用程序。我需要能够在Kerberos安全集群上执行此操作。 问题是,没有库或扩展来协商我的应用程序的票,我只有一个基本的HTTP客户端。 是否可以创建一个Java服务来处理票证交换,并且一旦它获得服务票证,就将其传递给应用程序以在HTTP请求中使用?换句话说,我的应用程序会要求Java服务协商票证,它会将服务票证以字符串或原始字符串的形式返回给我的应用

  • 有一个问题是java方法应该返回集合还是流,Brian Goetz回答说,即使对于有限序列,流通常也应该是首选的。 但在我看来,当前对来自其他地方的流的许多操作无法安全地执行,而且防御性代码防护也是不可能的,因为流不会显示它们是无限的还是无序的。 如果parallel是我要在Stream()上执行的操作的一个问题,那么我可以调用isParallel()来检查或sequential来确保计算是并行的

  • 第二:这不是重复的。如在没有HTTPS的情况下,如何使用Javascript通过HTTP安全地发送密码?描述其他方法的问题,但不是具体的,当加密用于教育目的时,可以作为次要的东西。 作为课外一些Internet安全研究的一部分,我想创建一个使用用户配置文件并允许用户通过密码登录的网站。该网站不采取信用卡信息,不会持有敏感的个人信息,并不会,一般情况下,是一个值得去窃取个人信息的网站。为了这个问题的

  • 我正在玩grpc 有人成功使用进行生产吗?我们需要包括特使在内的所有依赖项吗?