ThinkPHP에서의 데이터 조작: 삽입, 삭제, 수정, 조회

1. 데이터 객체 생성 폼을 통해 제출된 데이터를 기반으로 모델 객체를 생성할 수 있다. $userModel = M('User'); // User 모델 인스턴스화 $userModel->create(); // POST 데이터를 기반으로 자동으로 데이터 객체 생성 2. 데이터 삽입 새로운 레코드를 데이터베이스에 추가하려면 add() 메서드를 사용한다. 이 메서드는 삽입된 행의 기본 키 값을 반환한다. $userModel ...

7월 10일 05:42에 게시됨

LAMP 환경 설정 및 웹 애플리케이션 배포

LAMP 개요 LAMP는 동적 웹 사이트 또는 웹 애플리케이션을 구축하기 위한 오픈소스 소프트웨어 스택의 약자입니다. 다음은 주요 구성 요소입니다: Linux - 운영 체제로서, 보통 CentOS나 Ubuntu와 같은 리눅스 배포판을 사용합니다. Apache - HTTP 요청을 처리하고 응답하는 웹 서버 역할을 합니다. MySQL/MariaDB - 데이터를 저장하고 관리하는 릴레이션형 데이터베이스 ...

7월 9일 21:34에 게시됨

PHP 오픈소스 유지보수와 커뮤니티 구축: 고립에서 생태계로

1. 오픈소스 프로젝트 초기화: 기반 다지기 오픈소스는 단순히 코드를 공개하는 것이 아니라 지속 가능한 생태계를 구축하는 행위입니다. 초기 설정이 잘못되면 법적 위험이나 기술적 혼란을 초래할 수 있습니다. 잘못된 사례: 라이선스 없이 상용 SDK를 GitHub에 푸시한 개발자. // 사용자가 바로 복제하여 사용하다 법적 문제에 봉착 class PaymentGateway { priva ...

7월 8일 18:35에 게시됨

PHP Composer: 로컬에서 개발된 확장 패키지 통합

로컬 PHP 확장 패키지 개발 1. 확장 패키지 디렉토리 구조 생성 hoo-tool 디렉토리를 생성하고 그 안에 src 디렉토리를 만듭니다. hoo-tool 디렉토리에서 다음 명령어를 실행합니다: composer init 명령 실행 후 composer.json 파일의 내용은 다음과 같습니다: { "name": "hoo/tool", "description": "hoo Tool kit ...

7월 8일 16:41에 게시됨

파일 업로드 우회 기법

파일 업로드 시 보안 제한을 우회하는 다양한 방법들을 소개합니다. 여기서는 PHP 웹셸을 예시로 사용하겠습니다. 1. 프론트엔드 JS 파일 확장자 제한 웹 페이지에서 JavaScript를 통해 특정 확장자만 업로드할 수 있도록 제한하는 경우: JS 코드의 파일 확장자 검사를 비활성화합니다. 허용된 형식으로 파일을 업로드한 후, 패킷을 잡아 filename을 스크립트 형식으 ...

7월 4일 21:29에 게시됨

Hyperf HTTP 서버 부팅 과정 분석

Hyperf 프로젝트를 생성한 후 터미널에서 php bin/hyperf.php start 명령을 실행하면, 잠시 후 워커 프로세스가 시작되고 HTTP 서버가 9501 포트에서 대기 중이라는 로그가 출력된다. [INFO] Worker#3 started. [INFO] Worker#1 started. [INFO] Worker#2 started. [INFO] Worker#0 started. [INFO] HTTP Server listening at 0.0.0.0:9501 브라우저에서 http:// ...

7월 4일 20:06에 게시됨

PHP CAPTCHA 생성 클래스 구현

이미지 기반 CAPTCHA 생성 클래스를 구현하여 웹 폼 보안을 강화할 수 있습니다. GD 라이브러리를 활용한 PHP 구현 예시입니다. CAPTCHA 클래스 구조 <?php session_start(); class CaptchaGenerator { private $charSet = 'ABCDEFGHJKLMNPQRSTUVWXYZabcdefghjkmnpqrstuvwxyz23456789'; private $captchaText; private $textLength = 4; private $imgW ...

7월 3일 00:41에 게시됨

PHP와 센서 네트워크를 위한 동적 로드 밸런싱 아키텍처 및 알고리즘 구현

센서 네트워크 로드 밸런싱의 핵심 과제 대규모 무선 센서 네트워크(WSN)에서 노드는 주로 배터리로 구동되며 접근이 어려운 환경에 배치됩니다. 이로 인해 에너지 효율성은 시스템 설계의 최우선 순위가 됩니다. 트래픽이 불균형하게 분배되면 특정 노드의 에너지가 조기에 고갈되어 네트워크 홀(Hole)이 발생하고, 전체 데이터 전송의 연결성과 신뢰성이 저하됩니다. 에 ...

6월 30일 21:29에 게시됨

ThinkPHP 프레임워크 프런트엔드 동적 유효성 검사 통합

웹 애플리케이션에서 사용자 경험을 향상시키고 데이터 무결성을 보장하기 위해 프런트엔드 유효성 검사는 필수적인 부분입니다. ThinkPHP 프레임워크는 강력한 모델 기반의 유효성 검사 기능을 제공하지만, 기본적으로 이 기능은 protected 접근 제어자로 보호되어 있어 컨트롤러나 뷰에서 직접 호출하기 어렵습니다. 이 문서에서는 ThinkPHP의 모델 유효성 검사 로직을 ...

6월 29일 21:02에 게시됨

PHP 약타입 비교 연산의 동작 원리와 보안 우회 기법

서론 PHP 의 동적 타입 특성은 개발 편의성을 제공하지만, 특정 상황에서는 예상치 못한 보안 취약점을 야기할 수 있습니다. 특히 값의 비교 연산 과정에서 일어나는 암묵적인 타입 캐스팅 현상은 웹 애플리케이션에서 인증 우회나 입력값 검증 무효화 등의 문제로 활용되곤 합니다. 본 글에서는 이러한 느슨한 비교(Loose Comparison) 로직이 어떻게 작동하는지 기술적으 ...

6월 28일 20:31에 게시됨