본문 바로가기

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.. 더보기
Python과 Flask를 활용한 웹 서버 구축 Flask는 Python으로 작성된 웹 프레임워크로 간단한 기능과 빠른 설치 및 사용이 장점이다. 물론 기능을 덧붙인다면 충분히 복잡한 웹 애플리케이션을 작성할 수 있지만 다른 라이브러리나 의존성을 강요하지 않기 때문에 가볍게 시작할 수 있다. 설치 Flask를 설치하는 방법은 단순히 pip install flask처럼 pip를 이용하면 된다. Flask는 Werkzeug와 Jinja라는 다른 파이썬 웹 프레임워크에 대한 래퍼에서 탄생했기 때문에 Flask를 설치하면 자동으로 이 두 프레임워크도 같이 설치된다. 이 모듈을 따로 임포트해서 사용할 필요는 없고 아래처럼 Flask 자체만 임포트하여 사용할 수 있다. from flask import Flask, escape, request app = Flask.. 더보기
고정된 배경화면 넣기, 투명도 조절, 색 필터 넣기 요즘 취미로 배우고 있는 웹 프론트엔드 수업에서 다음과 같은 설문지 폼을 작성해볼 기회가 있었다. 여기서 배경 이미지를 어떻게 구현할 것인가에 대해서 고민했었는데 이런저런 방법을 시도한 결과 아래처럼 나름대로 원하는 결과를 만들어낼 수 있었기에 그 과정을 포스팅해본다. 먼저 배경 이미지를 보면 특정 색조(예시에서는 파란색)로 씌인 것을 알 수 있다. 이를 구현하려면 배경 이미지의 opacity 속성을 조절하고 그 위에 컬러 필터같은 느낌으로 rgba()를 이용하여 조정된 알파값의 색을 씌워야 할 것이라 생각하고 진행하였다. 처음으로 생각한 방법은 전체 HTML 요소를 감싸는 div를 생성하여 해당 div의 background-image 속성에 이미지를 삽입 후 opacity 속성을 0.7 정도로 설정하는.. 더보기