Security
Security
μ΄ μ₯μμλ μμ© νλ‘κ·Έλ¨μ 보μμ κ°νν μ μλ λͺ κ°μ§ κΈ°μ μ λ°°μλλ€.
Helmet
Helmetμ HTTP ν€λλ₯Ό μ μ νκ² μ€μ νμ¬ μ μλ €μ§ μΌλΆ μΉ μ·¨μ½μ μΌλ‘λΆν° μ±μ λ³΄νΈ ν μ μμ΅λλ€. μΌλ°μ μΌλ‘ Helmetμ 보μ κ΄λ ¨ HTTP ν€λλ₯Ό μ€μ νλ 12 κ°μ μμ λ―Έλ€μ¨μ΄ ν¨μ λͺ¨μμ λλ€ (λ보기). λ¨Όμ νμν ν¨ν€μ§λ₯Ό μ€μΉνμμμ€.
$ npm i --save helmet
μ€μΉκ° μλ£λλ©΄ κΈλ‘λ² λ―Έλ€μ¨μ΄λ‘ μ μ©νμμμ€.
import * as helmet from 'helmet';
// somewhere in your initialization file
app.use(helmet());
CORS
CORS (Cross-Origin Resource Sharing)λ λ€λ₯Έ λλ©μΈμμ 리μμ€λ₯Ό μμ²ν μ μλ λ©μ»€λμ¦μ
λλ€. νλ μλμμ Nestλ cors ν¨ν€μ§λ₯Ό μ¬μ©ν©λλ€. μ΄ ν¨ν€μ§λ μꡬ μ¬νμ λ°λΌ μ¬μ©μ μ§μ ν μ μλ μ΅μ
μ μ 곡ν©λλ€. CORSλ₯Ό νμ±ννλ €λ©΄ enableCors()
λ©μλλ₯Ό νΈμΆν΄μΌ ν©λλ€.
const app = await NestFactory.create(ApplicationModule);
app.enableCors();
await app.listen(3000);
λν κ΅¬μ± κ°μ²΄λ₯Ό μ΄ ν¨μμ λ§€κ° λ³μλ‘ μ λ¬ν μ μμ΅λλ€. μ¬μ© κ°λ₯ν μμ±μ 곡μ cors μ μ₯μμ μ² μ νκ² μ€λͺ λμ΄ μμ΅λλ€. λ€λ₯Έ λ°©λ²μ Nest μ΅μ κ°μ²΄λ₯Ό μ¬μ©νλ κ²μ λλ€.
const app = await NestFactory.create(ApplicationModule, { cors: true });
await app.listen(3000);
쑰건 κ°μ μ λ¬νλ λμ cors κ΅¬μ± κ°μ²΄λ₯Ό μ¬μ©ν μλ μμ΅λλ€ (μ¬κΈ° μ°Έμ‘°).
CSRF
μ¬μ΄νΈ κ° μμ² μμ‘° (CSRF λλ XSRFλΌκ³ ν¨)λ μΉ μμ© νλ‘κ·Έλ¨μ΄ μ λ’°νλ μ¬μ©μλ‘λΆν° λ¬΄λ¨ λͺ λ Ήμ΄ μ μ‘λλ μΉ μ¬μ΄νΈμ μ μμ μΈ μ μ© μ νμ λλ€. μ΄λ¬ν μ’ λ₯μ 곡격μ μννκΈ° μν΄ csurf ν¨ν€μ§λ₯Ό μ¬μ©ν μ μμ΅λλ€. λ¨Όμ νμν ν¨ν€μ§λ₯Ό μ€μΉνμμμ€.
$ npm i --save csurf
μ€μΉκ° μλ£λλ©΄ κΈλ‘λ² λ―Έλ€μ¨μ΄λ‘ μ μ©νμμμ€.
import * as csurf from 'csurf';
// somewhere in your initialization file
app.use(csurf());
Rate limiting
λ¬΄μ°¨λ³ λμ 곡격μΌλ‘λΆν° μ ν리μΌμ΄μ μ 보νΈνλ €λ©΄ μΌμ’ μ μλ μ νμ ꡬνν΄μΌ ν©λλ€. μ΄ μ’κ²λ NPMμλ μ΄λ―Έ λ€μν λ―Έλ€μ¨μ΄κ° μμ΅λλ€. κ·Έμ€ νλκ° express-rate-limitμ λλ€.
$ npm i --save express-rate-limit
μ€μΉκ° μλ£λλ©΄ κΈλ‘λ² λ―Έλ€μ¨μ΄λ‘ μ μ©νμμμ€.
import * as rateLimit from 'express-rate-limit';
// somewhere in your initialization file
app.use(
rateLimit({
windowMs: 15 * 60 * 1000, // 15 minutes
max: 100, // limit each IP to 100 requests per windowMs
}),
);
info ννΈ
FastifyAdapter
λ‘ μμ νλ κ²½μ° fastify-rate-limitλ₯Ό λμ μ¬μ©ν΄λ³΄μμμ€.
Last updated
Was this helpful?