Loading...
PHP에서 JSON 데이터를 안전하게 파싱하고 검증하기 - json_decode 완벽 가이드

API 응답을 받거나 외부 데이터를 처리할 때 JSON을 파싱하는 작업은 일상이다. 하지만 대부분의 개발자들은 json_decode를 쓸 때 기본 형태만 알고, 잘못된 JSON이나 보안 문제까지 제대로 대응하지 못한 채 진행한다. 특히 json_last_error()를 확인하지 않아서 조용히 실패하거나, 두 번째 인자를 모르는 경우가 많다. 이번에는 jso···

1 0
쿠키 vs 세션 vs 토큰 - 웹 인증 방식 완벽 비교

웹 개발을 하면서 사용자 로그인을 처리해야 할 때 쿠키, 세션, 토큰이라는 세 가지 방식을 마주치게 된다. 다만 이 세 가지가 정확히 뭐가 다른지, 어떤 상황에서 뭘 써야 하는지 설명할 수 있는 개발자는 생각보다 적다. 많은 사람들이 그냥 "세션을 쓰면 된다더라" 또는 "요즘은 토큰을 쓴다더라" 정도만 알고 있을 뿐이다. 다만 각 방식의 원리를 이해하면, ···

3 0
Linux chmod 권한 완전 이해하기 - 755? 644? 777? 정확히 뭔가요

리눅스 서버를 다루다 보면 chmod 명령어를 자주 사용하게 된다. 특히 파일 업로드 기능, 권한 설정, 디렉토리 접근 제한 등 웹 개발 과정에서 거의 매일 마주친다. 다만 대부분의 개발자들은 chmod 뒤에 붙는 숫자가 정확히 뭔지 모른 채 인터넷에서 가져온 코드를 그냥 복사해 붙인다. "755 권한으로 설정해" 라는 말은 들어봤지만, 왜 755인지, 6···

6 0
URL 을 통해 데이터 전송시 조금더 안전한 데이터 검증 방식을 이용해 보자.

요즘들어 회사에서 REST API 를 통한 다양한 연동 작업들이 많이 진행되고 있다. 물론 전문화된 API 서버가 있는건 아니고 POST 메서드로 JSON 데이터를 전송하는 수준의 연동 작업을 진행중이다. 솔직히 REST API 작업은 난이도로 보면 쉬운 작업에 속하긴 하는데 API 규격서를 제공해야하는 입장이라면 정말 귀찮은 작업이 될 수 있다. 또한 데···

608 14
PHP의 취약점에 대하여

PHP의 취약점을 검색하면 상당히 많은 검색결과를 볼 수 있다. 하지만 PHP 뿐만 아니라 모든 언어는 취약점이 발생하기 마련이다. 이런걸 보안하여 패치하는게 개발자의 일이기도 하다. 그럼 PHP의 취약점 보완을 위해 버전 업그레이드를 받는다고 해서 취약점이 해결될까? 절대 그럴일이 없다.. 이미 엉망인 소스에다가 PHP 버전을 업그레이드 받는다고 취약점이···

433 2
보안을 위해선 수시로 접속로그를 확인하는 습관이 필요하다.

개인 사이트 또는 블로그 운영시 접속로그를 살펴보는건 중요한 부분중 하나다. 사이트 접속 로그를 수시로 살펴보고 어떤 곳에 유입이 많이 되었는지 확인하여 컨텐츠를 구성하는데 도움이 될 수 있다. 하지만 언제나 그렇듯 접속로그를 보다보면 수상한 접속 기록등이 확인될 때가 있다. 보통 개인이 서버로 운영하지 않고 네이버 또는 티스토리와 같은 서비스에서 블로그를···

509 5
보안토큰을 적용하여 안전하게 FORM 전송을 하는 간단한 예제

최근들어 큰 프로젝트들이 많이 겹쳐 블로그 운영을 많이 못했던것같다. 현재 UI도 리뉴얼 구성중에 있긴하나 당분간은 엄두가 나지 않을듯 싶다. 이번에 소개할 내용은 보안토큰을 적용한 간단한 FORM 전송 예제이며 이 방법을 주로 사용하는 목적은 스팸(악성)글을 막기위한 용도로 많이 사용된다. 자세한 방법은 아래 예제 소스를 통해 알아보자. EX) 폼 파일 ···

1,932 11
웹 소켓 서버(Websocket) - Ratchet 웹 소켓 서버에서 접속자를 제어

Ratchet 웹 소켓 서버를 실행하면 소켓의 정보만 있다면 로컬에서만 접속가능한 환경이 아닐 경우 TCP URI 정보만 있다면 누구든 클라이언트에서 웹 소켓을 연결하여 접속을 할 수 있게된다. 우리는 이를 사전에 막아 보안강화를 할 필요가 있다. 기본적으로 포트를 막는 방법엔 아래와 같이 두가지 방법이 있다. 1. iptables 를이용하는 방법이 가장 ···

3,147 17
웹에서 쿠키 없이 세션 만 이용 가능할까? (+ 보안)

간혹 웹에서 보안상 쿠키를 없애고 세션만 사용할려는데 어떻게 해야하는지 문의가 올때가 있다. 결론부터 말하면 웹에서 쿠키 없이 세션만 사용할 수는 없다. 그 이유는 쿠키가 있어야만 세션이 존재하기 때문이다. 예를 들어 PHP서버를 운영하고 별도의 세션 설정을 하지 않았다면 세션 실행시 `PHPSESSID` 이라는 쿠키가 생성이 될것이다. 해당 쿠키값은 PH···

3,087 4
[리눅스] fail2ban 을 이용한 서버 보안 강화

최근 회사와 개인 프로젝트에 지쳐 간만에 코딩을 쉬고 죽어가는 오래된 나의 서버를 접속해보았다. 그런데 이상하게도 서버가 굉장히 느린것 같아 습관처럼 여러 로그들을 살펴보았다. 그렇게 로그를 살펴보던중 가장 신경쓰이는 로그가 있었는데 그건 maillog 에 있는 postfix sasl 로그였다. 이 로그가 0.5초 단위로 아이피 약 60 군데정도에서 무작위···

3,894 8
PHP 에서 GET,POST 변수처리 보안

PHP의 경우 변수가 정말 개방적이다. 때론 개방적이다 못해 해커로 부터 공격당하기 좋은 환경또한 제공해 준다. 과거 프로그램들을 보면 GET, POST 를 변수화 시켜서 사용하거나 php.ini 에서 변수화 설정을 통해 사용하기도 했었다. 이러한 방법은 편리하긴 하나 보안의 취약점이기도 하다. 현재와서는 함수 또는 클래스화 하여 처리하고 있지만 PHP만 ···

1,077 6
REDINFO Since 2014
webmaster@redinfo.co.kr
Copyright © Redinfo All Rights Reserved