목록CS/보안 (6)
GiYeong
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/p12oo/btrJn6hv7FV/UsMZ3UAXgDVNFCTk427Eg0/img.png)
XSS(CSS, Cross Site Scripting) 웹사이트의 관리자가 아닌 공격자가 웹 페이지에 악성 스크립트를 삽입할 수 있는 취약점으로 발생되는 공격이다. 공격자가 상대방의 브라우저에 스크립트가 실행되도록 하여 사용자의 세션을 가로채거나, 웹사이트를 변조, 악의적 컨텐츠 삽입, 피싱 공격을 진행하는 것이다. 웹 어플리케이션이 사용자로부터 입력 받은 값을 제대로 검사하지 않고 사용할 경우 발생한다. (게시판에 악성 스크립트가 담긴 글을 올리는 등) 대응방안 모든 입력값에 대한 필터링을 수행(필터 제작) BBCode 사용 쿠키의 보안 옵션 사용 콘텐츠 보안 정책(CSP) 사용 : 스크립트 실행에 대한 정책을 설정하여 출처가 가지 서버인 스크립트만 실행되도록 허용 CSRF(Cross Site Requ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/EEftC/btrJk3NmOgT/1PsR8wGmarDQSmAghZMIY1/img.png)
SQL Injection 악의적인 사용자가 보안상의 취약점을 이용하여 임의의 SQL 문을 데이터베이스에 주입 및 실행하여 비정상적인 동작을 하도록 조작하는 행위이다. SQL Injection 공격 기법 Error based SQL Injection : 논리적 에러를 이용 UNION based SQL Injection : 정상적인 쿼리 문에 하나의 추가 쿼리를 합입하여 원하는 정보를 획득 Blind SQL Injection(1) : 특정한 값이나 데이터를 전달받지 않고, 쿼리를 통해 나온 참/거짓 정보를 통해 정보를 취득 Blind SQL Injection(2) : 쿼리 결과를 특정 시간만큼 지연시킴 Stored Procedure SQL Injection : Stored Procedure(저장 프로시저)를..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/pqT8C/btrJikWi6wa/K1kpGBifVVgpg3sTuNVKRk/img.png)
JWT : Token OAuth : Framework OAuth Framework를 통해 생성된 OAuth Bearer token은 사용자의 정보와 같은 중요한 정보가 있는 토큰이 아니다. 이는 일종의 포인터로서 OAuth Framework를 통해 해당 정보가 저장되어있는 주소를 확인할 수 있는 역할을 한다. 반대로 JWT Token은 명확한 정보를 가지고 있다. 때문에 가지고있는 속성 정보에따라 크기가 가변적이며, 이로인해 데이터베이스에서 사용자의 정보를 조작하더라도 토큰에 직접 적용할 수 없는 문제점이 있고, 토큰의 크기가 커지면 데이터 트래픽에 영향을 미칠 수 있는 단점이 있다.
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cZoTp5/btrI7Ld86mR/14UbuvnvQuzUh3ix1rxss1/img.png)
JWT JWT는 유저를 인증하고 식별하기 위한 토큰(Token)기반의 인증 방식이다. 토큰은 서버가 아닌 클라이언트에 저장되기 때문에 메모리나 스토리지 등을 통해 세션을 관리했던 서버의 부담을 덜 수 있다. 토큰 자체에 사용자의 권한 정보나 서비스를 사용하기 위한 정보가 포함되어 있기 때문에, 데이터가 많아지면 토큰이 커질 수 있으며, 토큰이 한 번 발급된 이후 사용자의 정보를 바꾸더라도 토큰을 재발급하지 않는 이상 반영되지 않는다. JWT를 통해 RESTful과 같은 무상태(Stateless)인 환경에서 사용자 데이터를 주고받을 수 있게 된다. 즉, JWT와 같은 토큰을 클라이언트에 저장하고, 요청 시 단순히 HTTP 헤더에 토큰을 첨부하는 것으로 단순하게 데이터를 요청하고 응답을 받을 수 있다. 동작..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/5Otk1/btrI6rAdOfG/ybnvrI5Nd7ZZjSu9u3dNEk/img.png)
단방향 암호화 암호화를 수행하고 나온 데이터를 다시 원래의 데이터로 변환할 수 없는 암호화 방식으로 복호화가 불가능하다는 의미이다. 단방향 암호화로 가장 많이 알려져있는 알고리즘으로는 해시(Hash) 알고리즘이 있다. 이를 통해 데이터의 무결성을 검증할 수 있다. Hash 알고리즘 임의의 크기를 가진 데이터를 고정된 데이터의 크기로 변환시키는 알고리즘으로, 동일한 값이 입력되면 언제나 동일한 출력 값을 보장한다. MD5 알고리즘 임의의 길이의 메시지를 입력받아 128비트의 고정 길이의 값을 출력한다. 입력 메시지에 길이 제한이 없으며, 주로 프로그램이나 파일이 원본 상태 그대로인지 확인하는 무결성 검사등에 사용되지만 보안 관련 용도로 권장하지 않는다. SHA(Secure Hash Algorithm) 알고..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cppInV/btrI4Wf7OKN/1kipk8V6tZ9C77syF8IPMk/img.png)
대칭키 암호화 방식 암복호화에 사용하는 키가 동일한 암호화 방식이다. 장점 공개키 암호화 방식에 비해 속도가 빠르다. 단점 안전한 키 교환 방식이 요구된다. 사람이 증가할수록 전부 따로따로 키 교환을 해야하기 때문에 관리해야하는 키가 많아진다. 비대칭키(공개키) 암호화 방식 암복호화에 사용하는 키가 서로 다른 암호화 방식으로, 송수신자 모두 한쌍의 키(개인키, 공개키)를 가지게 된다. 대칭키 암호화 방식의 키 교환 문제를 해결하기 위해 등장한 방식으로, 공개키는 모든 사람이 접근 가능한 키이고, 개인키는 각 사용자만이 가지고 있는 키이다. A가 B에게 데이터를 보낸다고 가정할 때, A는 B의 공개키를 통해 암호화한 데이터를 보내고 B는 B의 개인키로 암호화된 데이터를 복호화하기 때문에 암호화된 데이터는 ..