서버에서 실행될 수 있는 파일을 실행되지 못하게 하는 방법
-> 파일경로를 감추기 위한 전략
-> 조건부 대응방안
-> SQLi 취약점이 존재한다면 경로노출 가능성이 있음
파일을 직접다운로드 하는 방식은 인가취약점이 발생 -> 경로 노출
ex) aaa.com/files/save/aaa.png
url 파라미터 값으로 데이터를 전송하여 경로를 추측하지 못하게함
url
aaa.com/download.php?fileid=123
fileid를 이용하여 DB를 조회하고 저장된정보를 이용
DB에는 fileid, 파일명, 파일이 저장된 경로가 있음
download.php
<?php
user확인코드 삽입
?>
user확인코드를 사용하여 fileid를 유추해도 파일조회 불가
프로필사진은 <img src=>로 구성되어있어서 경로노출 가능성 존재
Null Injection을 이용하면 가능
근본적인 해결방법
BLOB/CLOB이용
| BLOB | CLOB | |
|---|---|---|
| 정의 | 이진 데이터를 저장하는 데 사용되는 데이터 타입 | 대량의 문자 데이터를 저장하는 데 사용되는 데이터 타입 |
| 예시 | 텍스트가 아닌 이미지, 오디오, 비디오 파일 등과 같은 큰 크기의 이진 데이터 파일을 저장 | 문서, HTML 파일, XML 파일 등을 저장하는 데 적합 |
| 처리방식 | 바이너리 데이터를 직접 처리 | 텍스트 데이터를 직접 처리 |
개별의 파일저장서버를 이용
NAS서버에는 서버에서 실행될 여지가 있는 서버측 스크립트 언어를 설치x
normaltic study 15주차