반응형

php 10

리소스 직접 접근 차단하고 소스에서만 허용하기 (PHP + .htaccess)

출발점 이 글을 작성한 이유는 www.example.com/file/font.ttf 에 폰트가 저장되어 있고, 해당 url로 접근하면 폰트를 직접 접근하여 탈취할 수 있기 때문에 이를 방지하고 싶었습니다. 소스에서는 접근이 가능해야 하고, 외부에서 url을 통해 직접 접근하는 것은 막아야 했습니다. .htaccess 우선 직접 접근을 막는 방법은 간단합니다. 디렉토리가 file 이면 해당 디렉토리에 .htaccess에 아래 코드를 추가합니다. 만약 .htaccess가 없다면 새로 만들어서 추가합니다. Order Allow,Deny Deny from all 차단하고자 하는 확장자를 모두 추가합니다. PHP 이제 file을 읽어올 PHP소스를 작성합니다. 예를 들어 fileLoader.php 로 작성했습니다..

Programming/PHP 2023.11.23

MySQL/MariaDB :: 특정 날짜 사이의 년,월,주,일 Group By (with PHP)

특정 날짜 사이의 년,월,일 Group By 하는 포스팅은 꽤 많았지만, 특정 범위의 날짜만 구하는 것이 아니라, 넓은 범위의 날짜를 구한 후 Group By 하는 방식으로 되어 있었다. 나는 정확히 특정 범위의 날짜만 구해서 처리속도도 최소화 하고 싶었다. 기존에 사용했던 코드 select stat_date from ( select adddate('[시작날짜]',t4.i*10000 + t3.i*1000 + t2.i*100 + t1.i*10 + t0.i) stat_date from (select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 u..

cafe24 웹호스팅 서버 index 페이지 변경하기 (.htaccess, Apache, PHP)

cafe24 웹호스팅 서버를 사용하고 있는데, 도메인만 입력 시 접근되는 인덱스 페이지의 경로를 바꾸고 싶었습니다. 해당 방법은 서버에서 직접적으로 설정을 바꿀 수 없는 경우 활용해야 합니다. 서버에서 직접 설정을 바꿀 수 있는 경우는 이 방법을 사용하지 않는 것이 좋습니다. 첫 번째 방법 일반적 첫 번째 시도했던 방법은 redirect 방법입니다. if (defined("_INDEX_")) { header("Location: "이동경로"); return; } 기존 인덱스 페이지가 호출되는 부분 상단에 해당 코드를 추가합니다. 그누보드 예를 들어 그누보드를 사용한다면 아래와 같습니다.

PHP :: Cafe24 웹 호스팅 서버에서 SMTP 인증된 메일 발송하기

본 글은 Cafe24 웹 호스팅 서버에서 SMTP 인증된 메일을 발송하는 과정입니다. 꼭 Cafe24 웹 호스팅 서버 환경이 아니더라도 PHP로 SMTP 인증된 메일 발송이 필요하다면 3번부터 참고하시면 됩니다. 1. 무료 웹메일 신청 cafe24 호스팅센터에 로그인 후 아래 링크를 클릭해 무료 웹메일을 가입하세요. 카페24 호스팅센터/서버호스팅 - 무료웹메일서비스 (cafe24.com) [호스팅 관리 > 무료그룹웨어/웹메일 신청] 신청하기 클릭 후 "웹메일 관리자 비밀번호 등록" 란에 비밀번호를 입력하면 바로 웹메일 신청이 완료됩니다. 메뉴 찾기가 어렵거나 동영상으로 보고 싶으신 분은 아래 igotit 님의 동영상을 참고하세요. 웹메일 신청 동영상 2. 무료 웹메일 관리자 로그인 - 계정 확인 및 추가..

Programming/PHP 2022.08.13

PHP 문자열 출력 시 한글 깨지는 경우

개발환경이 PHP 7.4 미만 버전이라 mb_str_split 함수를 사용하지 못하는 경우입니다. @UTF-8 파일에서 문자열을 순서대로 출력하려고 했는데 한글이 깨지는 오류를 만나 해결하는 과정입니다. 한글 깨지는 오류 $word = "한글테스트"; for ($i=0; $i < strlen($word); $i++) { #echo $word[$i]. " "; echo substr($word, $i, 1). " "; } substr() 함수를 사용해도, 주석된 코드를 사용해도 모두 한글이 깨집니다. 한글이 포함된 문자열을 순차대로 출력하려고 할 때 가공하지 않고 그대로 출력할 때는 문제가 되지 않습니다. 그러나 문자열에서 출력할 문자가 한글일 경우 해당 문자와 연산을 하려고 하면 한글이 깨지는 현상이 발생..

Programming/PHP 2022.02.07

PHP 주말,공휴일 제외한 영업일(날짜) 구하기

공휴일 계산은 공공데이터포털의 한국천문연구원_특일 정보 API를 사용합니다. 공휴일 구하기 API 인증키 받기 공휴일을 구하기 위해 공공데이터포털의 한국천문연구원_특일 정보 API를 사용했다. 해당 API를 사용하기 위해서는 아래 링크에서 활용 신청을 해야 한다. 한국천문연구원_특일 정보 | 공공데이터포털 (data.go.kr) 활용 신청을 하면 하단에 일반 인증키를 받게 됩니다. 환경 또는 호출 조건에 따라 두 인증키를 적용하면서 구동되는 키를 사용하라고 합니다. 저는 일반 인증키(Encoding)을 사용했습니다. API로 공휴일 데이터 가져오기 function getHoliday($year,$month) { $key = "your API Key"; $param = &#39;ServiceKey=&#39..

Programming/PHP 2021.12.23

PHP 암호화된 압축파일 해제 후 다운로드

PHP 압축파일에 암호가 걸려있을 경우 압축파일 해제 후 압축파일 내의 파일들 다운로드 PHP 5.2 이상의 환경에서 사용 가능하다. 압축파일에 암호화를 설정하고 싶은 경우에는 링크(PHP 압축파일에 암호화 후 다운로드)를 참고하세요. 사용할 함수 이해하기 ZipArchive::open(filename, flag) : 압축파일을 연다. filename: 열려는 압축 파일의 이름 flag: 압축 파일 모드 (overwrite, create, readonly, excel, checkcons) ZipArchive::close : 열렸거나 새로 만든 압축파일을 닫는다. ZipArchive::setPassword(password) : 파일에 비밀번호를 설정한다. (암호를 부여/해제 할 때 모두 사용) passwo..

Programming/PHP 2021.12.20

PHP 압축파일에 암호화 후 다운로드

PHP 파일 다운로드 시 압축파일로 만들기 / 압축하는 파일에 암호 걸기. PHP 7.2 이상의 환경만 가능한 방법이다. (ZipArchive::setEncryptionName를 사용하기 위해서) 압축파일만 생성할 거라면(암호화 X) PHP 5.2 이상의 환경에서도 사용 가능하다. 압축파일 해제를 원하면 링크(PHP 압축파일 해제 후 다운로드)를 참고하세요. 사용할 함수 이해하기 ZipArchive::open(filename, flag) : 압축파일을 연다. filename : 열려는 압축 파일의 이름 flag : 압축 파일 모드 (overwrite, create, readonly, excel, checkcons) ZipArchive::close : 열렸거나 새로 만든 압축파일을 닫는다. ZipArchi..

Programming/PHP 2021.12.16

Apache + PHP :: 윈도우(Window) 연동하여 웹개발 시작하기

Apache 와 PHP를 연동하여 웹개발을 시작하기 위한 기초 개발환경을 설정하는 과정이다. 개발환경 : Window 10 64bit, Apache 2.4.51, PHP7.4 (7.4.26) Apache 설치 다운로드 경로로 이동 Apache VS16 binaries and modules download (apachelounge.com) 아파치 최신 버전 설치 자신의 운영체제에 맞는 Zip 파일을 다운로드 받으면 된다. 나는 Window 64비트 이므로 Apache 2.4.5 Wind64를 다운로드 한다. 압축 해제 후 "Apache24" 폴더만 원하는 경로로 이동 예) C:\\Program Files\\Apache24 PHP 설치 다운로드 경로로 이동 PHP For Windows: Binaries an..

Programming/PHP 2021.12.09

PHP :: 클라이언트의 접속 정보 상세하기 확인하기 (device, os, browser)

browscap 의 getBrowser() 활용하여 클라이언트 접속 정보를 확인하는 방법 browscap 을 활용하는 정상적인 방법 php_browscap.ini 또는 lite_php_browscap.ini 파일을 다운로드 특정 경로에 저장 후 php.ini 를 수정 (browscap = 저장경로/php_browscap.ini) 아파치 재시작 그러나 지금부터 설명할 방법은 php.ini 를 수정할 수 없는 상황(권한이 없거나 소스 수정만 가능한 경우)에 활용할 수 있는 방법이다. PHP 접속 정보 상세하게 확인하기 원하는 경로에 Browscap.php 파일 생성 원하는 경로에 cache 파일 생성 후 쓰기 권한 부여 예) cache/browscap\_cache.php browscap 활용하여 클라이언트 ..

Programming/PHP 2021.12.07
반응형