Rails 앱 보안 점검 — CSRF, SQL Injection 막기
·
Ruby On Rails
웹 애플리케이션을 운영한다는 건 단지 기능만 잘 구현하는 게 아닙니다.그보다 더 중요한 건 서비스를 안전하게 지키는 일이죠.이번 글에서는 Rails 앱을 개발할 때 반드시 신경 써야 할 보안 이슈 중, 가장 대표적인 CSRF와 SQL Injection을 다뤄보겠습니다.🛡️ CSRF(Cross Site Request Forgery) 방지❓ CSRF란?로그인된 사용자의 세션을 악용해 의도하지 않은 요청을 보내는 공격입니다.예를 들어, 사용자가 로그인된 상태에서 악성 사이트에 접속하면 모르게 포스트가 삭제되거나 설정이 바뀌는 등의 피해가 발생할 수 있어요.✅ Rails의 기본 방어Rails는 기본적으로 CSRF 공격을 막기 위한 토큰 기반 보호가 활성화돼 있습니다.# app/controllers/applic..
마이그레이션과 스키마 변화 — 안전하게 DB 구조 바꾸기
·
Ruby On Rails
우리는 서비스를 운영하면서 언젠가는 데이터베이스 구조를 수정해야 할 순간을 맞이합니다.새로운 기능이 추가되면 컬럼이 필요하고, 기존 컬럼의 타입이 바뀌거나 테이블 자체가 변경될 수 있죠.이때 중요한 건 단 하나 — 안전하게, 그리고 되돌릴 수 있게 바꾸는 것. Rails에서는 이 과정을 Migration이라는 멋진 도구로 해결합니다.🧱 마이그레이션(Migration)이란?마이그레이션은 데이터베이스 스키마의 버전 관리 시스템입니다.일종의 "스키마 이력 관리 도구"라고 할 수 있어요.마이그레이션 파일은 다음과 같은 일을 합니다:테이블 생성/삭제컬럼 추가/변경/삭제인덱스 추가/삭제📦 마이그레이션 파일 생성하기$ bin/rails generate migration AddPublishedToPosts publ..
ActiveRecord로 데이터 다루기 — CRUD의 정석
·
Ruby On Rails
Rails에서 데이터베이스와 소통하는 방식은 ActiveRecord를 통해 이루어집니다. ActiveRecord는 ORM(Object-Relational Mapping) 역할을 하며, 데이터베이스의 테이블과 Ruby 객체를 연결시켜줍니다. 이 글에서는 Rails의 핵심 기능인 CRUD (Create, Read, Update, Delete)를 ActiveRecord를 통해 어떻게 다루는지 정리해보겠습니다.📘 모델 생성$ bin/rails generate model Post title:string content:text$ bin/rails db:migrate위 명령어로 posts 테이블이 생성되고, Post 모델이 생성됩니다. 이제 이 Post 모델로 DB 조작이 가능해집니다.🆕 Create (데이터 생..