크로스 사이트 스크립팅(XSS)이란 무엇일까요? 바로 이렇게 악의적으로 해커가 어떠한 게시판에 적어 놓았을때 해당 스크립트가 실행되며 사용자들의 컴퓨터에 악영향을 미치는 것을 말합니다. 비슷하게 알려진 CSRF는 사용자의 인증된 세션을 통한 공격이고 XSS는 세션없이도 가능하다는 점이 다릅니다.
(원래 CSS였으나 이건 Cascading Style Sheets와 중복되서 XSS로 됬다고 합니다. )
Ex)
<script>alert("우헤헤 악성코드를 발동시키는 스크립트다!");</script>
<img src="#" onerror="this.src='이 url로 이동하면 니 정보가 빠지는 url이야!'"/>
해결방법
< → <
> → >
" → "
' → '
evaluation = evaluation.replace("<", "<").replace(">", ">");
evaluation = evaluation.replace("'", """).replace('"', ''');
Java 코드
public static string ConvertOutputValue(string pValue)
{
pValue = pValue.Replace("&", "&");
pValue = pValue.Replace("<", "<");
pValue = pValue.Replace(">", ">");
pValue = pValue.Replace(""", "\"");
pValue = pValue.Replace("'", "'");
pValue = pValue.Replace("/", "\\");
pValue = pValue.Replace(" ", " ");
pValue = pValue.Replace("<br />", "\n");
return pValue;
}
참조 : https://useful-coding-dictionary.tistory.com/entry/Cross-Site-Scripting-XSS
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=jhc9639&logNo=220923970564
'게으른 개발자의 끄적거림' 카테고리의 다른 글
JavaScript Ajax 초간단 예제 (0) | 2023.05.26 |
---|---|
Java 암호화 복호화 간단 코드(feat. AES) (0) | 2023.05.24 |
AES 256 암호화, 복호화 방법 (0) | 2023.05.22 |
JSTL 설명 및 사용 방법 (0) | 2023.05.21 |
이클립스 자주 쓰는 단축키 모음 (0) | 2023.05.18 |