问题标签 [bbcode]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 哪种类型的输入最不容易受到攻击?
哪种类型的输入最不容易受到跨站点脚本 (XSS) 和 SQL 注入攻击。
PHP、HTML、BBCode 等。我需要知道我正在帮助朋友建立的论坛。
javascript - 有没有办法在 JavaScript 中对正则表达式使用不贪婪的匹配?
我想知道是否有办法在 JavaScript 中使用不贪婪的匹配?我尝试了 U 修改器,但它似乎不起作用。
我想用 JavaScript 编写一个小的 BBCode 解析器,但是如果没有不贪婪的匹配,就不可能(至少在我看来)做这样的事情:
但是这样的替换会很好,因为那时不需要检查 HTML 的有效性。未封闭的标记将保持简单的文本。
php - 解析bbcode的最佳方法
我想为 php 网站开发一个 bbcode 过滤器。(我正在使用 cakephp,它将是一个 bbcode 助手)我有一些要求。
Bbcodes 可以嵌套。所以这样的事情是有效的。
Bbcode 可以有 0 个或多个参数。
示例:
Bbcodes 可能有多种行为。
比方说,[url]text[/url]
将转换为[url:url="text"]text[/url]
或视频 bbcode 将能够在 youtube、dailymotion 之间进行选择......
我认为它可以满足我的大部分需求。我已经用正则表达式做了一些事情。但我最大的问题是匹配参数。事实上,我得到了嵌套的 bbcode 和 0 参数的 bbcode。但是当我为参数添加正则表达式匹配时,它没有正确匹配嵌套的 bbcode。
"\[($tag)(=.*)\"\](.*)\[\/\1\]"
// 不是 .* 而是非贪婪匹配器
我现在没有完整的正则表达式,但我有一些看起来像那样的东西(上图)。
那么有没有办法用正则表达式或其他东西有效地匹配 bbcode。我唯一能想到的是使用访问者模式并以这种方式将我的文本与每个可能的标签分开,我可以对我的文本解析有更多的控制,我可能可以验证我的文档,所以如果输入文本没有'没有有效的 bbcode。我可以在保存任何内容之前通知用户错误。
我会使用 sablecc 创建我的文本解析器。 http://sablecc.org/
有更好的主意吗?或任何可能导致高效灵活的 bbcode 解析器的东西?
谢谢你,对不起我的英语不好......
java - 字符串分隔的正则表达式
我正在尝试构建一个 bbcode 解析器,但是在弄清楚如何避免匹配过于广泛时遇到了很多问题。例如,我想实现一个 [list] 到这样的转换:
将被替换为:
这很好用,除非我有两个列表,其中正则表达式与第一个列表的开始标记和第二个列表的结束标记匹配。所以这
变成这样:
这会产生非常丑陋的输出。关于如何解决这个问题的任何想法?
editor - 你能推荐一个非 HTML WYSIWYG 网络编辑器吗?
我正在市场上寻找优秀的所见即所得编辑器。我的用户会像我现在在 Stack Overflow 上一样写东西,但他们不像 SO 用户那样精通技术,所以我需要一个所见即所得的编辑器而不是这个 Markdown 编辑器。
功能方面,我希望编辑器具有与此编辑器的按钮大致相同的功能,即粗体/斜体/链接/引号/列表(编号/项目符号)/标题。更多功能当然很有趣。
我希望编辑器不要保存为 HTML,而是使用其他格式,如 BBCode 或 Markdown。这是因为我想最小化我们的用户将脚本或任何其他讨厌的东西注入我们的数据库的可能性。
那里有很多不同的所见即所得编辑器,例如 FCKeditor、TinyMCE 等,但不幸的是,它们中的大多数都保存在 HTML 中。
不过,TinyMCE 有一个 BBCode 模式,但我读到 TinyMCE有点臃肿。我偶然发现了一个Markdown WYSIWYG 项目,它似乎或多或少已经死了。
您还有其他建议吗?
如果编辑器是基于 jQuery 构建的,那将是一个加分项。
regex - 正则表达式和 XSS 上的“战争”
我一直对编写像论坛或博客这样的网络软件很感兴趣,这些东西需要有限的标记才能重写为 HTML。但是最近,我越来越多地注意到对于 PHP,尝试谷歌搜索“PHP BBCode parser -PEAR”并测试一些,你要么得到一个低效的混乱,要么你得到的代码很糟糕,到处都是 XSS 漏洞。
以我之前提到的例子为例,在那些糟糕的 BBCode 解析器中,你将如何避免 XSS?我现在将使用您的典型正则表达式来处理链接,您可以提及它的脆弱性以及如何避免它。
处理图像标签几乎没有比这更安全的了。
所以我有几个具体的问题,主要是针对 PHP 实现的。
- 在此示例中,仅使用 uri/url 验证表达式进行匹配是否更好?或者,最好使用
(.*?)
回调,然后确定输入是否是有效链接?正如上面显而易见的javascript:alert('XSS!')
那样,在上面的 URL 标记中可以工作,但如果完成 uri 匹配,则会失败。 - 回调中的函数怎么样
urlencode()
,它们会是什么威慑或问题(就 URI 标准而言)? - 编写全栈解析器会更安全吗?或者,对于每页处理多个不同条目的东西来说,开发和使用这样的东西所需的时间和处理能力是否太重了?
我知道我的示例是众多示例之一,并且比某些示例更具体。但是,不要逃避提供自己的。 因此,我正在寻找文本解析情况下 XSS 保护的原则和最佳实践以及一般建议。
javascript - 正则表达式剥离 BBCode
我需要一个正则表达式来去除字符串中的任何 BBCode。我有以下(和一个带有标签的数组):
它可以很好地获取 [tag]this[/tag] ,但是在使用 [url= http://google.com]this[/url]时失败。
我需要改变什么?非常感谢。
java - Java BBCode 库
有人使用过良好的 BBCode Java 实现吗?我在看
- javabbcode:没什么可看的
- kefir-bb : 列为 alpha
- JBoss 源代码中的 BBcode 解析器。
有没有更好的选择?
php - 解析文本中的 bbcode youtube 标签并替换为包含视频 ID 的 html
我正在构建一个应该解析 bbcode 标签的博客,如下所示:
输入:<youtube=http://www.youtube.com/watch?v=VIDEO_ID&feature=channel>
输出:
到目前为止,我的功能非常简单,因为我已经陷入了最简单的部分!现在,我有一个主进程函数,它调用不同的进程函数。在这种情况下,其中之一是 processYouTubeVideos()。所以我这样称呼它:
processYouTubeVideos() 完美地接收来自 youtube 标记内部的 URL,但由于某种原因,当使用 explode() (或拆分)时,永远找不到分隔符。即使使用“u”或“tube”之类的测试值......