WEB2 - Python

활용 - 보안(XSS)

수업소개

보안 공격의 사례 중 하나인 XSS(Cross-Site Scripting)을 살펴봄으로서 보안이 무엇인가를 체험해보고 Python에서 이 문제를 해결하는 방법을 알아봅니다. 

 

 

강의

 

 

소스코드

변경사항

index.py

#!/usr/local/bin/python3
print("Content-Type: text/html")
print()
import cgi, os, view

form = cgi.FieldStorage()
if 'id' in form:
    pageId = form["id"].value
    description = open('data/'+pageId, 'r').read()
    description = description.replace('<', '&lt;')
    description = description.replace('>', '&gt;')
    update_link = '<a href="update.py?id={}">update</a>'.format(pageId)
    delete_action = '''
        <form action="process_delete.py" method="post">
            <input type="hidden" name="pageId" value="{}">
            <input type="submit" value="delete">
        </form>
    '''.format(pageId)
else:
    pageId = 'Welcome'
    description = 'Hello, web'
    update_link = ''
    delete_action = ''
print('''<!doctype html>
<html>
<head>
  <title>WEB1 - Welcome</title>
  <meta charset="utf-8">
</head>
<body>
  <h1><a href="index.py">WEB</a></h1>
  <ol>
    {listStr}
  </ol>
  <a href="create.py">create</a>
  {update_link}
  {delete_action}
  <h2>{title}</h2>
  <p>{desc}</p>
</body>
</html>
'''.format(
    title=pageId,
    desc=description,
    listStr=view.getList(),
    update_link=update_link,
    delete_action=delete_action))

 

댓글

댓글 본문
  1. scientist
    220819
  2. 윤윤윤윤윤
    it's fun!
  3. labis98
    2022.02.28 좋은 강의 한번 더 들어요~~~!
  4. pmxsg
    2022.02.07
  5. labis98
    20220120 좋은 강의 항상 감사합니다.
  6. 2021.09.11 감사합니다
  7. 장수혁
    아마 한글 사용해서 그러실 거에요. 확인해보세요!!
    대화보기
    • 이택진
      210521
    • 초딩 개발자
      2021/05/10
    • jeisyoon
      2021.04.11 보안(XSS) - OK
    • 박민지
      2021.01.17
    • cgoing
      cgoing / 2020.10.04
    • 로빈
      xss흥미롭습니다
    • 매리미
      어떻게 변수 description 에 메소드 replace가 오는 거죠?
    • 악어
      2020-03-28 완료
    • 스티븐잡숴
      완료
    • import.위드
      좋은강의 감사합니다!
    • 하까
      자바스크립트 코드를 이용해서 create 할 때 alert창이 뜨지도 않고 다른 링크 사이트로 이동되지도 않으면 어디서 문제가 난걸까요? ㅠㅠ process_create.py 와 index.py코드를 모두 확인해봤는데도 모르겠네요
    • 쑤우
      수강완료. 감사합니다.
    • 굼벵이
      완료
    • 20191007 Ted 완료!
    • JuicyFresh
      감사합니다.
    • Seankim
      xss
    graphittie 자세히 보기