본문 바로가기

Language12

php 호스팅 후에 404 처리 feat chatgpt php로 개발해보니까 편했던 점이 몇가지 있었다. 1. 페이지 간에 종속성이 없어지니까, 고려해야할 점이 많이 줄었다.더불어서 PHP는 stateless 하다. 요청 단위로 다 날려버리니까 이것 역시 개발할 때 고려해야하는 사항들을 많이 줄여준다. 2. 순수 html, css, 기본적인 UI 라이브러리 ( BULMA 같은..? ), JS를 쓰다보니까 뭔가 이것도 개발할 때 고려해야할 사항이 적어진다. 3. 데이터베이스 연결이 너무 편했다.타 프레임워크였으면, 데이터베이스 연결 시에 거쳐야하는 수많은 보일러플레이트 코드들을 여기서는 할 필요가 없었다. 4. 알려진 것과 다르게 은근히 보안적인 요소들이 들어가 있음태그들을 빼주는 pdo 메서드나pdo 데이터 페칭 플로우 자체가 XHR 공격과 같은 요소들을 고.. 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.
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.
간단한 프로파일링 예시 2024. 9. 11.
캐싱 예시 2024. 9. 11.
해시 테이블 사용하기 몇가지 볼 것들 1. globalphp에서는 기본적으로 함수 내에서 정의되지 않은 변수는 함수 외부의 변수에 접근할 수 없다.이를 해결하기 위해서 global 키워드를 사용하여 함수 내부에서 함수 외부에 선언된 전역변수를 사용할 수 있다.global 키워드는 php에서 변수를 함수 내부에서 사용할 수 있도록 해준다. 2. isset값이 있는지 체크한다. 정확히는 null 이 아닌지를 체크한다.null 이 아니면 ( 값이 있다면 ) true 리턴없으면 false 리턴 2024. 9. 11.
폼 처리 - XSS 공격 폼은 HTML의 요소를 사용하여 작성됩니다. 폼은 사용자들로부터 입력 받을 필드들을 포함합니다. 예를 들면 이라던지 등을 예시로 들 수 있습니다.다양한 형태가 있습니다. 이런 폼을 통해서 사용자로부터 입력받은 데이터를 서버에 전달하여 서버가 처리할 수 있도록 하는데 주로 2가지 방식을 사용합니다.  바로 GET과 POST 입니다.각각 용도와 사용법이 다릅니다.  먼저 GET 방식부터 알아볼까요? GET 방식은 데이터를 URL의 쿼리 스트링에 데이터를 포함해서 서버에 전송합니다.그러나 보안에 취약하고 데이터가 URL에 그대로 노출되기 때문에 민감한 정보를 전송할 때는 적합하지 않으나 최근에 보니 이런 영상도 있더라구요.  "상남자는 URL 따위 쓰지 않는다"...워낙 유명한 분이 만든 영상이라서 한번 .. 2024. 9. 11.
폼 처리 "; } }}?> 로그인 "> 사용자 이름: 비밀번호:  먼저 생소한 표현 먼저 잡고 가자.  첫번째!$_SERVER 이건 무엇인가?!- PHP에는 슈퍼 글로벌 변수가 있다. 다음 글이 가장 정리가 잘 되어있으니 참고하면 좋을 것 같다. ( 갓지피티를 써도 좋다 )- https://codingeverybody.kr/php-%EC%8A%88%ED%8D%BC%EA%B8%80%EB%A1%9C%EB%B2%8C-%EB%B3%80%EC%88%98-%EC%95%8C%EC%95%84%EC%95%BC-%ED%95%A0-%EB%AA%A8%EB%93%A0-%EA%B2%83/ PHP 슈퍼글로벌 변수 – 알아야 .. 2024. 9. 9.