Whenever a post contains "substring" I get a 403 error

AI-generated summary

DxJ reports that posting the word “substring” triggers a 403 error on their Discourse forum, forcing them to use “sub-string” as a workaround. They link to an example post and ask for a solution, noting that text formatting doesn’t help. cocococosti attempts to replicate the issue without success and asks if custom themes, alternate accounts, or console/log errors are involved. IAmGav observes multiple browser console warnings, primarily related to failed Google Analytics and source map loads, though these may not be directly tied to the 403. Mr.X_Mr.X suggests the issue likely stems from a Web Application Firewall (WAF), such as Cloudflare’s, which may flag “substring” as a potential XSS exploit keyword. The thread highlights a possible security filter conflict rather than a Discourse bug.

Dear Discourse,

Whenever my post contains the word substring, an error 403 is displayed:

For the time being, I just used sub-string instead, but that’s not a workable solution.

You can see my post here. Is there any way to avoid this? I have tried to use all possible text formatting but nothing helps. Thank you!

I wasn’t able to replicate this :thinking:

Do you have a custom theme/theme component? If you try from another account, the same happens? Do you see any errors in https://ax.docentric.com/forum/logs? Any errors in the browser’s console?

there are alot of warning in your console

Summary

The FetchEvent for “https://www.google-analytics.com/analytics.js” resulted in a network error response: the promise was rejected.
analytics.js:1 Failed to load resource: net::ERR_FAILED
NetworkFirst.mjs:167 Uncaught (in promise) no-response: no-response :: [{“url”:“https://www.google-analytics.com/analytics.js”}]
at a.makeRequest (https://ax.docentric.com/forum/javascripts/workbox/workbox-strategies.prod.js:1:2145)
DevTools failed to load source map: Could not load content for https://ax.docentric.com/assets/service-worker-0f46bc4160bec3db67d0b8d229c83dc9211fdb898d847ab96d6e2bafea704cd0.js.map: HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE
DevTools failed to load source map: Could not load content for https://ax.docentric.com/assets/browser-detect-115ab5953de1b5bb122bfb26b757f5391dd8d1d2aef2b81baf7b59aee99d9f34.js.map: HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE
DevTools failed to load source map: Could not load content for https://ax.docentric.com/assets/application-38e7ba8d44d8f6050114fd240f73ac6e4ed6933ec58a0117bc3ca11067780c4b.js.map: HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE
DevTools failed to load source map: Could not load content for https://ax.docentric.com/assets/locales/en-068f6c21bf76a00056a9f45ebfb4907c9be9e928d441f97d7bed92f58ea0341b.js.map: HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE
DevTools failed to load source map: Could not load content for https://ax.docentric.com/assets/plugins/discourse-akismet-b158ed3716457724147fc14a3b6cf4c6234b3b715dcbb2dc830a349d3da3a5db.js.map: HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE
DevTools failed to load source map: Could not load content for https://ax.docentric.com/assets/vendor-6c7e3fc2df536d0f96baf76e831aad0f2dd61c14b9c86bdd31b870a15ad2a132.js.map: HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE
DevTools failed to load source map: Could not load content for https://ax.docentric.com/assets/plugins/discourse-assign-6ae07b894263aacd0ff708b1764c470eda360f57a02669212191d888598658ce.js.map: HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE
DevTools failed to load source map: Could not load content for https://ax.docentric.com/assets/plugins/discourse-canned-replies-4477d176c5fc54c994338634c6f9120a849e51cd247e06aa2e07da678ba82407.js.map: HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE
DevTools failed to load source map: Could not load content for https://ax.docentric.com/assets/plugins/discourse-data-explorer-89ab050fa4b56fbc2fafe020ff037772f3d3fc57a3591ee0c4cb3daf9238883e.js.map: HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE
DevTools failed to load source map: Could not load content for https://ax.docentric.com/assets/plugins/discourse-details-61554ea83ad59329c2d5c9f0390a0498f3e3665deb58d32dc608aeca24fa0bb9.js.map: HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE
DevTools failed to load source map: Could not load content for https://ax.docentric.com/assets/plugins/discourse-local-dates-1ce1601fcba226038712e9a1c800257264845949db3581eb2a13004bbd94b58f.js.map: HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE
DevTools failed to load source map: Could not load content for https://ax.docentric.com/assets/plugins/discourse-footnote-5d7f9bcc8f1fc30990236f3fe0abfbfc5cc3a490e9d5595f844aeb6d4b86842f.js.map: HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE
DevTools failed to load source map: Could not load content for https://ax.docentric.com/assets/plugins/discourse-saved-searches-e84bded10049d1363a0bdd0fb459ca2984821e718323aa0a0d7128a7e9dcf605.js.map: HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE
DevTools failed to load source map: Could not load content for https://ax.docentric.com/assets/plugins/discourse-voting-efaecaa7c03601357a43da8e0fed44452daaafb5d213cab42837d1accf20eb68.js.map: HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE
DevTools failed to load source map: Could not load content for https://ax.docentric.com/assets/plugins/discourse-presence-e575490133b5e948d5db094ba04f265c777e7d5003f1b418d1b7a38c8f64a317.js.map: HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE
DevTools failed to load source map: Could not load content for https://ax.docentric.com/assets/plugins/discourse-solved-be68360ae740ad69b2b4d48fbde314ac17a093b4f5256315469a13677501f9e4.js.map: HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE
DevTools failed to load source map: Could not load content for https://ax.docentric.com/assets/plugins/discourse-user-notes-d14c90e2d4da12a15f265abe04860d0b0e9f221ead5ee8cb9373d3972c79887a.js.map: HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE
DevTools failed to load source map: Could not load content for https://ax.docentric.com/assets/plugins/discourse-tooltips-3a1d33257615ab498afe95ba168c18d8548069649b07a0b8848eb1b9260ed44e.js.map: HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE
DevTools failed to load source map: Could not load content for https://ax.docentric.com/assets/plugins/discourse-narrative-bot-0b1e40d099d739cee23bbad45c2fb5eac1dcaaba028fdc9fa21b9e32930ec40b.js.map: HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE
DevTools failed to load source map: Could not load content for https://ax.docentric.com/assets/plugins/docker_manager-4ced9f9c7bda9ba563c04006dbb93828d43f2c7d5b533065717c5a63da77d5fc.js.map: HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE
DevTools failed to load source map: Could not load content for https://ax.docentric.com/assets/plugins/lazy-yt-9db193c8caacf2e3b3a24ed4c63699ad497c210f668f467d95380efd00982345.js.map: HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE
DevTools failed to load source map: Could not load content for https://ax.docentric.com/assets/plugins/poll-4b9592bd848c2a090591a9b6dda4eba9bf34ad150e4263b26416959ecfde02ad.js.map: HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE
DevTools failed to load source map: Could not load content for https://ax.docentric.com/assets/browser-update-eec13eb6f8386f18f10b5dd6ebb7a3598d28421bb796e539b91a7e4a4c5d4c08.js.map: HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE
DevTools failed to load source map: Could not load content for https://ax.docentric.com/assets/start-discourse-efa4e5abfbd1b50b5152ffbe64d5dcea9f7c33f766dcc6387e2711f0f2112148.js.map: HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE
DevTools failed to load source map: Could not load content for https://ax.docentric.com/assets/google-universal-analytics-v3-706f1d28f0a97f67a47515c96189277240ec4940d968955042066d7873fd1fe8.js.map: HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE

Try updating as you running an old version as well

<meta name="generator" content="Discourse 2.8.0.beta2 - https://github.com/discourse/discourse version 15320d432b3045ea4e094a21db6a081f98b8b879">

You might have a WAF enabled that blocks XSS attempts and substring is commonly used in the exploit syntax. If you’re using Cloudflare with WAF enabled that would be the cause.