Programming(201)
-
많이 늦은감이 있는 Steemit dApp 개발과 관련된 조사
@markdown> 스팀(Steem), 그리고 스팀잇(Steemit)이란?[전종현님의 블로그](http://hyuni.me/2017/09/steemit/)를 참조하자. 설명이 잘 되어있다. 짧게 요약하면 스팀은 가상화폐고, 스팀잇은 저자가 글을 씀으로써 스팀으로 보상을 받을 수 있는 플랫폼이다. > 스팀에 왜 급 관심을?스팀은 블록체인에 모든 거래를 기록하기 때문에 그 기록만 꺼낼 수 있으면 어떠한 형태로든지 웹사이트를 운영하는 것이 가능하다. [나무위키](https://namu.wiki/w/%EC%8A%A4%ED%8C%80%EC%9E%87#s-2)에서 참조한 내용이다. 즉, 이더리움 기반의 dAPP을 만들기 위해 solidity를 사용하는 것과는 달리, 서드파티 앱을 사용하는데 러닝커브가 적다. 사실상..
2018.12.17 -
Wireshark로 SSL/TLS(HTTPS, HTTPS2) 트래픽을 복호화하기
참조: Walkthrough: Decrypt SSL/TLS traffic (HTTPS and HTTP/2) in Wireshark 최근 웹서버가 탑재된 카메라, NVR 장비의 TTA 인증으로 인해, 서버에 대한 보안 작업이 증가하고 있다. 문제는 보안을 적용하는 방법이 아니라, 제대로 적용됐는지를 TTA에 확인할 수 있는 방법이 필요했다. 장비를 최초 부팅할때마다 인증서를 생성하는 것은 문제가 없으나, 인증서를 장비 외부로 반출하여 '정말로 해당 인증서를 사용하여 HTTPS 통신을 하고 있는지'를 보여주는 게 문제였다. 여튼 테스트 중에 RSA키를 사용하여 TLSv1.2로 전송되는 패킷의 복호화를 시도했으나, 정상적으로 복호화가 진행되지 않았다. 서버에 대한 지식이 부족했던 나로써는 꽤나 골치아픈 일이었..
2018.07.02 -
javascript에서 sha256 암호화하기
http://www.movable-type.co.uk/scripts/sha256.html 위의 페이지를 참조하도록 하자. sha256을 암호화하는 로직을, javascript로 구현한 코드다.javascript로 암호화하는 코드를 적용한 경우, 클라이언트에서 해당 파일을 열어볼 수 있다. 이것이 어떠한 문제를 야기할 수 있는가 생각해봤는데, 현재로써 큰 문제를 야기하지는 않을 것 같다. 내 경우에는 php에서 쿼리스트링으로 넘어온 값에 sha256을 적용해야 할 필요가 있었는데, 개발자도구를 통해 확인해보면 키값이 고스란히 노출된다. 따라서 sha256을 javascript 적용하는 게 거의 무의미하다고 생각했었는데, 어차피 해당 키 값을 쿼리스트링으로 전달하는 이상, javasciprt건 activex..
2017.04.06 -
nginx(openresty) + digest 크로스컴파일 삽질기록
- 우리 회사에서 사용하는 장비의 웹 환경은, Openresty가 크로스컴파일되어 fcgi로 api를 주고받는 형식이다. - 예전에 칩셋의 제조사가 한번 바꼈었는데, 예전의 칩셋을 사용하는 장비들은 모두 digest방식을 지원했다. 하지만 어째서인지, 최근 칩셋을 사용하는 플랫폼에는 digest방식을 지원하는 기능이 빠져있었다. - 어찌어찌해서 기존의 플랫폼을 참조하여, digest방식을 지원하는 UI를 만들었다. 그런데 문제가 있었다. 쿼리 스트링을 사용해서 api를 호출하려 하니, 계속해서 재인증을 요청한다. - 도무지 원인을 알 수가 없었기에, nginx 문서와 가이드를 한참을 뒤져보고, 또 설정파일을 분석하느라 약 2주일이 걸렸다. 바짓가랑이라도 잡는 심정으로 전임자가 만들어놓고 간 openres..
2016.12.27 -
Unsupported Selector Lookup. Looking up elements via selectors is not supported by jqLite
Unsupported Selector Lookup. Looking up elements via selectors is not supported by jqLite. jQuery를 사용하지 않기 위해서 사용하기 시작한 AngularJS지만, 가끔씩 AngularJS가 필요할 때가 있다. AngularJS 프레임워크 내부에 jqLite를 포함하고 있기 때문에 $를 이용해서 element를 찾더라도 문제가 없는 경우가 태반이지만, 브라우저에 따라 $가 선언되어있지 않다며 에러를 내뱉는 경우도 왕왕 있다. 그럴때는 보통 angular.element를 이용해서 브라우저의 element를 가져오기 마련이다. 하지만 이 기능을 사용하다보면, Unsupported Selector Lookup. Looking up ele..
2016.10.19 -
SPA에서 ActiveX의 메모리할당이 해제되지 않는 경우
보통 ActiveX는 페이지가 닫힐 때 메모리 할당이 해제되며, 소멸자까지 실행된다. 그러나 만약 원 페이지 웹을 사용한다면 어떨까? 메모리 할당이 해제될 수도 있고, 안될수도 있다. 나의 경우에는 AngularJS를 이용하여 구현한 원 페이지 웹에서, 이러한 증상이 발생했다. 놀랍게도 해당 증상이 발생한 PC와 동일하게 설정한 후 테스트했으나, 증상이 재현되지 않았다. 아무래도 브라우저 설정에 따라 달라지는 것 같은데, 캐시 등에 페이지를 전환하면서 ActiveX의 소멸자를 호출하지 않는 듯한 증상을 보였다. 당시의 ActiveX는 영상을 스트리밍해서 화면에 출력하는 형태로, 소멸자가 호출됨과 동시에 스트리밍 세션이 종료되도록 구현되어있었다. 그러나 페이지를 전환하더라도 스트리밍 세션이 최대 세 개까지..
2016.10.18