fix(security): add SRI to jQuery CDN, escape chat ID, use server-side hostname
- Add integrity/crossorigin attributes to jQuery 3.6.0 CDN script
- Use | int filter on zammad_chat_id to prevent XSS
- Replace request.headers.get('host') with settings.external_hostname
for canonical URL and Open Graph tags to prevent host-header injection
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
This commit is contained in:
@@ -33,6 +33,7 @@ async def help_center(request: Request):
|
|||||||
"help.html",
|
"help.html",
|
||||||
{
|
{
|
||||||
"request": request,
|
"request": request,
|
||||||
|
"external_hostname": settings.external_hostname,
|
||||||
"zammad_url": settings.zammad_url,
|
"zammad_url": settings.zammad_url,
|
||||||
"zammad_chat_enabled": settings.zammad_chat_enabled,
|
"zammad_chat_enabled": settings.zammad_chat_enabled,
|
||||||
"zammad_chat_id": settings.zammad_chat_id,
|
"zammad_chat_id": settings.zammad_chat_id,
|
||||||
|
|||||||
@@ -6,13 +6,13 @@
|
|||||||
<meta name="description" content="DocuElevate Help Center – learn how to upload, process, and route your documents automatically. Get started with sources, destinations, workflows, and integrations.">
|
<meta name="description" content="DocuElevate Help Center – learn how to upload, process, and route your documents automatically. Get started with sources, destinations, workflows, and integrations.">
|
||||||
<meta name="keywords" content="DocuElevate, help, support, document processing, OCR, cloud storage, workflow automation, SaaS">
|
<meta name="keywords" content="DocuElevate, help, support, document processing, OCR, cloud storage, workflow automation, SaaS">
|
||||||
<meta name="robots" content="index, follow">
|
<meta name="robots" content="index, follow">
|
||||||
<link rel="canonical" href="https://{{ request.headers.get('host', 'app.docuelevate.com') }}/help">
|
<link rel="canonical" href="https://{{ external_hostname }}/help">
|
||||||
|
|
||||||
<!-- Open Graph -->
|
<!-- Open Graph -->
|
||||||
<meta property="og:title" content="Help Center – DocuElevate">
|
<meta property="og:title" content="Help Center – DocuElevate">
|
||||||
<meta property="og:description" content="Everything you need to get started with DocuElevate: upload documents, automate workflows, and connect your favourite cloud storage.">
|
<meta property="og:description" content="Everything you need to get started with DocuElevate: upload documents, automate workflows, and connect your favourite cloud storage.">
|
||||||
<meta property="og:type" content="website">
|
<meta property="og:type" content="website">
|
||||||
<meta property="og:url" content="https://{{ request.headers.get('host', 'app.docuelevate.com') }}/help">
|
<meta property="og:url" content="https://{{ external_hostname }}/help">
|
||||||
|
|
||||||
<!-- Structured data (JSON-LD) for FAQ rich results -->
|
<!-- Structured data (JSON-LD) for FAQ rich results -->
|
||||||
<script type="application/ld+json">
|
<script type="application/ld+json">
|
||||||
@@ -479,7 +479,9 @@
|
|||||||
{% block scripts %}
|
{% block scripts %}
|
||||||
{% if zammad_url and zammad_form_enabled %}
|
{% if zammad_url and zammad_form_enabled %}
|
||||||
<!-- Zammad Feedback Form -->
|
<!-- Zammad Feedback Form -->
|
||||||
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
|
<script src="https://code.jquery.com/jquery-3.6.0.min.js"
|
||||||
|
integrity="sha384-vtXRMe3mGCbOeY7l30aIg8H9p3GdeSe4IFlP6G8JMa7o7lXvnz3GFKzPxzJdPfGK"
|
||||||
|
crossorigin="anonymous"></script>
|
||||||
<script id="zammad_form_script" src="{{ zammad_url }}/assets/form/form.js"></script>
|
<script id="zammad_form_script" src="{{ zammad_url }}/assets/form/form.js"></script>
|
||||||
<script>
|
<script>
|
||||||
$(function() {
|
$(function() {
|
||||||
@@ -501,7 +503,7 @@ $(function() {
|
|||||||
new ZammadChat({
|
new ZammadChat({
|
||||||
fontSize: '12px',
|
fontSize: '12px',
|
||||||
flat: true,
|
flat: true,
|
||||||
chatId: {{ zammad_chat_id }},
|
chatId: {{ zammad_chat_id | int }},
|
||||||
title: '<strong>Chat</strong> with us!'
|
title: '<strong>Chat</strong> with us!'
|
||||||
});
|
});
|
||||||
})();
|
})();
|
||||||
|
|||||||
Reference in New Issue
Block a user