Giter Club home page Giter Club logo

tablecloth's People

Contributors

atawlee avatar bakukun avatar chjr avatar cloim avatar hyolog avatar iz4blue avatar leedonggyu1848 avatar level120 avatar papavhub avatar rkttu avatar sang-hyeon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

tablecloth's Issues

GitHub Action 구축

GitHub Action 빌드 프로세스를 구축한다. 이 때 버전 번호는 릴리스 태그를 사용하여 인스톨러부터 바이너리까지 모두 일관되게 지정할 수 있는 방법을 고민해봐야 한다.

또한 코드 서명은 현재는 셀프 사인 인증서로 진행하도록 한다.

Windows 11 (22483)부터 지원되는 ARM64용 샌드박스 지원을 추가할 것인지 기술 검토 진행

https://blogs.windows.com/windows-insider/2021/10/20/announcing-windows-11-insider-preview-build-22483/ 참조

인터넷 뱅킹을 ARM64 환경에서도 여전히 사용할 수 있다면, 식탁보가 ARM64 빌드도 지원해야 할 필요가 있음.

확인해야 할 부분

  • x86, amd64 에뮬레이션이 샌드박스 내에서도 유효한가?
  • IE Mode를 사용할 수 있는가?
  • 인터넷 뱅킹 에이전트가 그대로 실행되는가?

[버그] 모두의 프린터 지원

모두의 프린터는 제작자의 사정 상 수시로 인스톨러 제공 방식을 바꾸고 있어서, 동적으로 URL을 고쳐 쓸 필요가 있음.

인증서 파일이 좀 더 잘 보이는 위치에서 관리되도록 보완

현재는 샌드박스 실행 때 마다 워킹 디렉터리를 만들어 넣는 중인데, 사용자 통제 밖의 영역이라고 본다.

인증서는 바탕화면에 복사하고 (사용자 재량에 따라 인증서 폴더는 완벽히 지울 수 있게 하기 위함) 절대 경로로 연결한다.

  • 인증서는 각 파일에 대한 sha sum을 지문으로 따서 폴더를 만들어 중복되지 않게 관리한다.
  • 앱 종료 시 폴더를 지울지 묻는다.
  • 샌드박스가 아직 실행 중일때는 사용이 끝난 후 사용자에게 바탕 화면의 인증서 폴더를 지울것을 귄장하는 안내를 한다.

Windows 10 1909에서 식탁보로 샌드박스 실행시 "지정된 경로를 찾을 수 없습니다." 에러 발생

샌드박스 실행 버튼 클릭시 "지정된 경로를 찾을 수 없습니다." 에러 발생

case1

ScreenBuilder class process.Exited 핸들러에 breakPoint 잡아두고 실행 시 아래와 같이 샌드박스는 실행되지만 생성된 assets 폴더가 의도하지 않은 위치에 생성되는 것 같습니다.

case2

빌드환경 :
Visual Studio version : community 2019 16.8.5

문제 발생시 설정 정보 :
재현

[제안] 커스텀 카탈로그 익스텐션?

제안해주시는 기능이 소프트웨어로 인해 발생한 문제 때문인가요? 그렇다면 자세히 알려주세요.
문제점에 대해서 간단하고 명료하게 알려주세요. 예: ~할 때 매우 불편합니다.

은행 사이트와 같이 누구나 자주 사용하는 웹사이트일 경우에는 식탁보 프로젝트에서 관리하면 좋겠습니다만, 좀 더 개개인의 생활에 특화된 웹사이트들, 예를 들어 자녀들이 다니는 학교 웹사이트 같은 경우에는 경우의 수도 다양하고 너무 갯수도 많고 관리가 되지 않을 것 같은데요

어떻게 개선한다면 좋을까요?
개선 방안에 대해서 간단하고 명료하게 알려주세요.

이런 경우를 위해 사용자 지정 혹은 커스텀 카탈로그 기능을 이용해서 추가적으로 나만의 리스트를 작성해서 넣을 수 있으면 좋겠습니다.

다른 대안이 있을까요?
만약 이 문제에 대한 다른 대안이 있다면 간단하고 명료하게 알려주세요.

