Laravel 애플리케이션의 가장 일반적인 보안 취약점은 다음과 같습니다.
1. 교차 사이트 스크립팅(XSS): 사용자 제공 데이터가 웹 페이지에 렌더링되기 전에 적절하게 삭제되지 않아 공격자가 악성 스크립트를 삽입할 수 있는 경우에 발생합니다[1][3].
2. SQL 주입(SQLi): 사용자 입력이 데이터베이스 쿼리에 사용되기 전에 적절하게 검증되거나 삭제되지 않아 공격자에게 민감한 데이터에 대한 무단 액세스가 허용되는 경우에 발생합니다[1][3].
3. CSRF(Cross-Site Request Forgery): 공격자가 인증된 사용자를 대신하여 무단 작업을 수행할 수 있도록 허용하여 재정적 손실, 데이터 침해 및 평판 손상을 초래합니다[1][3].
4. 안전하지 않은 IDOR(직접 개체 참조): 데이터베이스 키나 파일 경로와 같은 내부 구현 세부 정보를 URL이나 매개변수에 노출하여 공격자가 이러한 참조를 조작하여 승인되지 않은 리소스에 액세스할 수 있도록 합니다[1].
5. 안전하지 않은 역직렬화: 신뢰할 수 없는 데이터가 적절한 유효성 검사 또는 삭제 없이 역직렬화되어 공격자가 임의 코드를 실행하거나 서비스 거부 공격을 수행하거나 애플리케이션 논리를 변조할 수 있는 경우 발생합니다[1].
6. 인증 및 세션 관리 문제: 비밀번호 해싱 부족, 다단계 인증 부족 등 취약한 인증 메커니즘으로 인해 무단 액세스가 발생할 수 있습니다. 부적절한 세션 관리로 인해 사용자가 세션 하이재킹이나 고정 공격에 노출될 수도 있습니다[1].
7. 민감한 데이터 노출: 비밀번호, API 키 또는 개인 식별 정보(PII)와 같은 민감한 정보를 로그, 오류 메시지 또는 응답 헤더에 노출하면 신원 도용, 데이터 침해 또는 기타 악의적인 행위가 발생할 수 있습니다. 활동[1].
8. 검증 없는 리디렉션 및 전달: 사용자가 제공한 입력을 기반으로 리디렉션 및 전달을 검증하지 못하면 사용자가 악성 웹사이트나 피싱 페이지로 리디렉션될 수 있습니다[1].
9. 검증: 입력 검증을 무시하면 애플리케이션이 주입 공격에 노출될 수 있습니다[1].
10. 종속성: 제3자 종속성을 적시에 업데이트하지 못하면 애플리케이션이 취약성에 노출될 수 있습니다[1].
이러한 취약점은 입력 검증, 출력 이스케이프, 매개변수화된 쿼리, 인증, 권한 부여, 암호화 등의 모범 사례를 따르고 최신 보안 위협에 대한 최신 정보를 유지하고 종속성을 정기적으로 업데이트함으로써 완화될 수 있습니다[1][3].
인용:[1] https://acquaintsoft.com/answers/prevention-for-security-vulnerability-in-laravel
[2] https://www.cvedetails.com/vulnerability-list/vendor_id-16542/Laravel.html
[3] https://www.ropstam.com/laravel-security-best-practices/
[4] https://clouddevs.com/laravel/protecting-web-application/
[5] https://magecomp.com/blog/laravel-security-best-practices/