본문 바로가기

기초공부/WEB

[Flask]빠르게 시작하기 - 라우팅 모든 포스트 목록 라우팅 route() 데코레이터는 함수와 URL을 연결해준다. 아래는 기본적인 예제들이다 from flask import Flask app = Flask(__name__) @app.route('/') # 주소가 /일 때 def index() : return "index page" @app.route('/hello') # 주소가 /hello일 때 def hello() : return "hello world" if __name__=="__main__" : app.run() 변수 규칙 URL에 변수 부분을 추가하기 위해 다음과 같이 작성할 수 있다. from flask import Flask app = Flask(__name__) @app.route('/index/') # menu 위치에 값..
[Flask]빠르게 시작하기 - 디버그 모드 모든 포스트 목록 디버그 모드 run() 메소드는 로컬개발서버를 실행시키기에 좋지만 코드 변경 후에 수동으로 재시작해야한다. 그런 번거로운 방식을 개선하기 위해 디버그 모드를 지원한다. 서버는 코드 변경을 감지하고 자동으로 리로드하고, 문제가 발생하면 문제를 찾을 수 있도록 디버거를 제공한다. 디버깅을 활성화하는 방법에는 두 가지 있다. app.debug = True app.run() app.run(debug = True) * 주의 : 대화식 디버거가 forking 환경에서 동작되지 않음에도 불구하고 임의의 코드가 실행될 수 있다. 이런 점은 주요 보안 취약점이 될 수 있으므로 운영 환경에서는 절대 사용하지 말아야한다. 참고 Flask 문서 디버거로 작업하기
[Flask]빠르게 시작하기 - 기본 애플리케이션 모든 포스트 목록 설치하기 우선 설치하였다 기본 애플리케이션 우선 아래와 같이 작성하였다. cmd 창에서 실제로 실행해서 http://127.0.0.1:5000/ 페이지로 이동하면 다음과 같은 결과가 출력된다. 해석해보자. from flask import Flask # Flask class를 import 했다. # 이 클래스의 인스턴스가 WSGI(Web Server Gateway Interface) 어플리케이션이 된다. app = Flask(__name__) # Flask라는 객채를 생성하고 인자를 __name__을 입력한다. # 단일 모듈로 사용한다면, __name__을 인자로 사용해야 한다. # 어플리케이션으로 시작되는지, 모듈로 임포트 되는지에 따라 이름이 달라지기 때문이다. # 플라스크에서 템플릿..
SQL INJECTION 모든 포스트 목록 (관련 문제 풀 때마다 추가하여 정리할 것) SQL INJECTION SQL을 사용하여 웹사이트의 데이터베이스에 접근하는 기법 SQL INJECTION 기법 기본 방식 입력 폼에서 or 연산을 이용해 조건식을 참으로 만들어 데이터에 접근하는 방식이다. 예시 - LOS 1번 예를 들어 일반적으로 로그인을 하면 SELECT * FROM table WHERE id='yourID' and pw='yourPW' 쿼리문에 id와 pw 값을 전달하여 실행된다. 이 때 pw로 입력 하는 값 뒤에 'or 1=1과 같이 항상 참인 조건을 입력하면 최종적인 쿼리문은 SELECT * FROM table WHERE id = 'idexample' and pw='pwexaple'or 1=1이 된다. WHERE 조..
[PHP]Superglobals, $_SERVER 모든 포스트 목록 Superglobals 모든 지역에서 접근 가능한 내장함수이다. 함수나 메소드에서 변수에 접근하기 위해 global $variable;라고 선언할 필요가 없다.(정확한 내용은 밑의 사이트 참고) Superglobals는 다음과 같다. $GLOBALS $_SERVER $_GET $_POST $_FILES $_COOKIE $_SESSION $_REQUEST $_ENV $_SERVER header, paths, script locations 같은 배열 포함 정보이다. 이 배열의 엔트리는 웹서버에 의해서 생성되는데 반드시 생성될 것이라는 보장은 없다. 생략하거나 리스트로 제공하지 않을 수 있기 때문이다. $_SERVER의 요소는 다음과 같다.(일부만 적음) HTTP_USER_AGENT현재 페이..
[PHP]getenv 모든 포스트 목록 getenv 환경변수의 값을 반환합니다 Description getenv ( string $ varname, [, bool $local_only = FALSE] ) : string getenv( void ) : array Parameters varname : 변수, 모든 환경변수를 출력할 때만 생략할 수 있습니다 local_only : TRUE로 설정한다면 지역환경변수일 때만 반환합니다. +) 환경변수 목록 참고 : getenv
[PHP]쿠키cookie 모든 포스트 목록 쿠키 웹사이트에 접근할 때 서버에 의해 저장되는 값으로 사용자를 구별하기 위해 사용한다. 클라이언트에 저장하므로 보안에 취약하지만 서버에 부담을 줄일 수 있다. 쿠키 생성 setcookie(name, value, expire, path, domain, secure, htttponly) name : 생성할 쿠키 이름 value : 쿠키의 값 expire : default 0, 쿠키가 유지될 시간 설정(초단위), 입력이 없으면 브라우저가 닫히기 전까지 유효하다 path : 특정 위치에서만 사용가능하도록 설정 / : 전체 경로에서 사용될 때 입력 domain : 사용될 도메인 지정 secure : https에서만 시용가능하도록 설정, true or false 설정 httponly : http..
[JavaScript]eval 모든 포스트 목록 예시1 eval의 인자가'1'+'2'일 경우 12를 숫자로 입력 받는다. eval의 인자가 'n'+'u'+'m'일 경우 num의 값인 12를 입력 받는다. 예시2 answer은 i가 1부터 25일 때까지 'kk._'+i+'.value' 즉 ''kk._i.value' → kk._i.value의 값을 더한다. 참고 : eval참고1 eval참고2 eval참고3