추가 맥락
기능 제안에 관련된 다른 여러가지 부가 적인 정보도 있다면 기재해주세요.

IE 모드 실행 전 IE 설치 여부 검사 추가

IE 모드는 단순히 MSHTML 뷰를 이용하는 것이 아니라, Internet Explorer 프로세스를 재활용하는 것으로 보임. 실제로 확인해보니 IE 모드에서 iexplore.exe를 대신 사용하는 것을 확인함.

따라서 C:\Program Files\Internet Explorer\iexplore.exe 파일이 실존하지 않으면 IE 모드를 사용할 수 없음을 알리는 경고를 띄울 필요가 있음.

덧. 컨테이너 외부에서 Internet Explorer 파일을 찾아 마운트하는 것이므로 컨테이너 외부에서 검사하는 것이 정확하다고 생각함.

WSB 파일 유효성 검사 및 오류 출력

처음 등록했던 #21 의 내용을 대체하는 이슈. WSB 파일이 만들어진 디렉터리를 백업하여 전달받는 것은 의도치 않은 정보 보안 유출이 염려되는 점이 있어, 그 대신 WSB 파일의 내용을 검사하여 문제가 있을 경우 로그 등으로 남기는 대안을 적용하려고 함.

이 문제는 #20 에 대한 솔루션이기도 함.

구성 파일이 잘못되었습니다 오류

빌드: Preview v0.5.0
환경: Windows 11 x64
image

오류내용: NH농협은행 선택 후 샌드박스 실행 버튼 사용 시 '구성 파일이 잘못되었습니다' 라는 오류 팝업 발생.

image

어도비 플래시 플레이어 추가

어도비 플래시 플레이어가 2020년 12월 31일부터 시스템에서 일괄 제거되고 있으나, 여전히 일부 웹 사이트에서는 어도비 플래시에 의존하고 있다는 사례가 있음.

이에 따라 어도비 플래시 플레이어를 샌드박스 안에서 IE와 함께 강제로 다시 살릴 방법이 있는지 리서치해볼 필요가 있음. 단, 기술적으로 가능하지 않을 수도 있음.

참고: https://github.com/CleanFlash/installer

PFX 파일 지원 추가

웹 브라우저 인증서를 지원할 목적으로 공개 키와 개인 키를 묶은 단일 인증서 파일 (PFX, P12)도 인식, 확인 후 복사할 수 있는 기능을 추가한다.

또한 DER+KEY <-> PFX/P12 상호 변환 기능도 제공한다. 지금 추정하기로는 상호 변환을 .NET 또는 Bouncycastle 등의 프레임워크를 이용해서 처리할 수 있을 것으로 본다.

모두의 프린터 지원 추가

모두의 프린터 개발자이신 피로곰님과 메일로 연락을 주고받으면서, 모두의 프린터를 식탁보에 연계하는 것에 우려 사항이 없음을 확인함. 현재 다음의 시나리오를 구상 중.

  • 식탁보 프로그램 실행 시 "모두의 프린터 연동하기" 체크박스 추가
  • 식탁보 설치본 자체에는 모두의 프린터가 들어있지 않고, 샌드박스 실행 직후 모두의 프린터 설치 프로그램을 웹 사이트에서 다운로드 후 설치 시작
  • 모두의 프린터 설치 프로그램 시작 시, 고스트 스크립트를 사용하고 있고, AGPL을 따라야 함을 명시하는 동의 대화 상자 표시 및 사용자 인터랙션 발생
  • 설치 완료 후, 사용자는 인터넷 뱅킹에서 인쇄와 관련된 작업을 진행하게 됨.
  • 약속된 인쇄물 저장 폴더 경로를 호스트의 내 문서 폴더 안의 특정 폴더와 마운트 (기술적으로 이 부분은 윈도우 컨테이너의 폴더 마운트 기능과 같습니다.)
  • 샌드박스 내에서 인쇄 작업이 발생하면 모두의 프린터를 경유하여 호스트 폴더에 인쇄물 PDF 파일이 만들어짐

