전체 글83 .htaccess 사용법 1. 권한 설정 및 접근 제어- .htaccess 파일을 사용하여 특정 디렉토리나 파일에 대한 접근을 제한한다.- 이를 통해서 보안을 강화할 수 있다. 예시 : 특정 ip만 접근 허용# 모든 사용자에게 접근을 차단하고 특정 ip만 허용한다.Order Deny, AllowDeny from allAllow from 123.456.789.000ㄴ 모든 ip 주소의 접근을 차단하고, 지정된 ip 주소 (123....) 만 해당 디렉토리에 접근할 수 있도록 설정한다.ㄴ 이를 통해서 특정 관리자나 팀만 특정 리소스에 접근할 수 있게 할 수 있다. 예시 : 기본 인증 설정# 이 디렉토리에 접근하기 전에 사용자 인증을 요구AuthType BasicAuthName "Restricted Area"AuthUserFil.. 2024. 9. 19. .htaccess 파일 .htaccess ( hypertext access ) - .htaccess 파일은 아파치와 같은 웹 서버에서 특정 디렉토리에 대해 설정을 적용하는 파일이다.- 이 파일을 사용하면 해당 디렉토리와 하위 디렉토리에 대해 서버 설정을 제어할 수 있다. - 예를 들어, 디렉토리에 대한 접근 권한을 설정하거나, URL을 재작성 REWRITE 하는 등의 작업을 수행할 수 있다.- 앞의 점.은 .숨김파일을 나타낸다. .htaccess 파일의 역할과 기능1. 권한 설정 및 접근제어- .htaccess 파일을 통해 특정 디렉토리나 파일에 접근할 수 있는 권한을 설정할 수 있다.- 이를 통해서 보안 설정을 강화하거나, 특정 사용자만 해당 디렉토리에 접근할 수 있도록 제한할 수 있다. 2. URL 재작성 - .hta.. 2024. 9. 19. php 호스팅 후에 404 처리 feat chatgpt php로 개발해보니까 편했던 점이 몇가지 있었다. 1. 페이지 간에 종속성이 없어지니까, 고려해야할 점이 많이 줄었다.더불어서 PHP는 stateless 하다. 요청 단위로 다 날려버리니까 이것 역시 개발할 때 고려해야하는 사항들을 많이 줄여준다. 2. 순수 html, css, 기본적인 UI 라이브러리 ( BULMA 같은..? ), JS를 쓰다보니까 뭔가 이것도 개발할 때 고려해야할 사항이 적어진다. 3. 데이터베이스 연결이 너무 편했다.타 프레임워크였으면, 데이터베이스 연결 시에 거쳐야하는 수많은 보일러플레이트 코드들을 여기서는 할 필요가 없었다. 4. 알려진 것과 다르게 은근히 보안적인 요소들이 들어가 있음태그들을 빼주는 pdo 메서드나pdo 데이터 페칭 플로우 자체가 XHR 공격과 같은 요소들을 고.. 2024. 9. 19. 트랜잭션 관리 트랜잭션 관리데이터베이스에서 여러개의 SQL 작업을 하나의 작업으로 묶어서 관리하는 기능이다. 이 때 트랜잭션은 원자성 atom 뭐시기, 일관성 consistency 뭐시기, 고립성 independent 뭐시기, 지속성 durability 뭐시기 의 특성을 가져야 하고 이를 ACID 특성이라고 부른다. MySQL에서 트랜잭션을 제어하는데 사용하는 주요 명령어로는 START TRANSACTION, COMMIT, ROLLBACK 이 있다. START TRANSACTION- 트랜잭션을 시작한다.- 이후 실행되는 쿼리들이 하나의 트랜잭션으로 묶여서 관리된다. COMMIT- 트랜잭션이 성공적으로 완료되었을 때, 데이터베이스에 영구적으로 반영한다.- COMMIT을 호출하기 전까지는 데이터가 실제로 저장되지 않는다... 2024. 9. 19. post restful api / 프리플라이트 / 왜 배포할 때 모든 도메인에서의 요청을 다 받으면 안될까 간단하게 이메일을 데이터베이스에 저장하는 API를 만들어보겠다..! 먼저 테이블을 다음과 같이 만들어준다. id INT AUTO_INCREMENT PRIMARY KEY,email VARCHAR(100) NOT NULL,createdat DATETIME NOT NULL 이렇게 3개만 넣자. 코드 먼저 살펴보자. 다음의 API는 이메일이 있는지 먼저 확인하고 있다면 409 오류 응답코드를 반환하고 없다면 INSERT 하는 것이다. 'Email is required']); }} else { http_response_code(404); echo json_encode(['message' => 'API not found']);}function get_reserved($email) { t.. 2024. 9. 19. validateStatus - axios php로 api를 짰다. 코드 중에 대충 이런 코드가 있다. $preQuery = " SELECT email FROM reserved_user WHERE email = :email "; $stmt = $pdo->prepare($preQuery); $stmt->bindParam(':email', $email); $stmt->execute(); $result = $stmt->fetch(PDO::FETCH_ASSOC); if (!empty($result)) { // 이미 존재하는 이메일일 경우 http_response_code(409); // 중복된 데이터 (H.. 2024. 9. 18. 접근한정자 public- 누구나 접근할 수 있다.- 컨트랙트 내의 다른 함수, 외부 컨트랙트 또는 계정이 호출할 수 있다. * 특징- 상태 변수에 적용하면, 자동으로 getter 함수가 생성된다.- 함수는 컨트랙트 내부와 외부에서 호출할 수 있다. uint public totalSupply; // 상태변수는 자동으로 getter를 생성한다.function myFunction() public{ // 누구나 호출 가능한 함수이다.} private- 오직 컨트랙트 내에서만 접근할 수 있다.- 상속받은 자식 컨트랙트도 접근할 수 없다. * 특징- 다른 컨트랙트나 외부 계정에서 호출할 수 없다.- 해당 컨트랙트 내에서만 접근 가능하다.uint private _totalSupply; // 이 컨트랙트 내에서만 접근 가능하다.. 2024. 9. 18. php자체에 대해서 알아보자 언어에 애정을 가지려면... 그 언어에 대해서 잘 알아야 한다고 생각한다.. ( 문법 말고... ) ( 진짜 그 언어에 대해서... ) 원래 PHP의 약자는 Personal Home Page Tools 였음. 그 말대로 진짜 자기 페이지 만들때 쉽게 쓰라고 나온거라서 문법이 쉬웠다고 들음. 지금은 PHP : Hypertext Preprocessor의 재귀약자를 쓴다고 한다. 하이퍼텍스트 전처리기 근데 php를 검색해보면, 다른 언어와는 다르게 욕이 되게 많다. (?) 그래서 나도 php가 뭐하는 언어인지는 대충 알고 있었지만 (next.js가 사실 php랑 비스무리한 역할이라고 들었다), 욕 먹는 언어라는 건 확실히 알고 있었다. 근데 tiobe 2024를 보면 php는 꽤 상위에 있다.매년 개발자들이.. 2024. 9. 12. inc 파일 ... 대신에? inc 파일- 헤더 정보를 참조하기 위해 소프트웨어 프로그램의 소스코드에서 사용하는 포함 파일이다.- .h 파일 형식과 유사하다. - 여러파일에 똑같은 소스가 들어가 있을 경우에 소스의 중복을 줄이기 위해서 만든 파일이다.- 소스의 최적화, 유지보수 효율 증대 등의 효과가 있음.- 주로 DB연결 / 호출 부분에서 가장 많이 쓰인다. php에서 사용될 경우 INC 파일 사용의 단점도 존재한다.- php 파일이 inc 파일을 참조하고 서버가 .inc 파일을 구문분석하도록 구성되지 않은 경우가 일반적이다.- 이 경우에 사용자는 URL 디렉토리를 방문하여, .inc 파일에서 php 소스코드를 볼 수 있다.- 따라서 php에서 inc파일을 포함 파일로 사용할 때 주의해야 한다. - 사용자들이 URL을 직접 만문해.. 2024. 9. 12. PDO를 활용한 데이터베이스 연동 // PDO 객체 생성$pdo = new PDO("mysql:host=localhost;dbname=DB이름", "유저아이디", '유저비번');// 에러 모드 설정$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);// SQL 쿼리 작성$sql = "SELECT service_name, memo, userid, pw, updated FROM MyAccounts.accounts;";// 쿼리 준비$statements = $pdo->prepare($sql);// 쿼리 실행$statements->execute();while($row = $statements->fetch(PDO::FETCH_ASSOC)) { $serviceName = $row['s.. 2024. 9. 11. 이전 1 2 3 4 5 6 7 ··· 9 다음