본문 바로가기
2020 10 21 optional catch binding in javascript ES2019에 도입된 optional catch binding 문법을 사용하면 오류 개체를 저장하기 위해 변수를 사용할 필요가 없다. 즉 catch이후 ()괄호를 제거할 수 있다. *유일하게 IE! 에서 만! 지원하지 않으므로 유의한다.. // optional catch binding try{ }catch{ } // standard try{ }catch(e){ } 참고[https://www.tutorialspoint.com/explain-optional-catch-binding-in-javascript] 참고2[https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Statement.. 2020. 10. 21.
2020 10 16 로컬 main.html에서 iframe + DOM을 사용해서 (서버 수정 없이) 셀레니움처럼 테스트 할 수 있지 않을까? - Same-origin policy의 이해 결론만 말하면 (domain+port+protocol)이 다르면 불가능하다. https://stackoverflow.com/questions/25098021/securityerror-blocked-a-frame-with-origin-from-accessing-a-cross-origin-frame 매일 반복적으로 하는 테스트가 귀찮아서, 로컬 HTML파일에 iframe을 넣은후, 내부 iframe의 DOM을 조작해서 웹테스트할수있지 않을까 했는데.. 결론은 불가능 생각해보면.. 만약 이게 가능하면 악의적인 개발자가, 자신의 서비스에 몰래 타사.. 2020. 10. 16.
2020 10 14 Canary 요약하자면, return value전에 특정 값을 넣어서, return address로 돌아가기 전에 canary값이 실행전과 일치하는지 여부를 확인하는 메커니즘이다. 만약 컴파일러가 canary영역의 4byte를 전부 'a'로 채우면 무슨 문제가 발생할까? buffer overflow공격에 해당 값을 사용할 수 있다. -> canary값이 변경되지 않았는지 판단하기가 어려워진다. 따라서 canary는 추측하기 어렵거나, 추측하기 쉬우더라도 여전히 버퍼 overflow공격 여부를 판단할 수 있어야한다. Canary 값을 어떻게 지정할것인가? 1.종결문자를 canary값으로 사용하기 여러 C 함수들은 특정 문자들을 종결문자로 사용한다.(해당 문자를 받으면 사용자입력이 완료되었다고.. 2020. 10. 14.
2020 10 13 C는 high-level assembly이다 따라서.. memory가 raw pointer에 노출된다. : 다른 언어가 레퍼런스 변수만으로 객체에 접근하는데 비해 C는 포인터를 이용하여 메모리 접근이 자유롭다. 배열의 경계 검사를 하지 않는다. (하지만 하드웨어도 하지 않는다.) Buffer Overflow 아래의 코드를 예로 들어보자. void read_req() { char buf[128]; int i; gets(buf); }컴파일은 memory layout을 어떻게 생성할까? 알다시피, C로 생성한 실행파일의 구조는 아래와 같다. 공격자는 해당 코드를 어떻게 이용할까? gets함수로 표준입력장치로 buf에 데이터를 받을때, 만약 buf의 사이즈가 128을 넘어가게되면 다른 데이터를 덮어버린다! 그러.. 2020. 10. 13.
2020 10 07 해당 영상을 www.youtube.com/watch?v=m47MWSXNslg 바탕으로 작성한 내용입니다. 젠킨스 설치 다운 후 java -jar jenkins 해서 설치진행 Jenkins Standalone: 젠킨스 단독실행 Jenkins with Tomcat: Tomcat안에서 젠킨스 실행 - 실행 방식이 달라도 젠킨스가 같다면 Job을 공유한다. 젠킨스 home directory 변경 변경하는 이유? 잡이 늘어나면 용량을 차지 해서 .jenkins폴더(젠킨스 홈 폴더)의 용량이 점점늘어나서. 젠킨스의 home 폴더에 저장되는것 - 로그 - 설정 - 잡 디테일 1) 현재 젠킨스 홈 디렉토리 확인한다. 2) 젠킨스 홈 디렉토리가 될 새로운 폴더를 생성한다. 3) 기존 젠킨스 홈 파일을 전부 새로운 폴더에.. 2020. 10. 7.
2020 10 05 HttpUrlConnection 객체가 200외의 에러를 반환한다면 inputStream을 read시도시 Exception이 발생하는데, 에러 발생 원인이 ResponseBody안에 json형태로 담겨있다면 이 오류를 봐야만 한다. 200외의 에러일때 ResponseBody 가져오는법 HttpURLConnection httpConn = (HttpURLConnection)_urlConnection; InputStream _is; if (httpConn.getResponseCode() >= 400) { _is = httpConn.getInputStream(); } else { /* error from server */ _is = httpConn.getErrorStream(); } //응용 HttpURLCon.. 2020. 10. 5.