본문 바로가기

Laravel2

Laravel SQL Injection ( Version < 5.8.11) 개요 Laravel Framework는 SELECT Query에서 사용할 Columns을 입력 값을 통해 지정할 수 있습니다. JSON Data의 경우 addSelect() 함수를 통하여 빠르게 변환할 수 있으며, addSelect() 함수는 json_extract() 함수로 변환되어 쿼리에 사용됩니다. Blog::query() ->addSelect('title->en'); SELECT json_extract(`title`, '$."en"') FROM blogs; 분석 addSelect() 함수의 변환 과정에서는 Escape 되지 않기 때문에 SQL Injeciton 취약점이 발생할 수 있습니다. 만약 title->en 데이터 부분에 '#를 추가할 수 있다면 공격자가 직접 json_extract 함수를 .. 2020. 9. 22.
Laravel Framework 보안 관련 내용 정리 보안 관련 내용 Public 디렉토리 노출 최소화 및 설정 파일 숨김 기존의 PHP 웹 애플리케이션들은 구동에 필요한 설정 파일을 웹 서버에 위치 시키거나 절대 경로로 읽어들이는 경우가 많았습니다. 라라벨의 경우 구동에 필요한 설정 파일을 DocumentRoot와 격리하였고, php 직접 호출이 아닌 애플리케이션 라우팅을 통해 서비스를 제공하도록 설계되었으며, public 디렉토리에 단 하나의 PHP 파일만 존재함으로써 public 디렉토리와 설정 파일의 노출 및 .php 파일 직접 호출을 통한 공격 발생 가능성을 최소화 하였습니다. public 디렉토리 (Laravel Korea 설명) public 디렉토리는 애플리케이션에 진입하는 모든 request-요청들에 대한 진입점 역할과 오토로딩을 설정하는 i.. 2020. 9. 22.