본문 바로가기

프로그래밍248

[REST API]REST를 사용할 때 주의해야할 점 REST를 만든사람 : 로이필딩, 박사학위 논문 (https://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm) REST API : REST 아키텍처를 따르는 시스템 구성요소 Client-Server stateless cache uniform interface layered system code-on-demand (optional) —> 대부분의 요소는 잘 지켜지고 있다. ( 브라우저 같은 곳에서 지원하기 때문 ) —> Uniform interface가 잘 지켜지는지는 되돌아볼 필요가 있다. Uniform interface 제약조건 identification of resources manipulation of resources thorough represen.. 2019. 8. 4.
[ethereum] Ethereum 설치(truffle / ganache-cli) 및 실행 개론 저는 원래 메인 개발언어가 Java입니다. 그리고 이번에 BlockChain을 개발할 기회가 생겼습니다. 그리고 여러 자료를 찾아봤습니다. 그런데 Ethereum과 통신하는 Client SDK의 Reference는 대부분이 javascript기반이었습니다. 이럴수가... Java로 개발하고 싶던 저는 계속 찾아보다가 Web3j라는 Java와 Ethereum의 통신을 해주는 프로젝트를 발견했고 사용하려고 했습니다. 여거서 또 문제가 발생했습니다. 이 프로젝트가 너무 Well-made 였기때문에 바로 사용하기는 너무 어려웠고 분석이 필요했습니다. 그래서 이 OpenSource Project를 사용하기 전에 공부를 겸해서 직접 만들어 봐야겠다 싶어서 만들어본 프로젝트가 지금의 Ethereum-With-J.. 2019. 7. 25.
자바(java) 보안(SECURE) 코딩 2. 크로스 사이트 스크립트 서론 크로스 사이트 스크립트 (Cross-site Scripting)는 script 코드를 내용 등에 추가하여 해당 웹페이지를 열었을 때 해당 코드가 실행되게 하여 공격하는 기법이다. 본문의 내용에 자바스크립트 코드 등을 넣어서 접속자의 정보를 유출하는 등의 방법으로 사용될 수 있다. 1. 공격자가 웹서버에 악성 스크립트가 포함된 내용을 저장함 2. 사용자가 트정 게시물을 여는 등의 웹서버에서 행위를 발생 3. 공격자가 해당 게시물에 심어놓은 코드가 실행되어 의도치 않은 작동를 하게 된다 안전한 코딩 기법 1. 사용자가 문자열에 스크립트를 삽입하여 실행하는 것을 막기 위해 , & 등을 replace 문자 변환 함수나 메서드를 사용하여 &rlt, &rgt, &ramp, "로 치환 2. HTML 태그를 허용.. 2019. 7. 1.
Jenkins를 Windows Docker에서 쓸 때 유의사항 ! 안녕하세요. 이번에 Jenkins를 Windows의 Docker에서 쓸 때 유의사항을 공유드립니다. 만약 당신이 현재 Windows에서, 그리고 Kitematic을 이용해서 Offitial Jenkins 이미지를 Container로 설치했다면 Plugin을 정상적으로 받을 수 없습니다. 왜냐하면 이미 그 Image는 deprecated(이제 사용하지않는) 되었기 때문입니다. 우 상단에 보이는 jenkins는 현재 정상사용이 불가능하다... ㅠㅠ 왜나하면 지금 해당하는 jenkins는 deprecated 되었기 때문입니다. 그러면 어떻게 받아야 하나? vm에 접속하여 직접 받아주서야 합니다. (Oracle vm virtualMachine 등) 아래의 명령어를 이용하여 받으면 정상동작합니다. docker p.. 2019. 6. 23.
Spring boot를 docker와 함께 쓸 때 발생하는 에러 대처법 Windows에서 Spring boot를 docker에 자동 image가 올라가도록 만들어보고 싶어서 구글링을 해가면서 도전해 보았다... 결과적으로 잘 되긴 했지만 예상외의 오류들이 많이 발생하였고, 해당 오류의 해결법을 공유하고자한다. 1. Windows에 Docker를 설치했는데 실행이 안되요 -> 처음에 Docker를 설치하자마자 오류가 발생했다. 왜 실행이 안되는지 봤더니 Windows의 버전에 따라 설치해야하는 파일이 다른것을 알았다. 원래 Docker가 Linux Container를 근본 원리로 하고 있어서 Windows는 지원이 조금 떨어진다고 한다. - Windows10 pro 이상부터는 Windows 자체에서 가상화서버를 지원한다. 그래서 (https://hub.docker.com/ed.. 2019. 6. 20.
자바(java) 보안(SECURE) 코딩 1. SQL, 자원(Resource) 삽입(Injection) 대학교 때 코딩을 할 때와는 다르게 지금은 코딩을 하면서 이게 보안에 적합한가? 라는 생각을 많이 하게 되었다. 그래서 한국인터넷진흥원에서 발행한 보안 코딩가이드를 보면서 회사에서 진행했던 프로젝트와 비교해보았다. 생각보다 안지켜지던 점이 많았다. 앞으로 내가 코딩할때는 위 원칙들은 반드시 지켜야 겠다라고 생각하며 내용을 정리해 본다. 1. SQL 삽입 - DB와 연동된 웹 어플리케이션에서 공격자가 입력 폼 및 URL 입력란에 SQL문 자체를 입력하여 DB로 부터 저옵를 열람하거나 조작할 수 있는 보안약점이다. public void weakCode(String name) { String tableName = "weakCodeTable"; String query = "SELECT * " + "FROM "+.. 2019. 6. 19.
솔리디티 함수(function)에 대해서_1. 가시성(visible) 오늘은 이더리움(ethereum)위에 프로그래밍 할 수 있는 솔리디티의 함수에 대해서 알아보도록 하겠습니다. 솔리디티의 함수는 아래의 형식을 따릅니다. function 함수이름(입력파라미터) 옵션 (출력파라미터) { 함수내용 } function test(x, y, ..., zn) external returns(a,b, ... an) { ... } 함수이름과 입력파라미터의 경우는 다른 언어들과 별반 차이가 없으므로 넘어가도록 하고 옵션쪽을 좀 더 구체적으로 보겠습니다. 옵션은 이함수의 추가적인 정보를 기술합니다. 접근제어, 리턴벨류 등을 말이죠 함수의 가시성(visible) 1. external / public / internal / private - private : contract 내부에서만 접근 가능.. 2019. 6. 16.
리눅스 많이 사용하는 기본명령어 5가지 모음 1. cd(Change Directory) 디렉토리 이동 //cd [이동하고자 하는 상대경로 OR 절대경로] sabarada@bar:~$ cd /home/sabarda/test sabarada@bar:/home/sabarda/test$ 옵션 부가설명 상대경로 : 현 디렉토리를 기준으로 이동 ex) ./foo/bar -> 현재 디렉토리 아래의 /foo/bar 로 이동 2. ls(list) 현재 디렉토리의 list(들어있는 파일 등) 출력 // 현재 디렉토리의 목록을 시간의 역순으로 자세히 출력 // ls [옵션] sabarada@bar:~$ ls -lrt 옵션 부가설명 l : 자세히 보기 형식으로 출력 r : 거꾸로 출력한다. 기본 ls명령어는 이름 순서 t : 시간 준으로 출력한다. 3. alias 자주.. 2019. 6. 7.