28강 (활용) 보안(XSS)
우리가 만든 웹 애플리케이션에서 발생할 수 있는 보안적인 이슈는 어떤것이 있을 수 있는가 살펴보자.
XSS.html
<html><body>
<script>alert(1)</script>
</body></html>
스크립트 태크안의 자바스크립트 언어로 다른 사람들의 개인정보나 사이트를 팅키게 하거나 하는
짓을 저지를 수 있기 때문에
태그에서 쓰던 <,>꺽쇠를 문자 꺽쇠로 대체시켜버린다.
if 'id' in form:
pageId = form["id"].value
description = open('data/'+pageId, 'r').read()
description = description.replace('<', '<') # 태그에서 쓰는 <를 그냥 문자 <로 치환 <(less than)
description = description.replace('>', '>') # 태그에서 쓰는 >를 그냥 문자 >로 치환>(greater than)
update_link = '<a href="update.py?id={}">update</a>'.format(pageId)
delete_action = '''
<form action="process_delete.py" method="post">
29강 (활용) Pypi, 패키지 매니저 PIP
어떻게 하면 내가 만들지 않은 다른 사람의 코드를 부품으로 해서 빠르게
우리가 무언가를 만들어 나갈 수 있는가?
////////////////////////////////////////////////////////////
소프트웨어를 우리가 표현하는 다른 말 중에 하나가 패키지이다.
그리고 그 중에서 우리가 패키지란 말을 또 많이 쓰는 맥락은 우리가 만들고 있는 소프트웨어에 부품으로서
사용될 작은 소프트웨어 이러한 것들을 또 패키지란 표현을 많이 쓴다.
30강 (활용) Pypi, 패키지 매니저 PIP
이 바닥에서 부품은 우리가 지금까지 배웠던 print,listdir,format과 같은 함수들이다.
우리는 파이썬에서 제공하는 이 함수들을 부품으로 응용해서 컴퓨터가 기본적으로 제공하지
않는 새로운 기능을 만들수 있게 된다.
application이라는 말은 응용 활용이라는 뜻이 있는데 이렇게 기존의 기능을 응용해서
새로운기능을 만든다는 점에서 우리가 만든 것을 애플리케이션이라고 부른다.
이 바닥에서의 결합방법은 소위 문법(syntax)라고 부른다.
여러가지 문법들이 있지만 그 중에서 가장 중요한 것은 시간의 순서에 따라서 명령이 실행 된다는 것이다.
program이란 말은 시간의 순서에 따라서 일어나는 일들을 의미한다.
바로 이런 점에 착안해서 우리가 만든 것들을 프로그램이라고도 부른다.
즉 애플리케이션과 프로그램은 소프트웨어를 부르는 다른 표현이라고 할 수 있다.
응용을 했다는 점에서 애플리케이션, 시간의 순서에 따라서 동작한다는 점에서 프로그램.
그렇다면 API(application Programming Interface)는 무엇일까?
그것은 우리가 애플리케이션을 구현하기 위해서 시간의 순서대로 배치해야 할 기능들을 의미한다.
이를 테면 프린트 리스트dir 모맷과 같은 부품들은 파이썬이 내장하고 있는 api라고 할 수 있다.
우리는 이 api를 이용해서 파이썬 애플리케이션을 만들게 되는 것이다.
또 이런 부품을 프로그래밍해서 새로운 함수를 만들고 그 함수를 타인이 사용할 수 있도록 공개한다면
타인은 우리가 제공한 함수를 호출함으로써 새로운 애플리케이션을 만들 수 있게된다.
이때 우리가 제공한 함수가 api가 되는것이다
'Python > Today I learned' 카테고리의 다른 글
TIL#12 Print() (0) | 2021.05.13 |
---|---|
TIL#11 생활코딩 Python 수업을 마치며 (0) | 2021.05.12 |
TIL#09 생활코딩 Python 모듈,리팩토링 (0) | 2021.05.12 |
TIL#08 생활코딩 Python 함수 (0) | 2021.05.12 |
TIL#07 생활코딩 Python 18~22강 글목록 구현,form,수정,삭제 (0) | 2021.05.12 |