tetratto/crates/app/src/sanitize.rs

28 lines
865 B
Rust

use ammonia::Builder;
/// Escape profile colors
pub fn color_escape(color: &str) -> String {
remove_tags(
&color
.replace(";", "")
.replace("<", "&lt;")
.replace(">", "%gt;")
.replace("}", "")
.replace("{", "")
.replace("url(\"", "url(\"/api/v0/util/ext/image?img=")
.replace("url('", "url('/api/v0/util/ext/image?img=")
.replace("url(https://", "url(/api/v0/util/ext/image?img=https://"),
)
}
/// Clean profile metadata
pub fn remove_tags(input: &str) -> String {
Builder::default()
.rm_tags(&["img", "a", "span", "p", "h1", "h2", "h3", "h4", "h5", "h6"])
.clean(input)
.to_string()
.replace("&lt;", "<")
.replace("&gt;", ">")
.replace("&amp;", "&")
.replace("</script>", "</not-script")
}