Windows-signeerdag: de uninstaller, en drie restpunten uit de ketenjacht #1600
Labels
No labels
accepted
bug
declined
docs
duplicate
enhancement
good first issue
in-progress
needs-info
privacy
security
triage
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
LibreKAT/Ocideck#1600
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Restpunten uit de adversariële jacht op de Windows-installerketen na rc1 (#1583, PR #1598). De blokkerende en stil-verkeerde bevindingen zijn in die PR gerepareerd; deze vier zijn bewust doorgeschoven, elk met de reden erbij. Let op: de toetsing van een deel van deze bevindingen is niet afgerond (de weerleggers sneuvelden op een sessielimiet) — verifieer bij het oppakken eerst aan de bron.
1.
unins000.exeblijft ongetekend op signeerdagDe
.isszet geenSignTool-richtlijn, dusSignedUninstallerstaat opno. De externe signtool-stap inscripts/build_windows_installer.shdraait ná ISCC en raakt de uninstaller niet. Op de dag dat er een certificaat is, toont verwijderen dus alsnog "Onbekende uitgever".De route is ISCC's eigen signeerintegratie:
/Ssigntool="…"op de commandoregel plusSignTool=signtoolenSignedUninstaller=yesin de.iss(achter een#ifdef, zodat een bouw zonder certificaat niets merkt). Waarom uitgesteld: de quoting van zo'n geneste aanroep door bash → MSYS → ISCC is precies de klasse fout die rc1 blootlegde, en er is geen certificaat om het mee te toetsen. Dit hoort gebouwd én geproefd te worden op de dag dat het token er is, niet ervoor.2.
LicenseFiletoont rauwe MarkdownLicenseFile=..\..\LICENSE.mdcompileert en werkt, maar de licentiepagina — het eerste scherm dat elke Windows-gebruiker ziet — toont het HTML-commentaar en de opmaaktekens letterlijk. Cosmetisch; de nette oplossing is een gegenereerde platte-tekst- of RTF-variant, en die generatie hoort dan wel onder een poort die hem vers houdt. Klein maar niet gratis.3.
windows/file-associations.regbelooft per-gebruiker, wijst naar Program FilesHet bestand zegt "per gebruiker, geen beheerdersrechten nodig", maar alle drie de paden staan hard op
C:\Program Files\OciDeck\ocideck.exe— de map waar een gebruiker zónder beheerdersrechten OciDeck juist niet heeft staan. Wie de kale bundel draait moet de paden dus altijd aanpassen (het commentaar zegt dat wel, maar de belofte en de inhoud spreken elkaar tegen). Sinds de installer bestaat is de doelgroep van dit bestand kleiner; overwegen: paden vervangen door een duidelijke placeholder.4.
publiceren(forge): verwijderen-vóór-uploaden bij een hertriggerVoorbestaand, los van de installer: de bijlage-vervangroute verwijdert de oude bijlage voordat de vervanger geüpload is, en leest de HTTP-code van de DELETE niet. Een gefaalde POST (een 502 op honderden MB's) laat de release dan met een gat achter; een geweigerde DELETE gaat ongemerkt vooraf aan een POST die dan botst. Netter: eerst uploaden onder een tijdelijke naam of de DELETE-status toetsen en de volgorde omdraaien waar de API dat toelaat.
Verwant