[python] 웹 서버에 접속 제한 기능 추가하기
이번에는 Python으로 작성된 웹 서버에 접속을 제한하는 기능을 추가하는 방법에 대해 알아보겠습니다.
목차
필요한 모듈 설치하기
웹 서버에 접속 제한 기능을 추가하기 위해 우선 flask
모듈을 설치해야 합니다. 아래의 명령을 사용하여 설치할 수 있습니다.
pip install flask
IP 주소 제한 기능 추가하기
Python Flask를 사용하여 웹 서버를 구축할 때, 특정 IP 주소에서만 접속할 수 있도록 제한할 수 있습니다. 다음의 코드 예시를 참고하여 구현해보세요.
from flask import Flask, request
app = Flask(__name__)
@app.before_request
def check_ip():
allowed_ips = ['127.0.0.1'] # 허용할 IP 주소 목록
if request.remote_addr not in allowed_ips:
return 'Unauthorized', 401
@app.route('/')
def index():
return 'Welcome to the restricted web server!'
if __name__ == '__main__':
app.run()
위 코드에서 allowed_ips
리스트에 접속을 허용할 IP 주소를 추가하면 됩니다. 허용되지 않은 IP 주소에서 접속 시, 해당 클라이언트는 “Unauthorized” 메시지와 함께 401 오류를 받게 됩니다.
User-Agent 제한 기능 추가하기
User-Agent는 웹 브라우저나 다른 HTTP 클라이언트가 서버로 보내는 요청 헤더 값입니다. 이를 활용하여 특정 User-Agent에서의 접속을 제한할 수 있습니다. 다음의 코드 예시를 참고하여 구현해보세요.
from flask import Flask, request
app = Flask(__name__)
@app.before_request
def check_user_agent():
denied_user_agents = ['Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3']
user_agent = request.headers.get('User-Agent')
if user_agent in denied_user_agents:
return 'Unauthorized', 401
@app.route('/')
def index():
return 'Welcome to the restricted web server!'
if __name__ == '__main__':
app.run()
denied_user_agents
리스트에 접속을 제한할 User-Agent 값을 추가하면 됩니다. 해당 User-Agent에서의 접속 시, 클라이언트는 “Unauthorized” 메시지와 함께 401 오류를 받게 됩니다.
참고 자료
- Flask 공식 문서: http://flask.pocoo.org/docs/