728x90 반응형 STUDY/ExpressJS17 HTTP 보안 메커니즘 - CORS (Cross-Origin Resource Sharing) | CORS (Cross-Origin Resource Sharing)다른 출처(origin) 간의 자원 요청을 허용할지 말지를 웹 브라우저가 판단하도록 도와주는 HTTP 보안 메커니즘으로 Express용 미들웨어이다. 브라우저는 보안상의 이유로, 웹 페이지가 **다른 도메인(Origin)**의 서버에 요청하는 것을 기본적으로 차단한다. 예를들어,프론트엔드 주소 : http://localhost:3000백엔드 주소 : http://localhost:5000이 둘은 "포트 번호가 다르므로" 다른 origin 으로 간주되고 요청을 보내면 브라우저가 CORS 정책 위반으로 에러를 일으킨다.(Origin : 프로토콜 + 도메인 + 포트번호 조합) 해결방법은 백엔드에서 허용을 해주는 것이다. | CORS설치np.. 2025. 5. 2. [3-3] 요청과 응답(req, res) methods 요청(Request)과 응답(Response)은 웹 서버에서 클라이언트와 통신하는 데 사용되는 핵심 개념이다. 클라이언트가 서버에 어떤 작업을 요청하면 서버는 이에 대한 응답을 반환한다. 요청과 응답은 HTTP 프로토콜을 통해 이뤄지며, 이를 통해 웹 애플리케이션은 동작한다. Request(req) - 요청 웹 서버를 만들 때 클라이언트에게 요청을 보내는데 사용한다. | Request 구성 HTTP 메소드 (Method) 클라이언트는 리소스에 대한 특정 작업을 나타내는 HTTP 메소드를 사용하여 서버에 요청을 보낸다. GET : 리소스를 가져오기 위한 메소드 POST : 새로운 리소스를 생성하기 위한 메소드 PUT : 기존 리소스를 업데이트하기 위한 메소드 DELETE : 리소.. 2023. 12. 22. [7-1] 사용자 인증을 위한 passportjs Passport는 Node.js 애플리케이션에서 사용자 인증을 간편하게 처리할 수 있도록 도와주는 미들웨어다. Express 프레임워크와 함께 사용되며, 다양한 전략(Strategy)을 제공하여 로컬 인증, OAuth, OpenID 등을 구현할 수 있다. https://www.passportjs.org/tutorials/password/verify/ / Strategy Passport는 다양한 인증 전략을 제공한다. 각 전략은 특정한 인증 프로토콜을 구현하고 있다. 주로 사용되는 전략은 로컬전략(Local Strategy), OAuth, OpenID 등이 있다. 인증 프로토콜에 따라 사용자 인증을 처리하고 성공시에 사용자 정보를 제공한다. 로컬 전략의 경우 아이디와 비밀번호를 이용하여 인증을 수행한다. .. 2023. 12. 8. [7-2] http의 취약점인 보안 강화를 위한 https HTTPS(SSL/TLS)는 HyperText Transfer Protocol Secure의 약자로, 웹 통신을 보안하기 위한 프로토콜이다. Express에서 HTTPS를 사용하는 것은 애플리케이션의 통신을 암호화하고 보안을 강화하기 위함이다. HTTP vs. HTTPS HTTP (HyperText Transfer Protocol) HTTP는 텍스트 데이터를 주고받는 프로토콜로, 데이터가 암호화되지 않는다. 따라서 민감한 정보를 전송할 때는 보안이 취약하다. HTTPS (HyperText Transfer Protocol Secure) HTTPS는 HTTP에 보안 기능을 추가한 프로토콜이다. 데이터는 암호화되어 전송되기 때문에 중간자 공격을 방지하고 데이터의 안전성을 보장한다. / 보안 Express로 H.. 2023. 12. 6. [4-2] Express에서 정적 파일들을 제공하기 위한 미들웨어 - static express.static은 Express.js에서 정적 파일을 제공하기 위한 빌트인 미들웨어입니다. 이 미들웨어를 사용하면 서버에서 특정 디렉토리에 있는 정적 파일(이미지, CSS, JavaScript 파일 등)을 클라이언트에게 직접 제공할 수 있습니다. 기본적으로, express.static은 정적 파일들이 위치하는 폴더의 경로를 인자로 받습니다. 해당 폴더는 웹 서버에서 접근 가능한 위치에 있어야 하며, 클라이언트 측에서 해당 폴더의 파일들에 접근할 수 있습니다. 클라이언트 측에서 /styles.css와 같은 경로를 통해 서버에 정적 파일을 요청하면, Express.js는 해당 파일이 위치하는 폴더를 찾아서 파일을 클라이언트에게 전송해 줍니다. const express = require('expre.. 2023. 5. 24. [7-3] Express.js HTTP 보안강화 미들웨어 - helmet helmet Express 애플리케이션에서 HTTP 헤더를 보호하기 위한 미들웨어 패키지입니다. helmet은 각종 보안 관련 HTTP 헤더를 설정하고, 공격자들이 취약점을 이용하는 것을 방지합니다. 이를 통해 Express 애플리케이션의 보안성을 높일 수 있습니다. > 설치하기 npm install --save helmet > 미들웨어 등록하기 const express = require('express'); const helmet = require('helmet'); const app = express(); // helmet 미들웨어 추가 app.use(helmet()); // 라우트 핸들러 등록 app.get('/', (req, res) => { res.send('Hello World!'); }); .. 2023. 4. 11. [5-3] Express.js 라우터 모듈화 Express.js에서 라우팅 로직을 모듈화하여 구성하면, 코드의 가독성을 높이고 유지보수를 쉽게할 수 있습니다. 1) 새로운 파일에 라우터 코드 작성하기 users.js 파일에 /users 경로의 GET 요청에 대한 핸들러를 작성합니다. users.js const express = require('express'); const router = express.Router(); router.get('/', (req, res) => { res.send('User List'); }); module.exports = router; router 객체는 express.Router() 메소드를 호출하여 생성됩니다. 이 객체는 Express.js에서 라우팅 로직을 처리하는 핵심 객체입니다. router.get() 메소.. 2023. 4. 5. [5-1-1] Express.js 파라미터를 이용한 동적 URL처리 파라미터란? 파라미터는 함수나 메소드에 전달되는 값을 나타내는 용어입니다. 함수나 메소드를 호출할 때, 인자(argument)를 전달하는데, 이러한 인자는 함수나 메소드에서 파라미터(parameter)로 받아들여지게 됩니다. 예를 들어, 다음과 같은 함수를 생각해보겠습니다. function sum(a, b) { return a + b; } sum(1, 2) 위 함수는 a와 b라는 두 개의 파라미터를 가지고 있습니다. sum(1, 2)와 같이 호출할 때, 1과 2는 각각 a와 b라는 파라미터에 전달됩니다. 함수 내부에서는 전달된 파라미터를 이용하여 연산을 수행하고, 그 결과를 반환합니다. Express.js에서의 파라미터는 URL 경로에서 추출되는 값입니다. 이러한 파라미터는 URL 경로에서 :를 사용하여.. 2023. 4. 5. [4-3] Express.js 미들웨어 등록 메소드 - app.use() Express.js에서 app.use() 메소드는 미들웨어를 등록하는 역할을 합니다. 미들웨어는 클라이언트 요청을 처리하기 전에 실행되는 함수로, 요청과 응답에 대한 정보를 변경하거나, 다음 미들웨어를 호출하기 전에 처리할 작업을 수행할 수 있습니다. 미들웨어 함수 보통 req, res, next 세 개의 매개변수를 받습니다. req는 클라이언트 요청에 대한 정보를, res는 클라이언트에게 보낼 응답 정보를 담고 있습니다. next는 다음 미들웨어를 호출하는 함수로, 해당 함수를 호출하지 않으면 다음 미들웨어가 실행되지 않습니다. app.use() 메소드 두 개의 인자를 받습니다. 첫 번째 인자는 미들웨어 함수로, 두 번째 인자는 선택적으로 경로(prefix)를 지정할 수 있습니다. 경로를 지정하지 않으.. 2023. 3. 31. [4-2] Express.js HTTP요청의 body를 파싱하기 위한 미들웨어 - body-parser body-parser는 Express.js 애플리케이션에서 들어오는 HTTP 요청의 body를 파싱하기 위한 미들웨어 패키지입니다. HTTP 요청은 보통 헤더와 바디로 구성되어 있는데, 헤더는 요청에 대한 메타데이터를 담고, 바디는 실제 데이터를 담고 있습니다. 예를 들어, HTML form을 사용해 데이터를 서버로 전송하는 경우, form 데이터는 HTTP 요청의 body에 담겨서 전송됩니다. HTTP 요청 본문을 파싱(parse)하여 req.body 객체로 만들어주기 때문에, 클라이언트가 요청한 데이터를 쉽게 가져와서 처리할 수 있고 여러 가지 유형의 요청 데이터를 파싱할 수 있습니다 - .json() : JSON 형식의 본문 파싱 - .urlencoded() : URL로 인코딩된 본문 파싱 - .r.. 2023. 3. 31. 이전 1 2 다음 728x90 반응형