오늘은, ssh랑 telnet에 대해서 간단하게 와이어 샤크를 가지고 실습해 보도록 하겠습니다. 이들이 패킷을 어떻게 날리는지도 보도록 하고요. telnet이 보안이 취약하다는 소리는 많이 들어봤는데, 정말 그런건지도 한 번 보도록 하겠습니다. 저는, VM 안에 있는 ubuntu에 ssh server랑 (sshd), telnet server를 깔았습니다. 그리고 window에 ssh와 telnet 클라이언트가 있습니다. 먼저, hostname -I를 쳐 보겠습니다. 그러면, VM으로 띄운 우분투의 IP가 나올 겁니다. 그리고 방화벽 ufw가 있는데요. 이들의 설정을 건드려가면서, telnet이나, ssh 접속을 할 때 어떠한 패킷이 왔다갔다 하는지 테스트 해 볼 겁니다. 먼저, status를 보겠습니다...
전체 글 검색 결과
안녕하세요. 이번 시간에는 리눅스 pipe 함수에 대해서 알아보도록 하겠습니다. file 데스크립터 2개를 저장할 배열을 넘겨주기만 하면 됩니다. 그것을 넘겨주면, 그 배열에 하나는 파이프에서 읽기를, 하나는 쓰기를 할 수 있는 데스크립터가 생성됩니다. 각각 filedes[0], filedes[1]이 그 역할을 합니다. 예제 1번 프로그램을 보도록 하겠습니다. 먼저, text가 2개 있습니다. 하나는 "Hello", 하나는 "Bye" 입니다. 파이프를 생성한 다음에, fork로 자식 프로세스를 생성합니다. 상황이 대략적으로 이렇게 그려집니다. 그리고 부모에서는, 단순하게 "Hello"라는 text를 write 하기만 하고, 자식은 받기만 합니다. 일단, 자식의 pi[0]과 부모의 pi[0], 그리고 자식..
mybatis의 xml 파일에서 '${id}' 이런 식으로 쿼리문을 작성했을 때, 단순히 append가 된다는 것은 저번에 이야기를 해 드렸습니다. 어떻게 이런 일이 일어나는지 조금 깊게 들어가 보도록 하겠습니다. 일단 id는 'or 1 = 1-- 이고, pw는 1234입니다. 이렇게 입력할 겁니다. 실험으로 쓰일 sql 문은 다음과 같이 xml 파일에 작성하였습니다. 일단, 제 Usert 클래스입니다. id, pw, num 필드가 있다는 것을 알 수 있습니다. 다음에, SqlSource를 implements한 DynamicSqlSource 클래스가 있는데요. 이 안에 getBoundSql이 있습니다. 느낌상 이 메서드가 바운드를 시킬 거 같으니, 적당한 위치에 브레이크 포인트를 걸어보겠습니다. 이 때 ..
이번 시간에는 결과를 합집합 하는 sql의 union 연산자에 대해 알아보겠습니다. select 1 As temp를 하면 어떤 값이 나올까요? 1이 나옵니다. 네. 저는 단지 1이라는 값을 선택할 뿐입니다. 그러면, select 2 As temp는 무엇을 의미하나요? 2라는 값을 선택합니다. 이 둘을 union 하면 무엇이 될까요? 아래 쿼리를 작성해 보겠습니다. union 앞 뒤로 괄호로 묶여져 있다는 것을 주목해 보겠습니다. A union B로 묶였다고 했을 때, A는 1을 선택하는 것이였고, B는 2를 선택하는 것이였습니다. 1이라는 결과와 2라는 결과를 union 하면 1과 2가 나올 겁니다. 결과값을 보겠습니다. 1과 2가 나오는군요. 그러면 이런 식으로 작성해도 될까요? union 앞에는 1을..
mybatis의 sql문을 저장해 놓는 mapper 파일이 있습니다. 여기서 parameter를 $을 쓰는 거랑, #을 쓰는 것이랑 차이가 있습니다. 어떤 차이가 있는지 간단하게 알아보도록 하겠습니다. 대략적인 프로젝트 구조는 다음과 같습니다. DatabaseConfig.java는 데이터 소스를 초기화 하기 위한 클래스입니다. 그리고 속성 파일인 application.properties에 데이터 베이스 연결 정보가 들어 있습니다. /user/chk를 post 방식으로 호출을 하면 Controller의 chk를 호출합니다. 그리고 이것은 userdao의 checkId를 호출합니다. 이것은 sqlsession의 selectList를 호출하는데요. tempMapper.xml의 namespace가 com.exa..
최근댓글