Mod 安全块由 Tiny MCE 编辑器格式化的文本

问题描述 投票:0回答:1

我正在尝试在 Laravel 项目上使用 TinyMCE 编辑器,它在本地主机上运行得很好,但是当部署到服务器时,由于表单字段中的 HTML 元素,Mod 安全性会阻止表单提交。我搜索了网络并找到了建议禁用 Mod Security 的选项,但这使我的服务器容易受到攻击,所以我不想这样做。

请有人帮忙解决一个问题,让我可以将格式化文本提交到我的数据库,而无需在我的服务器上禁用 Mod 安全性?

下面链接中的文本是我尝试粘贴的文本示例,它会引发 Mod 安全错误:


[https://cheatsheetseries.owasp.org/cheatsheets/Laravel_Cheat_Sheet.html][1]

日志当前给出:

 [:error] [pid 982063] [client IP] [client IP] ModSecurity: Access denied with code 403 (phase 2). Match of "eq 0" against "MULTIPART_UNMATCHED_BOUNDARY" required. [file "/etc/modsecurity/modsecurity.conf"] [line "88"] [id "200004"] [msg "Multipart parser detected a possible unmatched boundary."] [hostname "domain.tld"] [uri "/admin/createblog"] [unique_id "ZON9Wu1tOJTfII0SM9EoYAAAAAs"], referer: https://domain.tld/admin/createblog

这是一个 Laravel 项目。

任何帮助将不胜感激。

laravel tinymce mod-security formatted-input
1个回答
0
投票

OWASP ModSecurity 核心规则集 Dev on Duty 报告。感谢您将日志输出添加到您的问题中:这对于解决您的问题至关重要。

以下是您的日志摘录中最有趣的部分:

ModSecurity: Access denied with code 403 (phase 2). Match of "eq 0" against "MULTIPART_UNMATCHED_BOUNDARY" required.… [id "200004"] [msg "Multipart parser detected a possible unmatched boundary."]… [uri "/admin/createblog"]

从中我们可以看出什么?首先,多部分解析器出现错误,这表明有问题的 HTTP 事务是某种上传。 URI 是

/admin/createblog
。这一切都与您提到的关于尝试发布一些 HTML 时发生的问题一致(我们可以假设发布由 HTML 组成的博客文章。)

我们还可以看到,匹配的具体规则是规则200004。这条规则负责检查变量

MULTIPART_UNMATCHED_BOUNDARY
。当 ModSecurity“遇到感觉像是[多部分消息]边界但事实并非如此”时,该变量由 ModSecurity 设置。 [来源]

200004 是一个非常棘手的规则,众所周知,它会导致许多误报(请参阅 here 了解有关为什么关闭此规则是安全的专家意见。)如果一行文本,合法文本很容易导致规则 200004 匹配以一些连字符开头,看起来有点像多部分边界。考虑一些完全合法的输入,如下所示:

Things I would not put on a pizza:
-- Pineapple
-- Bacon
-- Anchovies

这显然不是恶意内容,但它确实导致规则 200004 匹配(我只是对其进行了双重检查)。

为了防止将来出现此类误报,请使用如下指令禁用规则 200004:

# Disable 'ModSecurity recommended' rule 200004, "detected a possible unmatched
# boundary", as it's known to cause frequent false positives and isn't useful.
# (Reference: https://stackoverflow.com/questions/76908930)
SecRuleRemoveById 200004

然后请务必重新加载您的 Web 服务器服务(Apache?),然后就可以开始了。

© www.soinside.com 2019 - 2024. All rights reserved.