When doing markdown to HTML, sanitize HTML

Closes #101
Closes #102
This commit is contained in:
Claudio Ortolina
2026-03-07 19:05:37 +00:00
parent 84ffcc720b
commit 52815bde2f
8 changed files with 44 additions and 0 deletions
+32
View File
@@ -1,5 +1,37 @@
defmodule MusicLibraryWeb.MarkdownTest do
use ExUnit.Case, async: true
alias MusicLibraryWeb.Markdown
doctest MusicLibraryWeb.Markdown
describe "to_html/1" do
test "strips script tags" do
result = Markdown.to_html("<script>alert('xss')</script>")
refute result =~ "<script>"
refute result =~ "</script>"
end
test "strips event handlers from tags" do
result = Markdown.to_html("<img src=x onerror=alert(1)>")
refute result =~ "onerror"
refute result =~ "alert"
end
test "preserves normal markdown formatting" do
result = Markdown.to_html("**bold**")
assert result =~ "<strong>bold</strong>"
end
test "preserves links" do
result = Markdown.to_html("[link](http://example.com)")
assert result =~ "<a"
assert result =~ "http://example.com"
assert result =~ "link</a>"
end
end
end