ISMS-P/보안

응용프로그램 세션 타임아웃 설정

Glren 2023. 7. 5. 01:15
SMALL

세션 타임아웃은 응용 프로그램의 보안 관점에서 중요한 설정 중 하나입니다. 사용자가 일정 시간 동안 액티비티를 수행하지 않으면 응용 프로그램은 자동으로 사용자 세션을 종료하여 보안을 강화하게 됩니다.

아래에 주요 프로그래밍 언어 및 플랫폼에서 세션 타임아웃을 설정하는 방법에 대한 몇 가지 예를 제공하겠습니다.

1. **ASP.NET**:
    ```csharp
    <configuration>
        <system.web>
            <sessionState timeout="5"></sessionState>
        </system.web>
    </configuration>
    ```
    위 코드는 `Web.config` 파일에 추가되며, 세션 타임아웃을 5분으로 설정합니다.

2. **PHP**:
    ```php
    <?php
        // 5분 동안 세션 유지
        ini_set('session.gc_maxlifetime', 300);
    ?>
    ```
    위 코드는 세션 가비지 수집기가 데이터를 수집하기 전에 세션을 유지하는 시간(초 단위)을 설정합니다.

3. **Express.js(Node.js)**:
    ```javascript
    const express = require('express');
    const session = require('express-session');

    const app = express();

    app.use(session({
        secret: 'your-secret-key',
        resave: false,
        saveUninitialized: true,
        cookie: { maxAge: 5 * 60 * 1000 } // 5분
    }));
    ```
    위 코드는 `express-session` 미들웨어를 사용하여 세션 타임아웃을 5분으로 설정합니다.

4. **Java(Servlet)**:
    ```java
    HttpSession session = request.getSession();
    // 5분 동안 세션 유지
    session.setMaxInactiveInterval(5*60);
    ```
    위 코드는 세션의 최대 비활성화 간격을 5분으로 설정합니다.

5. **Django(Python)**:
    ```python
    # settings.py 파일
    SESSION_COOKIE_AGE = 300  # 5분 동안 세션 유지
    ```
    위 코드는 Django 프로젝트의 `settings.py` 파일에 추가되며, 세션 타임아웃을 5분으로 설정합니다.

이러한 방식으로 사용자 세션의 타임아웃을 관리하면 사용자가 활동하지 않는 시간 동안 데이터를 보호하고 미인증 접근을 방지할 수 있습니다.