웹/Back-End 2

PHP의 SQL Injection 방지 대책

공부를 하다 보면 LoS든 Webhacking.kr이든 대부분의 워게임 문제들은 PHP와 MySQL로 작성되어 있다. 이는 PHP가 (개발자가 신경 쓰지 않는다면) 특히 보안에 취약한 웹 서버 언어라는 것을 증명하면서도 MySQL과 같이 많이 쓰이고 접하기 쉽기 때문에 아직까지 사용되는 게 아닐까 생각한다. 그런 PHP에서도 이런 취약한 언어라는 오명을 벗기 위해 다양한 방지책들을 제공하고 있는데 이를 이번 포스트에서 실습해보겠다. 실습 환경의 PHP는 8, MySQL은 MariaDB 10.4.17 버전이다. PHP 5나 PHP 7 때와는 달리 PHP 8 버전이 되면서 mysqli_real_escape_string() 같은 함수는 사라졌고 이제 mysqli 클래스를 사용하도록 강제되는 것 같다. 최신 P..

웹/Back-End 2021.01.16

Python과 Flask를 활용한 웹 서버 구축

Flask는 Python으로 작성된 웹 프레임워크로 간단한 기능과 빠른 설치 및 사용이 장점이다. 물론 기능을 덧붙인다면 충분히 복잡한 웹 애플리케이션을 작성할 수 있지만 다른 라이브러리나 의존성을 강요하지 않기 때문에 가볍게 시작할 수 있다. 설치 Flask를 설치하는 방법은 단순히 pip install flask처럼 pip를 이용하면 된다. Flask는 Werkzeug와 Jinja라는 다른 파이썬 웹 프레임워크에 대한 래퍼에서 탄생했기 때문에 Flask를 설치하면 자동으로 이 두 프레임워크도 같이 설치된다. 이 모듈을 따로 임포트해서 사용할 필요는 없고 아래처럼 Flask 자체만 임포트하여 사용할 수 있다. from flask import Flask, escape, request app = Flask..

웹/Back-End 2020.12.28