위에서 중요한 것은 식탁보 설치 패키지 안이 아닌 외부 다운로드의 형태로 모두의 프린터 설치 프로그램을 다운로드하고 실행하는 형태여야 한다는 점.

사이트 호환성 목록에 주요 도메인 추가

Catalog.xml 파일에서 모든 상위 도메인을 읽어 사이트 호환성 목록 XML 파일에 추가하도록 한다. 이렇게 하면 처음에 식탁보에서 선택하지 않은 사이트도 IE 모드로 실행이 가능하다.

최신 버전 확인 기능 추가

1일에 한 번 간격으로 최신 버전을 GitHub API를 이용하여 확인하고 다운로드 링크까지 열어주는 기능을 제공한다.

[버그] Windows 샌드박스가 시작되지 않음 -> WSB 파일이 만들어지지 않음

환경

증상 및 재현

Windows 샌드박스가 시작되지 않습니다.

Windows 샌드박스를 시작하지 못했습니다.

Error 0x8007273f. 해당 프로토콜과 호환되지 않는 주소가 사용되었습니다.

이 문제에 대한 피드백을 제출하시겠습니까?

이 문제는 식탁보 시작 화면에서 샌드박스 실행 버튼을 누르면 발생합니다.
Windows 샌드박스 스플래시 화면까지는 확인할 수 있지만, 직후에 이 문제가 발생하며 실행이 중지됩니다.

스크린샷

image

[버그] 카탈로그 불러오기 오류

버그에 대한 설명
알기 쉽고 간결하게 발생하는 버그에 대한 내용을 알려주시면 감사하겠습니다.

식탁보에서 접속할 사이트를 선택하고 실행하면 스크린샷의 오류가 뜹니다.

재현 방법
구체적으로 해당 증상을 재현하는 방법을 단계별로 최대한 상세하게 알려주세요.

  1. 식탁보에서 접속할 사이트를 선택하고 실행하면 스크린샷의 오류가 뜹니다.
  2. ...

기대하는 동작
버그가 발생하지 않았다면, 원래 어떻게 동작해야 하는지 간단하고 명확하게 알려주세요.

동영상 또는 스크린샷
버그가 발생하기까지의 과정을 설명하는 동영상이나 스크린샷을 가능한 경우 첨부해주세요.
image

시스템 사양

  • OS: Windows 10 Pro
  • CPU 아키텍처: AMD Ryzen 3700X
  • 브라우저: Microsoft Edge
  • 소프트웨어 릴리스 버전: 0.5.2

참고 사항
문제에 관련된 다른 언급할 사항이 있으면 기재해주시면 감사하겠습니다.

[제안] 설명서에 필수적인 내용이 추가적으로 들어가야 할듯 싶습니다.

  1. Windows Sandbox 가 Windows 10 및 Windows 11 Pro / Enterprise / Education 에서 작동하는 기능이기에 적격한 라이센스를 가지고 있어야 한다고 명시를 해야할 듯 합니다.
  2. 식탁보를 사용 중 발생하는 개인,기업,기관의 금전손실,세금신고 누락 등을 비롯한 어떠한 장애나 손해에 대해서는 사용자 본인에게 책임이 있다는 부분을 명시하시고, 중요한 작업의 경우 실 PC환경에서 사용하는 것을 권장하셔야 할 것 같습니다. 필요하다면 식탁보사용시 이에 대한 동의과정을 받고 주기적으로 다시 확인시켜주는 과정이 필요할것 같습니다.

[제안] Windows Sandbox를 이용한 가상머신 대신 Sandboxie 사용

WIndows Sandbox를 사용하면 Hyper-V를 켜야 하는 것과 시스템 리소스 사용량을 많이 켜야 한다는 문제점 때문에 별로 많이 사용하지는 않을 거 같네요
WSL 쓰는 분들은 Hyper-V 는 별로 신경 안 쓰겠지만 윈도우 샌드박스로 가상머신을 돌리면 리소스 사용량 때문에 시스템이 엄청 느려지게 될거 같아서 차라리 가상머신 없이 샌드박스 환경을 제공해주는 Sandboxie를 쓰는게 어떨까 싶어요
오픈소스로 풀린 소프트웨어이기도 하고

