Zabezpečení prezentací před zápisem v Pythonu
Úvod
Heslo pro ochranu zápisem omezuje úpravy prezentace, ale nešifruje její obsah. Uživatelé mohou načíst a zobrazit prezentaci chráněnou zápisem bez hesla. V závislosti na aplikaci mohou také upravit obsah a uložit jej pod jiným názvem, takže ochrana zápisem by neměla být považována za mechanismus důvěrnosti.
Otevírací heslo slouží jinému účelu: šifruje prezentaci a je vyžadováno pro načtení jejího obsahu. Jak šifrovat prezentaci nebo ověřit otevírací heslo, viz Password-Protect Presentations.
Postupy v tomto článku platí pro prezentace PPT i PPTX. Příklady používají soubory PPTX; při ukládání do PPT použijte příponu .ppt a odpovídající formát ukládání PPT.
Nastavení ochrany zápisem prezentace
Použijte ProtectionManager.set_write_protection k přiřazení hesla pro úpravu prezentace. Uložení prezentace zachová nastavení ochrany.
Následující příklad nastaví ochranu zápisem pro PPTX prezentaci:
import aspose.slides as slides
with slides.Presentation("pres.pptx") as presentation:
presentation.protection_manager.set_write_protection("modify_password")
presentation.save("write-protected-pres.pptx", slides.export.SaveFormat.PPTX)
Načtení prezentace chráněné proti zápisu
Protože ochrana zápisem nešifruje obsah prezentace, není při načítání prezentace vyžadováno žádné heslo. Heslo je relevantní jen při ověřování oprávnění k úpravě chráněné prezentace.
import aspose.slides as slides
with slides.Presentation("write-protected-pres.pptx") as presentation:
print("Slide count: " + str(len(presentation.slides)))
Nepředávejte heslo ochrany zápisem do LoadOptions.password. Tato vlastnost přijímá otevírací heslo pro šifrovaný obsah. Pokud má prezentace oba typy ochrany, poskytněte otevírací heslo pro načtení a heslo ochrany zápisem řešte samostatně.
Odstranění ochrany zápisem z prezentace
Použijte ProtectionManager.remove_write_protection k odebrání omezení úprav a poté prezentaci uložte.
import aspose.slides as slides
with slides.Presentation("write-protected-pres.pptx") as presentation:
presentation.protection_manager.remove_write_protection()
presentation.save("write-protection-removed.pptx", slides.export.SaveFormat.PPTX)
Kontrola, zda je prezentace chráněna proti zápisu
Chcete‑li prozkoumat soubor, aniž byste vytvářeli úplnou instanci Presentation, zavolejte PresentationFactory.get_presentation_info a zkontrolujte PresentationInfo.is_write_protected. Vlastnost používá NullableBool a vrací NullableBool.TRUE, pokud je detekována ochrana zápisem.
import aspose.slides as slides
presentation_info = slides.PresentationFactory.instance.get_presentation_info("write-protected-pres.pptx")
if presentation_info.is_write_protected == slides.NullableBool.TRUE:
print("The presentation is write protected.")
else:
print("Write protection was not detected.")
Přetížení metodou proudu PresentationFactory.get_presentation_info poskytuje stejnou informaci pro prezentaci předanou jako proud.
Ověření hesla ochrany zápisem
Použijte PresentationInfo.check_write_protection k ověření hesla pro úpravy bez načítání celé prezentace. Nejprve zkontrolujte PresentationInfo.is_write_protected, aby aplikace požadovala nebo ověřovala heslo jen tehdy, když je přítomna ochrana zápisem.
import aspose.slides as slides
presentation_info = slides.PresentationFactory.instance.get_presentation_info("write-protected-pres.pptx")
if presentation_info.is_write_protected != slides.NullableBool.TRUE:
print("The presentation is not write protected.")
elif presentation_info.check_write_protection("modify_password"):
print("The write-protection password is correct.")
else:
print("The write-protection password is incorrect.")
PresentationInfo.check_write_protection ověřuje pouze heslo ochrany zápisem. Neověřuje otevírací heslo ani nestanovuje, zda lze načíst šifrovaný obsah. Naopak PresentationInfo.check_password ověřuje jen otevírací heslo. Pokud je již načtena úplná prezentace, poskytuje ProtectionManager.check_write_protection ekvivalentní kontrolu ochrany zápisem prostřednictvím svého správce ochrany.
V produkčních aplikacích neukládejte hesla do logů ani je nezahrnujte do diagnostických zpráv. Vyhněte se zbytečným opakovaným pokusům o ověření a uchovávejte hesla v paměti jen po nezbytnou dobu.
Často kladené otázky
Zda ochrana zápisem šifruje prezentaci?
Ne. Omezuje úpravy, ale obsah prezentace zůstává dostupný pro načtení a prohlížení.
Je heslo ochrany zápisem vyžadováno pro otevření prezentace?
Ne. Pro načtení šifrovaného obsahu je vyžadováno pouze otevírací heslo.
Může mít prezentace jak otevírací heslo, tak heslo ochrany zápisem?
Ano. Otevírací heslo předáte přes možnosti načítání, aby se otevřela šifrovaná prezentace, a heslo ochrany zápisem ověříte samostatně, když je potřeba oprávnění k úpravám.