当前位置: 首页 > 知识库问答 >
问题:

安全替代危险的溶西汀

咸琪
2023-03-14

我想在我的网站上有一个动态博客(使用React)。最初,我打算在数据库中以原始HTML存储帖子,并使用危险的HTML生成内容。然而,我对安全问题感到关切。虽然我的应用程序没有任何敏感数据,但我对XSS还不够精通,不知道打开我的应用程序会遇到哪些危险。

我很好奇,是否有一种高效、安全的方式在我的应用程序中动态加载博客页面。会使用https://github.com/odysseyscience/react-router-proxy-loader在这种情况下有用吗?将blog post JSX文件夹与我的应用程序的其余部分分开,并使用此文件夹加载它(无可否认,我不确定react路由器代理加载程序是如何工作的)。

我愿意接受建议。

共有3个答案

桑成荫
2023-03-14

https://facebook.github.io/react/tips/dangerously-set-inner-html.html

"道具名称危险的SetInnerHTML被故意选择为可怕的。..."

"在充分了解安全后果并对数据进行适当消毒后..."

我想,如果您信任您自己的CMS/服务器(而不是从第三方接收),该服务器已对数据进行了消毒(此步骤也已完成),那么您可以使用危险的SytinenerHTML插入。

正如Morhaus所说,也许使用DOMPurify,因为它(奖励)可能会处理这个不幸的部分:“所以提供的超文本标记语言必须格式良好(即。,通过XML验证)。”我怀疑使用非XML版本的HTML5的某些内容可能是一个问题。(注:我自己还没有用过,因为我像你一样是新来的。)

赵夕
2023-03-14

在React中使用DangerouslySetinerHTML时如何防止XSS攻击这篇文章建议使用带有danger eslint规则的jam3/no sanitizer来检查传递给DangerouslySetinerHTML的内容是否包装在此sanitizer函数中

有效代码的示例是

const sanitizer = dompurify.sanitize;
return <div dangerouslySetInnerHTML={{__html: sanitizer(title)}} />; // Good

它还描述了3个消毒剂库:
domprify
Xss
xss过滤器。

欧阳何平
2023-03-14

如果XSS是您主要关心的问题,那么您可以使用domprify在通过dangerlysetinerhtml将HTML插入DOM之前对其进行清理。它只是缩小了10公里。它也在Node中工作。

 类似资料:
  • 本文向大家介绍CodeIgniter框架过滤HTML危险代码,包括了CodeIgniter框架过滤HTML危险代码的使用技巧和注意事项,需要的朋友参考一下 CodeIgniter过滤HTML危险代码的方法其实有好几种,其中最常见的有如下几种: 1.可以选择使用htmlspecialchars()方法过滤。 2.可以将config文件夹下面的config.php文件中的$config['global

  • 问题内容: 假设我有一个类,其中包含许多子类。 我可以实例化该类。然后,我可以将其属性设置为子类之一。我已经在活动对象上有效地将类类型更改为其子类的类型。我可以在其上调用调用这些方法的子类版本的方法。 那么,这样做有多危险?看起来很奇怪,但是这样做是 错误 的吗?尽管可以在运行时更改类型,但这是否应该完全避免该语言的功能?为什么或者为什么不? (根据回复,我将针对我想做什么以及是否有更好的选择发布

  • 我使用Workbox预缓存渲染应用程序外壳所需的资产,包括基本版本的索引。html。Workbox假定索引。html在缓存中可用,否则,页面导航将失败,因为我已在我的Service Worker中注册了此项: 我也有自己。安装侦听器中的skipWaiting()指令: 据我所知,现在有2个侦听器: 由Workbox注册用于预缓存资产(包括index.html)的工具 我在Service Worke

  • 问题内容: 据说Go的不是(请参见此处和此处)。我有兴趣找出在我忽略使用互斥锁/ etc保护访问地图的情况下可能发生的情况。 具体来说 ,是否会发生以下任何情况? 假设我有一个带有键,,…,的映射,当我要求(i!= j)时,并发问题会导致获取错误吗? 可以在应用程序中导致吗? 问题答案: 正如评论已经指出的那样,种族是不好的。与Java不同,Go具有非常弱的保证,因此, 即使不执行包含种族的代码

  • 问题内容: 为什么这么危险? 为什么建议改为使用? 我知道已弃用。还有什么使它不安全的? 有什么地方可以使用方法吗?如果是这样,请举一个例子。 问题答案: 为什么Thread.stop()如此危险? 此处详细描述了这些问题:http : //download.oracle.com/javase/6/docs/technotes/guides/concurrency/threadPrimitiveD

  • 问题内容: 我不记得在哪里,但是最近我发表了一条评论,用户告诉我1TBS在JavaScript中比Allman更受青睐,并说Allman在JavaScript中有危险的含义。 这是有效的声明吗?如果是这样,为什么? 问题答案: 不能这样做: 被视为(return )而不是(return an object) 有关更多信息,请参见规则。