안녕하세요. 위기의 코딩맨입니다.
오늘은 간단하게 XSS를 공격에 대해서 예방하는 방법을 알려드리도록 하겠습니다.
일단 XXS를 간단하게 설명드리자면, 사이트 간 스크립팅, 크로스 사이트 스크립팅 으로 많이 알려져있으며
웹 애플리케이션에서 다양하게 나오는 취약점 중, 하나입니다.
일반적인 기능을 통해서 악성 스크립트를 삽입하여 비정상적인 기능을 수행하도록 합니다.
주로 다른 웹 사이트와 정보를 교환하는 방식으로 사용이 돼서 사이트 간 스크립팅이라 불립니다.
너무나도 나쁜 사람들..
![](https://t1.daumcdn.net/keditor/emoticon/friends1/large/012.gif)
그래서 사이트마다 입력란, 다른 입력을 주고 받는 부분에
특수문자를 입력하지 못하게 하는 이유도 이러한 XSS 공격을 막기위한 이유입니다.
이러한 XSS방지를 도와주는 라이브러리가 html의 escape 함수입니다.
[ escape ]
작동 원리를 설명드리면
아래의 간단한 스크립트 문이 있습니다.
기본적으로 <script>로 묶여서 스크립트가 구성되어있습니다.
<script>alert("hi")</script>
스크립트에서 특수문자들을 웹 애플리케이션에서 보여지는 언어로 변환되어 적용됩니다.
예를들면 <, > 의 특수문자는 < 와 > 로 변환되어 문자열로 보여집니다.
그러나 웹 애플리케이션 화면에서는 문자열로 <, >로 보여집니다.
코드로 보여드리도록 하겠습니다.
import html
src = '<script>alert("hi")</script>'
print(src)
src_c = html.escape(src)
print(src_c)
src_c의 문자열에서 <, >와 "," 가 변환된 것을 확인할 수있습니다.
src를 그대로 사용되면 알림창 hi가 발생할 것이지만,
src_c를 사용하게되면 알림창이 발생하지 않고
웹 애플리케이션 상으로 <script>alert("hi")</script> 문자열이 보여지게 됩니다.
오늘은 html의 escape 함수를 활용하여 XSS공격을 방지할수 있는 방법을 간단하게 알아보았습니다.
XSS는 보안상의 문제에서 중요시 여겨지는 부분 중 하나임으로 개발하면서 신경을 잘 써줘야합니다.
다들 즐거운 개발을 하시기 바랍니다.
![](https://t1.daumcdn.net/keditor/emoticon/friends1/large/002.gif)
'Python' 카테고리의 다른 글
[We-Co] 외부 라이브러리 내부화 - 폐쇄망 Package Install with Python (0) | 2025.02.11 |
---|---|
[Python] pip란 무엇일까?? - 외부 라이브러리 설치 (0) | 2024.03.05 |
[OpenSSL] SSL 인증서를 설치하고 적용해보자! with ubuntu, Nginx (1) | 2024.02.27 |
[Python] 문자열 압축 - zlib 라이브러리를 활용해보자! (1) | 2024.02.26 |
[Python] 날짜 관리 - datetime 라이브러리를 사용해보자! (2) | 2024.02.19 |