#40792022年1月17日作者 jloguercio2 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome v96 可复制演示链接 没有演示 描述一下那个虫子 我用下面的代码把所有样式都设置为 !重要 '// 让所有风格都重要以覆盖元素类 editor.on('styleable:change', (model, property) => { const value = String(model.getStyle()[property]); 如果 (value.indexOf('!important') === -1) { model.addStyle({ [property]: value + ' !important' }); } });...
artf
嘿,兄弟,我还没写完发布😅稿,冷静点...... 请在这里阅读 https://github.com/artf/grapesjs/releases/tag/v0.18.1 风格管理器经过大量更新,如果有什么不行,没人会强迫你升级......
ClaudeCode
谢谢你举报,@jloguercio。 *新版本v0.18.1破坏了脚本,使styleable:change中!重要似乎是竞赛条件或状态管理时序问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤:** 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(CodeS...
#40762022年1月17日作者 diemkay4 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome 97.0.4692.71 可复制演示链接 https://jsfiddle.net/ovrz5ug2/4/ 描述一下那个虫子 你好——我们在多人游戏场景中使用 GrapesJS 时遇到了这个 XSS 漏洞,几个特权用户可以通过编辑器(即非开发者)对模板和组件进行修改。实际上,这使他们容易受到组织内部攻击,一个用户添加了恶意代码,另一个用户可能发现并运行。 如何复现这个漏洞?在组件的“id”属性中添加恶意代码,可以直接在HTML中或通过特征管理器(并保存)——在这种情况下,'id=“<details/open/ontoggle=alert...
artf
谢谢@diemkay如果你有任何建议,请参考这个问题:https://github.com/artf/grapesjs/issues/3082
diemkay
@artf 谢谢,但我已经看过那个工单了,它并没有涵盖我这里描述的问题。 注入不在实时预览中,而是在样式管理器中,它尝试通过设置“.innerHtml”来显示组件的“id”。
artf
是的,抱歉,关得太早😁了。我会试着在下一个版本修复。
#40712022年1月14日作者 clonefunnels2 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome 和 Firefox 可复制演示链接 https://www.teamfunnels.net/login.php 演示演示 描述一下那个虫子 缺失要求;.png之后) 当页面上有背景图片但没有显示时,编辑器会这样加载。 <style> #i7u3f{ 背景-图像:URL(https://www.teamfunnels.net/assets/202201141203/img/hero-bg.png) 背景-位置:顶部中心; 背景尺寸:封面; } #i6o6l{ 背景-图片:URL(https://www.teamfunnels.net/as...
clonefunnels
我觉得是换弦导致了这个问题。 抱歉
ClaudeCode
谢谢你举报,@clonefunnels。 页面背景图片无法正常工作的问题,因为CSS加载时没有;URL 末尾似乎存在竞态条件或状态管理时序问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤:** 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(CodeSan...
#40592022年1月8日作者 miladmeidanshahi2 个回答
葡萄JS版本[X] 我确认使用最新版本的GrapesJS你用的是什么浏览器? Chrome v97描述一下那个虫子 在第 https://github.com/artf/grapesjs/blob/dev/src/selector_manager/model/Selector.js#L171 行,选择器转义函数不允许使用“/”和“.',因此我们不能使用一些顺风类,比如”basis-1/2“和”inset-0.5“...... 也许这个'/([^a-z0-9\w-\/.:]+)/gi'正则表达式会有帮助。行为准则[x] 我同意遵守本项目的行为准则
miladmeidanshahi
抱歉,我发现这个配置 https://github.com/artf/grapesjs/blob/e52b5c29e4346dba7367b769a44d99a2226e025f/src/selector_manager/config/config.js#L17
ClaudeCode
谢谢你举报,@miladmeidanshahi。 selector escape 函数不支持 tailwindcss 类的问题似乎是竞态条件或状态管理时序的问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤: 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(...
#40152021年12月15日作者 YairNa3 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome v96 可复制演示链接 https://jsfiddle.net/emgbo8k1/3/ 描述一下那个虫子 如何复现这个漏洞?将三列积木添加到画布上拖放以改变列的顺序 预期的行为是什么? 拖放应该能正确设置位置 目前的行为是什么? 拖放后列的位置不正确。 如果需要执行某些代码以重现该漏洞,请将其粘贴到下面: “''js editor.getWrapper().addClass(“gjs-wrapper”); 编辑。Css.setRule('.gjs-wrapper', { 导演:“RTL” }); ``` 我也把代码加进了JSFiddl...
sridhar391
@YairNa 我们也遇到过同样的问题,请参考链接 https://github.com/artf/grapesjs/issues/4094
JSSaint
@YairNa @sridhar391这不是RTL的问题。只有Chrome浏览器我们遇到了这个问题。Firefox 运行正常。
ClaudeCode
谢谢你举报,@YairNa。 关于 拖放在 RTL 下效果不好,这个问题很棒。推荐的 StyleManager 方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('something...
#40102021年12月11日作者 clonefunnels1 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome / Firefox 可复制演示链接 https://www.teamfunnels.net/login.php 演示演示 描述一下那个虫子 当我用这个代码让所有风格都变得重要时...... editor.on('styleable:change', (model, property) => { const value = model.getStyle()[property]; 如果 (value.indexOf('!important') === -1) { model.addStyle({ [property]: value + '...
ClaudeCode
谢谢你举报,@clonefunnels。 * 的问题似乎是竞态条件或状态管理时序问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤:* 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(CodeSandbox)——这有助于团队更快识别根本原因 在报告中包含 G...
#39972021年12月7日作者 kuhelbeher2 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome v96 可复制演示链接 https://codesandbox.io/s/grapes-border-issue-94lje 描述一下那个虫子 如何复现这个漏洞?选择带有上下边框的方块前往风格面板 -> 装饰 -> 边框清除边框颜色输入并按回车 预期的行为是什么? 边界应该被移除 目前的行为是什么? 边界依然存在。检查CSS,它会显示“border: 5px solid none;”,这是无效的值 我注意到这个问题只在边框通过不同的边框样式设置时出现,比如边框顶部和边框底部。 接下来的问题——如何通过样式面板正确移除边框?行为准则 [x...
artf
你好@kuhelbeher新 https://github.com/artf/grapesjs/releases/tag/v0.18.1 发布后,这部分可以处理。 这里的主要问题是 [内置](https://grapesjs.com/docs/modules/Style-manager.html#built-in-properties)“border”属性的配置方式,它是一个 [Composite 类型](https://grapesjs.com/docs/api/prop...
ClaudeCode
谢谢你举报,@kuhelbeher。 关于无法移除元素边界的好问题。推荐的 StyleManager 方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('something chang...
#39752021年11月25日作者 Sudhin352 个回答
葡萄JS版本[X] 我确认使用最新版本的GrapesJS你用的是什么浏览器? Chrome v9可复制演示链接 什么都没有描述一下那个虫子 如何复现这个漏洞?实现多页概念创建3页点击装饰品中的背景图片(样式管理器),并将其添加到首页现在添加新页面或点击第二页或第三页 预期的行为是什么? 背景图片不应复制到所有页面,它应该只添加到所选页面 目前的行为是什么? 当只添加到页面时,背景图像会被添加到所有页面 如果需要执行某些代码以重现该漏洞,请将其粘贴到下面: 行为准则[X] 我同意遵守本项目的行为准则
artf
请先检查这个选项 https://grapesjs.com/docs/modules/Selectors.html#component-first-selectors 如果仍然有问题,可以打开一个带有可复现演示链接的正式漏洞问题。
ClaudeCode
谢谢你举报,@Sudhin35。 关于背景图片如果只添加一页,所有页面都会开始重复,这个问题非常好。推荐的 StyleManager 方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log(...
#39722021年11月23日作者 ronaldohoch2 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Brave Versão 1.32.106 Chromium: 96.0.4664.45 (Versão oficial) 64 bits 可复制演示链接 https://jsfiddle.net/960huLz5/ 描述一下那个虫子 如何复现这个漏洞?开放葡萄运行: 'editor.addComponents('<noscript><img src=“”></noscript>');'打开出口模态检查该图片是否在无单标签标签中 4.1. ; console.log(解析器.parseFromString('<noscript><img/></noscript>', 'text/html')); 你会看到它如何放入<noscript>内部<head>和<img> <body>
ClaudeCode
谢谢你举报,@ronaldohoch。 关于不能在Noscript标签内丢弃img,这个问题很棒。推荐的 StyleManager 方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('...
#39482021年11月16日作者 Sudhin352 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 铬 可复制演示链接 不是在那里 描述一下那个虫子 如何复现这个漏洞?安装Grapes js并实现select组件代码将选择组件拖入编辑器点击选择组件并输入特征重新加载页面。 预期的行为是什么?输入的选项不应在该组件的特征管理器中重置已输入的选项应在该组件的特征管理器中可见 目前的行为是什么? 每次页面重新加载后,“我的选项”(在特质中)都会被重置 如果需要执行某些代码以重现该漏洞,请将其粘贴到下面: 行为准则 [X] 我同意遵守本项目的行为准则
artf
你好@Sudhin35请按照[此API](https://grapesjs.com/docs/modules/Traits.html#define-new-trait-type)来创建自定义特征,我强烈建议将选项作为组件属性存储,而不是使用内部组件
ClaudeCode
谢谢你举报,@Sudhin35。 关于我的选项(在特质中)每次重载页面后都会重置,这个问题很棒。推荐的 StyleManager 方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('s...