Windows 샌드박스 인식 불가

Windows 샌드박스 기능을 켰음에도 불구하고 프로그램에서 샌드박스가 켜져 있지 않다는 오류가 뜹니다.

아래는 대략적인 제 PC 정보입니다.

image

TermService 서비스를 강제 종료하지 못하도록 방어

Windows Sandbox의 필수 서비스인 TermService를 강제 종료하는 보안 에이전트 (예: AhnLab Safe Transaction)로 인해 Sandbox가 강제 종료되는 일이 점점 많이 보이고 있어 대응책이 필요하여 이슈를 만듦. 그러나 해결이 가능할지는 미지수.

아이디어

[버그] 프로그램이 시작되지 않습니다.

버그에 대한 설명
설치 후 프로그램을 실행하면 조금 있다가 그냥 꺼집니다.

재현 방법

  1. 윈도우 샌드박스 기능 추가
  2. 재부팅
  3. 식탁보 설치
  4. 프로그램 실행

동영상 또는 스크린샷
화면 캡처 2022-01-22 112715

시스템 사양
화면 캡처 2022-01-22 112823

참고 사항
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 다이얼로그 개선하기

About 다이얼로그에 다음의 정보를 추가한다.

  • Git 커밋 리비전 번호
  • 프로젝트 자체에 대한 라이선스 정보
  • 사용된 리소스와 라이브러리에 대한 라이선스 정보
  • 시스템 정보 (호스트 프로그램에서만)
  • 다운로드한 카탈로그 XML 파일에 대한 정보 추가
  • 공식 홈페이지로 가는 링크 추가

[버그] 공동 인증서 .der 파일과 .key 파일을 함께 가져오지 않으면 프로그램이 종료됨

환경

증상 및 재현

식탁보 샌드박스 실행 직전 기존 공동 인증서 파일 가져오기직접 공동 인증서 찾기...를 통해 공동 인증서 파일을 가져오려고 할 때, .der 파일과 .key 파일 둘을 한번에 선택해야 정상적으로 파일이 추가됩니다.

만약 둘 중 하나만 선택해서 불러오려고 하면 프로그램이 잠시 멈추다가 그대로 종료됩니다.

스크린샷

bandicam.2021-09-22.10-49-06-744.mp4

IE 모드에서 일부 사이트가 RDP 크래시를 일으킴

IE 모드에서 일부 사이트가 RDP 크래시를 일으켜 샌드박스가 닫히는 현상이 확인됨. (KB국민은행 로그인 페이지)

한편, Chrome의 IE Tab을 이용해서 띄웠을 때에는 문제가 발생하지 않음. 이런 경우를 고려하여 Edge를 대신하여 직접 IE Trident Web View를 보여주는 미니 브라우저를 제작해야 하진 않을지 고민이 필요함.

또한 이 문제는 나중에 Microsoft에서 해결을 해줄 여지가 있다고 생각하여 당장 착수하기도 애매한 면이 있음.

[제안] ApplicationLog를 저장하는 폴더 경로를 변경하는 기능

제안해주시는 기능이 소프트웨어로 인해 발생한 문제 때문인가요? 그렇다면 자세히 알려주세요.
프로그램을 실행시킬때마다 경고를 포함한 로그가 생성될 경우 바탕화면에 폴더가 만들어집니다.

어떻게 개선한다면 좋을까요?
바탕화면 대신 문서 폴더에 로그를 저장해야 합니다.
또는, 식탁보 앱 설치시 로그의 경로를 설정하는 기능의 추가가 있으면 좋을 것 같습니다.

다른 대안이 있을까요?
지금 단계에서 다른 대안은 생각이 나지 않습니다. 다른 좋은 기능이 있다면 같이 생각해 보는 것도 좋을 것 같네요 :)

추가 맥락
프로젝트를 실행시킬 때마다 다음과 같은 경고가 출력됩니다.
별도의 이슈로 만들까 생각하다가, 우선 해당 이슈에 같이 붙여넣겠습니다.

{
  "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"
  }
}

IE 모드 등록을 위한 카탈로그 별도 생성

