본문 바로가기

S-DEV/다크웹

간단한 Flask 웹 서버

728x90

• Flask 

파이썬 기반으로 작성된 마이크로 웹 프로임워크이다.

간단한 웹 사이트, 간단한 API 서버를 만들 수 있다.

from flask import Flask, request
#웹 프레임워크 모듈 로드

app = Flask(__name__)
# app 변수에 Flask 모듈을 선언

@app.route("/hcm",methods={"GET","POST"})

def hcm():
    print(request)
    return "hcm", 200


if __name__=="__main__":
#메인 함수이며, 파이썬 내장 함수 => __name__ 에 의해 시작
    app.run(debug=True,host="0.0.0.0",port=8081)

 

- 실습 1

import requests

# Header
headers ={
	"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0",
}

# Body 
data = {
	"data":Hello,
    "data1":World
}

# 요청보내기
response = request.post("http://127.0.0.1:8080/hcm",headers=headers,data=data,verify=False)

#인증서 오류 : verify=False

 

- 실습 2 

import os
proxy = '127.0.0.1:8180'
os.environ['HTTP'] = proxy
os.environ['HTTPS'] = proxy

# allow_redirects False 에 따른 http 요청 헤더 변화 파악

# requests 모듈 임포트
import requests
# warnings 에러 제어를 위한 urllib3 임포트
import urllib3
# warnings 에러 disable
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

# 크롬 브라우저 설정
headers ={
    "User-Agent" : "Mozilla/5.01 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"
}

# 서버 응답코드가 302 일시 리다이렉션 자동 해제
response = requests.get("URL 주소", headers=headers, allow_redirects=False)
if response.status_code == 302:
    # Referer 값 설정
    headers["Referer"] = "이전 URL 주소"
    # 302 Location 값으로 서버에 재요청 
    response2 = requests.get(response.headers["Location"], headers=headers, allow_redirects=False, verify=False)
response = requests.get("URL 주서", headers=headers, allow_redirects=True)

Referer 값이 중요

> Referer 값이 없을 경우에 해당 페이지에 접근이 안 되는 경우가 있다. 즉, Referer를 체크하는 웹 페이지가 존재한다.

 

'S-DEV > 다크웹' 카테고리의 다른 글

다크웹  (0) 2023.08.17
데이터베이스  (0) 2023.08.13
Web Crowlling - 1  (0) 2023.08.07
웹 크롤링 기본 개념  (0) 2023.08.05
pyautogui 사용하기  (0) 2023.07.25