Skip to content

Commit 8ad2460

Browse files
authored
Merge pull request #94 from Team-INSERT/hotfix/xxs
XSS공격 방어
2 parents 50f25a9 + 30495af commit 8ad2460

File tree

3 files changed

+14
-1
lines changed

3 files changed

+14
-1
lines changed

src/components/atoms/CustomViewer.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import React from "react";
22
import MDViewer from "@uiw/react-markdown-preview";
3+
import { getXSSContent } from "@/helpers";
34

45
interface MDViewerPropsType {
56
content?: string;
@@ -8,7 +9,7 @@ interface MDViewerPropsType {
89
const CustomViewer = ({ content }: MDViewerPropsType) => {
910
return (
1011
<MDViewer
11-
source={content}
12+
source={getXSSContent(content)}
1213
wrapperElement={{
1314
"data-color-mode": "light",
1415
}}

src/helpers/getXSSContent.helper.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
const getXSSContent = (content?: string) => {
2+
if (content)
3+
return content
4+
.replaceAll("<style>", "")
5+
.replaceAll("</style>", "")
6+
.replaceAll("<script>", "")
7+
.replaceAll("</script>", "");
8+
return content;
9+
};
10+
11+
export default getXSSContent;

src/helpers/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,4 @@ export { default as getTimetableType } from "./getTimetableType.helper";
1313
export { default as getDay } from "./getDay.helper";
1414
export { default as getClassName } from "./getClassName.helper";
1515
export { default as getMeisterChapter } from "./getMeisterChapter.helper";
16+
export { default as getXSSContent } from "./getXSSContent.helper";

0 commit comments

Comments
 (0)