본문 바로가기
[도서 정리] 50. OS 커맨드 인젝션 - 보안의 기본 50. OS 커맨드 인젝션 - 보안의 기본 * OS 커맨드 인젝션이란? -OS 커맨드 인젝션은 SQL 인젝션과 마찬가지로 인젝션 공격의 일종이다.인젝션 공격은 앱에 대한 데이터 입력을 악용하여 앱이 호출하는 외부 시스템을 의도하지 않은 형태로 조작하는 공격이다.SQL 인젝션의 경우 공격 대상이 DB 였지만, OS 커맨드 인젝션의 경우는 공격대상이 OS 쉘이 된다. -쉘은 OS의 커맨드를 실행하는 환경이다.쉘을 부정으로 조작할 수 있다는 것은 OS 가 실행할 수 있는 다양한 일, 예를 들면 파일의 참조, 편집, 삭제, 임의의 프로그램 실행 등이 공격자에 의해 가능해 진다는 것이다. * OS 커맨드 인젝션의 실행 방법과 대책 -OS 커맨드 인젝션은 OS 의 쉘을 호출할 수 있는 프로그래밍 언어(Perl 이나.. 2019. 11. 29.
[RxJava] #1 리액티브 프로그래밍 소개 -RxJava 라이브러리는 1.x 버전을 거쳐 2016년 10월에 점면 개편된 RxJava 2.0 을 출시. 1.1. 리액티브 프로그래밍 -리액티브 프로그래밍은 데이터 흐름과 전달에 관한 프로그래밍 패러다임.명령형(imperative) 프로그래밍은 주로 컴퓨터 하드웨어를 대상으로 프로그래머가 작성한 코드가 정해진 절차에 따라 순서대로 실행된다.그러나 리액티브 프로그래밍은 데이터 흐름을 먼저 정의하고 데이터가 변경되었을 때 연관되는 함수나 수식이 업데이트되는 방식. -명령형 프로그래밍 방식은 변경이 발생했다는 통지를 받아서 자료를 다시 가져오는 pull 방식이지만, 리액티브 프로그래밍은 데이터 소스가 변경된 데이터를 함께 주는 push 방식이다.일종의 옵저버 패턴이다. -리액티브 프로그래밍은 1990년대에.. 2019. 5. 31.
[Java Concurrency] 객체공유 [Java Concurrency] 객체공유 3.1. 가시성 - 일반적으로 특정 변수의 값을 가져갈 때 다른 스레드가 작성한 값을 가져갈 수 있다는 보장도 없고, 심지어는 값을 읽지 못 할 수도 있다. 메모리상의 공유된 변수를 여러 스레드에서 서로 사용할 수 있게 하려면 반드시 동기화 기능을 구현해야 한다. - 재배치(reordering) 현상을 조심해야 한다. 재배치 현상은 특정 메소드의 소스코드가 100% 코딩된 순서로 동작한다는 점을 보장할 수 없다는 점에 기인하는 문제이다. 단일 스레드로 동작할 때는 차이점을 전혀 알아챌 수 없지만 여러 스레드가 동시에 동작하는 경우에는 확연하게 나타날 수 있다. - 동기화 기능을 지정하지 않으면 컴파일러나 프로세서, JVM 등이 프로그램 코드가 실행되는 순서를 임.. 2017. 4. 17.
반응형