💻Information Security27 XSS(Cross Site Scripting)이란? XSS의 정의 XSS란 "Cross Site Scripting"의 약자로 사이트에 스크립트를 삽입하여 클라이언트 측에서 악의적인 실행이 일어나도록 하는 해킹 공격 기법입니다. 약자가 CSS가 되어야 할 것 같지만, 이미 CSS는 더 많이 쓰이는 'Cascading Style Sheets'이라는 언어가 있기 때문에 혼란을 줄이기 위해서 XSS로 표현하고 있습니다. 잘 알려진 해킹 공격 기법 중 매우 기초적이며 범위가 넓어 빈번하게 일어날 수 있는 취약점입니다. 공격 방식은 공격자가 취약점이 있는 사이트에 악의적인 스크립트를 심어놓거나 페이로드를 작성해서 사이트 또는 링크를 피해자가 방문하게 되면 클라이언트측 브라우저에서 해당 스크립트를 해석하면서 악의적인 공격이 실행됩니다. 공격 대상은 웹 서비스를 이용하.. 2024. 1. 18. SQL Injection이란? 인젝션의 개념 인젝션(Injection)이란 주사를 뜻합니다. 주사란 뭘까요. 우리 체내에 영양분이나 약성분 등을 집어넣어서 특정 효과를 만들어내는 것이지요? 해킹용어로 자주 사용되는 인젝션이라는 개념도 마찬가지입니다. 값을 입력하는 곳에 특정한 값을 '주입'해서 특정 효과를 만들어내는 것입니다. 개발자가 의도하지 않은 내용을 실행시키려는 것이기 때문에 악의적이라고 볼 수 있습니다. 다양한 인젝션 공격들이 있지만, 이번에는 SQL Injection에 대해서 알아보겠습니다. SQL Injection SQL Injection(줄여서 SQLi)이란 "SQL이라는 DB를 조작하는 언어를 웹페이지에 삽입하여 비정상적인 동작을 하는 등의 공격을 하는 해킹 공격 기법"입니다. SQL이 DB에서 어떤 역할을 하는지는 .. 2024. 1. 18. Root와 Web Root, 헷갈리는 '루트'란? 루트란? 루트(root)는 뿌리를 의미합니다. 나무의 뿌리, 식물의 뿌리가 될 수 있겠죠? 모든 식물은 뿌리(root)에서부터 시작합니다. 그러니까 컴퓨터 용어로 쓰이는 이 '루트'라는 개념도 '시작점'이나 '뿌리', 이런 관점에서 생각해보면 좋을 듯합니다. 컴퓨터, 특히 네트워크나 리눅스에서 쓰이는 루트 개념들에 대해서 구분하고 분별하기 위해 하나씩 정리해 보도록 하겠습니다. root 계정 - 모든 권한을 가진 리눅스 계정 root 폴더 - 리눅스 파일 시스템의 시작점 Web Root - 서버의 시작 지점 디렉토리 루트 계정(root user) 윈도우에는 '관리자(Administrator)' 라는 개념이 있습니다. 윈도우 OS내에서 강력한 권한을 가진 사용자를 말합니다. 대부분의 윈도우 유저라면 관리자.. 2024. 1. 15. JSON과 JWT! (JSON Web Token) JSON JSON은 JavaScript Object Notation의 약자로 자바스크립트에서 일종의 객체(object) 형식으로 데이터를 표현하기 위한 형식을 의미합니다. 즉, 자바스크립트라는 언어로 구성된 것이고, 데이터를 표현하는 방식입니다. 이름은 제이슨이라고 부르고 속성-값의 형태이고 배열식으로 되어있습니다. 속성-값(Attribute-value)의 형태라는 것은 영어를 직역했기에 이해가 쉽지 않을 수 있습니다. 예를 하나 들자면 '키'라는 속성과 '몸무게'라는 속성이 있을 수 있습니다. 누군가의 '키(height)'가 170이라면 '키(height)'라는 속성의 '값'은 170이 되는 거겠죠? 이걸 JSON 형식으로 표현하면 { "height" : "170" } 이렇게 됩니다. 이런 식으로 된 .. 2024. 1. 14. Database(DB)와 SQL의 개념과 필요성 Database의 정의와 개념 Database란 데이터를 모아놓는 저장소를 의미합니다. 인터넷은 각종 정보로 가득 차있고 그렇게 넘쳐나는 정보들을 관리하기 위해서는 관리를 하기 위한 체계가 필요하겠죠? 데이터들을 관리하기 위한 것이 바로 데이터베이스(Database)라고 하는 체계입니다. 그 데이터베이스를 관리하는 프로그램이 바로 DBMS(Database Management System)입니다. 둘은 일반적으로 같이 쓰입니다. 깊게 설명하면 조금 다르지만, 일상적으로는 편의를 위해 데이터베이스로 부릅니다. 데이터는 우리에게 익숙한 개념으로 치면 엑셀시트 같은 구조로 관리가 된다고 보시면 되겠습니다. 엑셀시트를 컴퓨터서버에서 관리하기 위해서 데이터베이스를 쓴다고 생각 봅시다. 필요성 그러면 엑셀시트가 아니.. 2024. 1. 14. NAT(Network Address Translation?)란? NAT의 정의 NAT란 'Network Address Translation'의 약자입니다. 즉, '네트워크의 주소를 바꾼다'는 뜻입니다. 번역이나 통역이라는 말로 'translate'라는 단어를 많이 쓰는데요. 여기서는 일정한 규칙에 따라서 바꿔준다 정도로 생각하면 될 것 같습니다. 네트워크 주소란 바로 IP를 의미합니다. 그러니까, IP 주소를 바꾸는 것을 NAT라고 할 수 있습니다. 그런 게 왜 필요한 걸까요? 필요성 현재 우리가 사용하고 있는 IP는 IPv4입니다. '000.000.000.000'의 형식을 가진 IP주소를 말합니다. 현재 우리는 크게 걱정 없이 쓰고 있는 듯 하지만, 인터넷을 사용하는 사람이 많아지면서 기존의 이 IP는 문제가 생겼습니다. 해당 IP 구조는 256^4 = 42억 개 .. 2024. 1. 13. 웹 서버(Web Server)와 WAS(Web Application Server) 웹 서버의 정의와 역할 웹 서버(Web Server)란 클라이언트의 요청을 받아서 서버 내의 자료를 제공해 주는 '서버'를 의미합니다. 클라이언트란 브라우저(Browser)라는 프로그램을 통해서 서버에 정보를 요청하고 받아서 열람하는 일반적인 사용자, 또는 브라우저 프로그램 자체를 의미합니다. 우리가 서버에 정보를 요청하고 정상적으로 자료(정보)를 받았기에 이렇게 웹페이지를 서핑하고 다닐 수 있는 것이라고 할 수 있습니다. '클라이언트'는 '브라우저'이고 브라우저에 정보를 전달할 수 있는 자료를 가지고 있는 곳을 '서버'라고 간단하게 정리할 수 있습니다. 웹 서버의 역할 클라이언트의 요청(URL)을 해석하여 수행 정적 페이지 관리 및 전송 동적 페이지의 경우 WAS에게 해석 요청 URL의 정의와 구성 클.. 2024. 1. 13. 이전 1 2 3 다음