현재는 카탈로그 XML 파일의 Service Url들을 복사해서 IE 모드 등록을 위한 카탈로그를 만들고 있지만, IE 모드 등록을 위한 별도의 카탈로그를 분리하는 것이 더 좋겠다는 생각이 듦. (예: 애니서포트의 경우처럼 ActiveX만 설치하는 경우 카탈로그에 의미없이 사이트를 추가해야 함.)

이 때, 루트 도메인 유추에 의존하지 않고, 카탈로그의 설정을 복사해서 사용하는 형태로 가고자 함.

예:

<IEModeList>
  <Sites>
    <!-- Mode의 기본 값은 Default, OpenIn의 기본 값은 IE11로 지정하지 않아도 되도록 간소화 -->
    <Site Url="wooribank.com" Mode="Default" OpenIn="IE11" />
  </Sites>
</IEModeList>

독립 Org, 웹 사이트 만들기

dotnetdev-kr org에서 tablecloth org를 별도 생성하여 다음의 작업을 진행

  • 별도 Org 생성 후 리포지터리 이관
  • tablecloth-homepage 리포 생성
  • tablecloth-catalog 리포 생성
  • tablecloth-homepage의 GitHub Page와 커스텀 도메인 연결

[버그] 특정 환경 (10 21H1)에서 WPF 앱이 빈 화면으로만 표시됨

버그에 대한 설명
알기 쉽고 간결하게 발생하는 버그에 대한 내용을 알려주시면 감사하겠습니다.

재현 방법
구체적으로 해당 증상을 재현하는 방법을 단계별로 최대한 상세하게 알려주세요.

  1. 특별한건 없고 실행시 매번 재현됩니다.

기대하는 동작
버그가 발생하지 않았다면, 원래 어떻게 동작해야 하는지 간단하고 명확하게 알려주세요.

동영상 또는 스크린샷
버그가 발생하기까지의 과정을 설명하는 동영상이나 스크린샷을 가능한 경우 첨부해주세요.

Untitled

시스템 사양

  • OS: Windows 10 Pro 21H1
  • CPU 아키텍처: AMD Ryzen 7 1800X Eight-Core Processor
  • 브라우저: Firefox
  • 소프트웨어 릴리스 버전: 0.5.1

참고 사항
문제에 관련된 다른 언급할 사항이 있으면 기재해주시면 감사하겠습니다.

#37 (comment)

이 분이 언급하신 내용과 동일한 증상으로 보입니다.

몇몇 종속 요소의 자동 설치 (부트스트래핑) 지원 추가

MSI 설치 마법사 수준에서 다음의 종속 요소들의 존재 여부를 확인한 후, 자동으로 설치를 유도하는 기능을 추가한다.

  • (2023년 7월 추가) Microsoft Edge
  • Internet Explorer (Windows 10 한정, Windows 11은 빌트인으로 들어있고 제거가 불가능함)
  • Windows Sandbox (설치 여부, 설치가 가능한 환경인지 체크 후 자동 설치 시도)

노트: Hostess는 .NET Framework 4.x가 필요로 하지만, 테스트해본 결과 .NET Framework 4.x는 Windows에 처음부터 내장된 강결합 요소여서 별도 부트스트래핑이 필요하지 않음을 확인함. (즉, 샌드박스에서는 언제든지 사용 가능함을 의미함)

샌드박스 구성 파일 관련 오류를 편하게 진단할 수 있는 방법 마련하기

종종 샌드박스 XML 파일이 잘못되었다는 오류가 발생하는데, 이 문제를 디버깅하기 위한 장치가 필요함.

시놉시스

  • 샌드박스 실행 후 사용자가 0x80070003 오류를 발견
  • 그 상태에서 식탁보에서 진단 - 문제점 제보하기 클릭
  • 가장 마지막으로 만들어진 샌드박스 디렉터리 (단, certs 폴더 제외)와 로그 파일을 ZIP 파일로 압축하여 바탕 화면에 생성
  • GitHub 이슈 페이지를 브라우저로 자동으로 열어 이슈를 제보할 수 있도록 함

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.