28강 (활용) 보안(XSS)

 

 

변경사항

 

 

우리가 만든 웹 애플리케이션에서 발생할 수 있는 보안적인 이슈는 어떤것이 있을 수 있는가 살펴보자.

 

 

XSS.html

<html><body>
&lt;script&gt;alert(1)&lt;/script&gt;
</body></html>

 

스크립트 태크안의 자바스크립트 언어로 다른 사람들의 개인정보나  사이트를 팅키게 하거나 하는
짓을 저지를 수 있기 때문에 

태그에서 쓰던 <,>꺽쇠를  문자 꺽쇠로  대체시켜버린다.

 

 

 

if 'id' in form:
    pageId = form["id"].value
    description = open('data/'+pageId, 'r').read()
    description = description.replace('<', '&lt;')   # 태그에서 쓰는 <를 그냥 문자 <로 치환 &lt;(less than)
    description = description.replace('>', '&gt;')  # 태그에서 쓰는 >를 그냥 문자 >로 치환&gt;(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가 되는것이다

 

+ Recent posts