yourtablecloth / tablecloth Goto Github PK
View Code? Open in Web Editor NEW식탁보 프로젝트
License: GNU Affero General Public License v3.0
식탁보 프로젝트
License: GNU Affero General Public License v3.0
GitHub Action 빌드 프로세스를 구축한다. 이 때 버전 번호는 릴리스 태그를 사용하여 인스톨러부터 바이너리까지 모두 일관되게 지정할 수 있는 방법을 고민해봐야 한다.
또한 코드 서명은 현재는 셀프 사인 인증서로 진행하도록 한다.
인터넷 뱅킹을 ARM64 환경에서도 여전히 사용할 수 있다면, 식탁보가 ARM64 빌드도 지원해야 할 필요가 있음.
확인해야 할 부분
로그 수집 대신 Sentry 연동을 추가하도록 변경하고, 로그 관련 패키지와 설정들은 제거한다.
모두의 프린터는 제작자의 사정 상 수시로 인스톨러 제공 방식을 바꾸고 있어서, 동적으로 URL을 고쳐 쓸 필요가 있음.
현재는 샌드박스 실행 때 마다 워킹 디렉터리를 만들어 넣는 중인데, 사용자 통제 밖의 영역이라고 본다.
인증서는 바탕화면에 복사하고 (사용자 재량에 따라 인증서 폴더는 완벽히 지울 수 있게 하기 위함) 절대 경로로 연결한다.
이슈 #8을 구현하기 위해 필요한 작업이며, 동시에 다른 뱅킹용 플러그인 설치를 대신 부르기도 하므로 이렇게 만드는 것이 일관성이 있음.
제안해주시는 기능이 소프트웨어로 인해 발생한 문제 때문인가요? 그렇다면 자세히 알려주세요.
문제점에 대해서 간단하고 명료하게 알려주세요. 예: ~할 때 매우 불편합니다.
은행 사이트와 같이 누구나 자주 사용하는 웹사이트일 경우에는 식탁보 프로젝트에서 관리하면 좋겠습니다만, 좀 더 개개인의 생활에 특화된 웹사이트들, 예를 들어 자녀들이 다니는 학교 웹사이트 같은 경우에는 경우의 수도 다양하고 너무 갯수도 많고 관리가 되지 않을 것 같은데요
어떻게 개선한다면 좋을까요?
개선 방안에 대해서 간단하고 명료하게 알려주세요.
이런 경우를 위해 사용자 지정 혹은 커스텀 카탈로그 기능을 이용해서 추가적으로 나만의 리스트를 작성해서 넣을 수 있으면 좋겠습니다.
다른 대안이 있을까요?
만약 이 문제에 대한 다른 대안이 있다면 간단하고 명료하게 알려주세요.
추가 맥락
기능 제안에 관련된 다른 여러가지 부가 적인 정보도 있다면 기재해주세요.
IE 모드는 단순히 MSHTML 뷰를 이용하는 것이 아니라, Internet Explorer 프로세스를 재활용하는 것으로 보임. 실제로 확인해보니 IE 모드에서 iexplore.exe
를 대신 사용하는 것을 확인함.
따라서 C:\Program Files\Internet Explorer\iexplore.exe
파일이 실존하지 않으면 IE 모드를 사용할 수 없음을 알리는 경고를 띄울 필요가 있음.
덧. 컨테이너 외부에서 Internet Explorer 파일을 찾아 마운트하는 것이므로 컨테이너 외부에서 검사하는 것이 정확하다고 생각함.
PowerShell의 보안 정책 상 스크립트 실행을 불허하는 경우가 있으므로, 바탕 화면 배경 변경, 파일 복사 등의 동작을 모두 Hostess로 옮길 필요가 있음.
어도비 플래시 플레이어가 2020년 12월 31일부터 시스템에서 일괄 제거되고 있으나, 여전히 일부 웹 사이트에서는 어도비 플래시에 의존하고 있다는 사례가 있음.
이에 따라 어도비 플래시 플레이어를 샌드박스 안에서 IE와 함께 강제로 다시 살릴 방법이 있는지 리서치해볼 필요가 있음. 단, 기술적으로 가능하지 않을 수도 있음.
다운로더를 내려받지 않고, 모두의 프린터 홈페이지를 대신 열도록 변경한다.
웹 브라우저 인증서를 지원할 목적으로 공개 키와 개인 키를 묶은 단일 인증서 파일 (PFX, P12)도 인식, 확인 후 복사할 수 있는 기능을 추가한다.
또한 DER+KEY <-> PFX/P12 상호 변환 기능도 제공한다. 지금 추정하기로는 상호 변환을 .NET 또는 Bouncycastle 등의 프레임워크를 이용해서 처리할 수 있을 것으로 본다.
Adobe Reader 설치 링크 (http://get.adobe.com/reader)를 열 수 있도록 화면 UI에 옵션을 추가한다.
빌드: 13a790e
오류 내용: 사이트 프리셋 선택과 상관없이 사전 프로그램 설치가 진행되지 않음
(공동 인증서, 모두의 프린터 등은 정상 작동, 스크립트 자체는 샌드박스 부팅 후 실행됨)
모두의 프린터 개발자이신 피로곰님과 메일로 연락을 주고받으면서, 모두의 프린터를 식탁보에 연계하는 것에 우려 사항이 없음을 확인함. 현재 다음의 시나리오를 구상 중.
위에서 중요한 것은 식탁보 설치 패키지 안이 아닌 외부 다운로드의 형태로 모두의 프린터 설치 프로그램을 다운로드하고 실행하는 형태여야 한다는 점.
Catalog.xml 파일에서 모든 상위 도메인을 읽어 사이트 호환성 목록 XML 파일에 추가하도록 한다. 이렇게 하면 처음에 식탁보에서 선택하지 않은 사이트도 IE 모드로 실행이 가능하다.
1일에 한 번 간격으로 최신 버전을 GitHub API를 이용하여 확인하고 다운로드 링크까지 열어주는 기능을 제공한다.
Sentry를 통해 많이 발생한 오류 내역. 추정되는 원인은 다음과 같다.
https://dotnetdev-kr.github.io/TableCloth/Catalog.xml
위 주소에서 카탈로그 파일을 받아오는데 404 오류가 뜨네요.
혹시 현재 변경중인 부분인가요?
Windows 샌드박스가 시작되지 않습니다.
Windows 샌드박스를 시작하지 못했습니다.
Error 0x8007273f. 해당 프로토콜과 호환되지 않는 주소가 사용되었습니다.
이 문제에 대한 피드백을 제출하시겠습니까?
이 문제는 식탁보 시작 화면에서 샌드박스 실행
버튼을 누르면 발생합니다.
Windows 샌드박스 스플래시 화면까지는 확인할 수 있지만, 직후에 이 문제가 발생하며 실행이 중지됩니다.
버그에 대한 설명
알기 쉽고 간결하게 발생하는 버그에 대한 내용을 알려주시면 감사하겠습니다.
식탁보에서 접속할 사이트를 선택하고 실행하면 스크린샷의 오류가 뜹니다.
재현 방법
구체적으로 해당 증상을 재현하는 방법을 단계별로 최대한 상세하게 알려주세요.
기대하는 동작
버그가 발생하지 않았다면, 원래 어떻게 동작해야 하는지 간단하고 명확하게 알려주세요.
동영상 또는 스크린샷
버그가 발생하기까지의 과정을 설명하는 동영상이나 스크린샷을 가능한 경우 첨부해주세요.
시스템 사양
참고 사항
문제에 관련된 다른 언급할 사항이 있으면 기재해주시면 감사하겠습니다.
일반 사용자용 매뉴얼을 작성하여 GitHub Pages로 배포한다.
각 은행, 카드사별 공동인증서 가져오기 내보내기 페이지로 자동 이동하는 기능을 신설한다.
WIndows Sandbox를 사용하면 Hyper-V를 켜야 하는 것과 시스템 리소스 사용량을 많이 켜야 한다는 문제점 때문에 별로 많이 사용하지는 않을 거 같네요
WSL 쓰는 분들은 Hyper-V 는 별로 신경 안 쓰겠지만 윈도우 샌드박스로 가상머신을 돌리면 리소스 사용량 때문에 시스템이 엄청 느려지게 될거 같아서 차라리 가상머신 없이 샌드박스 환경을 제공해주는 Sandboxie를 쓰는게 어떨까 싶어요
오픈소스로 풀린 소프트웨어이기도 하고
Windows Sandbox의 필수 서비스인 TermService를 강제 종료하는 보안 에이전트 (예: AhnLab Safe Transaction)로 인해 Sandbox가 강제 종료되는 일이 점점 많이 보이고 있어 대응책이 필요하여 이슈를 만듦. 그러나 해결이 가능할지는 미지수.
아이디어
버그에 대한 설명
설치 후 프로그램을 실행하면 조금 있다가 그냥 꺼집니다.
재현 방법
참고 사항
ApplicationLog.josnl 에 남겨진 로그정보 남깁니다.
{"Timestamp":"2022-01-22T11:23:29.5401723+09:00","Level":"Warning","MessageTemplate":"Cannot load X509 cert pair - C:\\Users\\chokije\\AppData\\LocalLow\\NPKI\\yessign","Exception":"System.InvalidOperationException: Sequence contains more than one element\r\n at System.Linq.ThrowHelper.ThrowMoreThanOneElementException()\r\n at System.Linq.Enumerable.TryGetSingle[TSource](IEnumerable`1 source, Boolean& found)\r\n at System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable`1 source)\r\n at TableCloth.Implementations.X509CertPairScanner.ScanX509Pairs(IEnumerable`1 rootPathList) in D:\\a\\TableCloth\\TableCloth\\src\\TableCloth\\Implementations\\X509CertPairScanner.cs:line 76","Properties":{"SourceContext":"TableCloth.Implementations.X509CertPairScanner"}}
About 다이얼로그에 다음의 정보를 추가한다.
식탁보 샌드박스 실행 직전 기존 공동 인증서 파일 가져오기
의 직접 공동 인증서 찾기...
를 통해 공동 인증서 파일을 가져오려고 할 때, .der
파일과 .key
파일 둘을 한번에 선택해야 정상적으로 파일이 추가됩니다.
만약 둘 중 하나만 선택해서 불러오려고 하면 프로그램이 잠시 멈추다가 그대로 종료됩니다.
Public Suffix 매칭 오류로 kbstar.com이 kbs.ar.com 으로 잘못 인식되어 등록되고 있음.
센트리 로그 보내기 Opt In/Out을 포함하여 몇 가지 설정을 관리할 수 있도록 기능 구현하기
IE 모드에서 일부 사이트가 RDP 크래시를 일으켜 샌드박스가 닫히는 현상이 확인됨. (KB국민은행 로그인 페이지)
한편, Chrome의 IE Tab을 이용해서 띄웠을 때에는 문제가 발생하지 않음. 이런 경우를 고려하여 Edge를 대신하여 직접 IE Trident Web View를 보여주는 미니 브라우저를 제작해야 하진 않을지 고민이 필요함.
또한 이 문제는 나중에 Microsoft에서 해결을 해줄 여지가 있다고 생각하여 당장 착수하기도 애매한 면이 있음.
제안해주시는 기능이 소프트웨어로 인해 발생한 문제 때문인가요? 그렇다면 자세히 알려주세요.
프로그램을 실행시킬때마다 경고를 포함한 로그가 생성될 경우 바탕화면에 폴더가 만들어집니다.
어떻게 개선한다면 좋을까요?
바탕화면 대신 문서 폴더에 로그를 저장해야 합니다.
또는, 식탁보 앱 설치시 로그의 경로를 설정하는 기능의 추가가 있으면 좋을 것 같습니다.
다른 대안이 있을까요?
지금 단계에서 다른 대안은 생각이 나지 않습니다. 다른 좋은 기능이 있다면 같이 생각해 보는 것도 좋을 것 같네요 :)
추가 맥락
프로젝트를 실행시킬 때마다 다음과 같은 경고가 출력됩니다.
별도의 이슈로 만들까 생각하다가, 우선 해당 이슈에 같이 붙여넣겠습니다.
{
"Timestamp": "2022-01-13T16:47:49.2429581+09:00",
"Level": "Warning",
"MessageTemplate": "Cannot load X509 cert pair - D:\\NPKI\\KICA\\USER\\cn=OOO79,ou=RA센터,ou=OO은행,ou=등록기관,ou=licensedCA,o=KICA,c=KR",
"Exception": "System.InvalidOperationException: Sequence contains more than one element\r\n at System.Linq.ThrowHelper.ThrowMoreThanOneElementException()\r\n at System.Linq.Enumerable.TryGetSingle[TSource](IEnumerable`1 source, Boolean& found)\r\n at System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable`1 source)\r\n at TableCloth.Implementations.X509CertPairScanner.ScanX509Pairs(IEnumerable`1 rootPathList) in D:\\a\\TableCloth\\TableCloth\\src\\TableCloth\\Implementations\\X509CertPairScanner.cs:line 76",
"Properties": {
"SourceContext": "TableCloth.Implementations.X509CertPairScanner"
}
}
#22 로 이슈를 병합함
카탈로그를 가져오지 못했을 때 다시 불러오는 기능 (버튼, 링크)을 추가한다.
현재는 카탈로그 XML 파일의 Service Url들을 복사해서 IE 모드 등록을 위한 카탈로그를 만들고 있지만, IE 모드 등록을 위한 별도의 카탈로그를 분리하는 것이 더 좋겠다는 생각이 듦. (예: 애니서포트의 경우처럼 ActiveX만 설치하는 경우 카탈로그에 의미없이 사이트를 추가해야 함.)
이 때, 루트 도메인 유추에 의존하지 않고, 카탈로그의 설정을 복사해서 사용하는 형태로 가고자 함.
예:
<IEModeList>
<Sites>
<!-- Mode의 기본 값은 Default, OpenIn의 기본 값은 IE11로 지정하지 않아도 되도록 간소화 -->
<Site Url="wooribank.com" Mode="Default" OpenIn="IE11" />
</Sites>
</IEModeList>
dotnetdev-kr org에서 tablecloth org를 별도 생성하여 다음의 작업을 진행
버그에 대한 설명
알기 쉽고 간결하게 발생하는 버그에 대한 내용을 알려주시면 감사하겠습니다.
재현 방법
구체적으로 해당 증상을 재현하는 방법을 단계별로 최대한 상세하게 알려주세요.
기대하는 동작
버그가 발생하지 않았다면, 원래 어떻게 동작해야 하는지 간단하고 명확하게 알려주세요.
동영상 또는 스크린샷
버그가 발생하기까지의 과정을 설명하는 동영상이나 스크린샷을 가능한 경우 첨부해주세요.
시스템 사양
참고 사항
문제에 관련된 다른 언급할 사항이 있으면 기재해주시면 감사하겠습니다.
이 분이 언급하신 내용과 동일한 증상으로 보입니다.
MSI 설치 마법사 수준에서 다음의 종속 요소들의 존재 여부를 확인한 후, 자동으로 설치를 유도하는 기능을 추가한다.
노트: Hostess는 .NET Framework 4.x가 필요로 하지만, 테스트해본 결과 .NET Framework 4.x는 Windows에 처음부터 내장된 강결합 요소여서 별도 부트스트래핑이 필요하지 않음을 확인함. (즉, 샌드박스에서는 언제든지 사용 가능함을 의미함)
종종 샌드박스 XML 파일이 잘못되었다는 오류가 발생하는데, 이 문제를 디버깅하기 위한 장치가 필요함.
시놉시스
0x80070003
오류를 발견진단
- 문제점 제보하기
클릭certs
폴더 제외)와 로그 파일을 ZIP 파일로 압축하여 바탕 화면에 생성A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.