Prezentációk írásvédelme PHP-ben

Bevezetés

A write-protection jelszó korlátozza a prezentáció módosítását, de nem titkosítja annak tartalmát. A felhasználók a write-protected prezentációt jelszó nélkül betölthetik és megtekinthetik. Az alkalmazástól függően előfordulhat, hogy szerkeszthetik a tartalmat és más néven menthetik, így a write protection-et nem szabad titoktartási mechanizmusnak tekinteni.

Az opening jelszó más célra szolgál: titkosítja a prezentációt, és szükséges a tartalom betöltéséhez. A prezentáció titkosításához vagy egy opening jelszó ellenőrzéséhez lásd Jelszóval védett prezentációk.

A cikkben bemutatott munkafolyamatok PPT és PPTX prezentációkra egyaránt alkalmazhatók. A példák PPTX fájlokat használnak; PPT mentésnél használja a .ppt kiterjesztést és a megfelelő PPT mentési formátumot.

Write Protection beállítása a prezentáción

Használja a ProtectionManager::setWriteProtection metódust egy jelszó hozzárendeléséhez a prezentáció módosításához. A prezentáció mentése menti a védelmi beállítást.

A következő példa write protection-t állít be egy PPTX prezentáción:

use aspose\slides\Presentation;
use aspose\slides\SaveFormat;

$presentation = new Presentation("pres.pptx");
try {
    $presentation->getProtectionManager()->setWriteProtection("modify_password");
    $presentation->save("write-protected-pres.pptx", SaveFormat::Pptx);
} finally {
    $presentation->dispose();
}

Write-protected prezentáció betöltése

Mivel a write protection nem titkosítja a prezentáció tartalmát, nincs szükség jelszóra a prezentáció betöltéséhez. A jelszó csak akkor releváns, amikor a védett prezentáció módosításához szükséges engedély ellenőrzése történik.

use aspose\slides\Presentation;

$presentation = new Presentation("write-protected-pres.pptx");
try {
    echo("Slide count: " . $presentation->getSlides()->size() . "\n");
} finally {
    $presentation->dispose();
}

Ne adja át a write-protection jelszót a LoadOptions::setPassword metódusnak. Ez a metódus egy opening jelszót vár a titkosított tartalomhoz. Ha egy prezentáció mindkét típusú védelmet tartalmaz, adja meg az opening jelszót a betöltéshez, és külön kezelje a write-protection jelszót.

Write Protection eltávolítása a prezentációból

Használja a ProtectionManager::removeWriteProtection metódust a módosítási korlátozás eltávolításához, majd mentse a prezentációt.

use aspose\slides\Presentation;
use aspose\slides\SaveFormat;

$presentation = new Presentation("write-protected-pres.pptx");
try {
    $presentation->getProtectionManager()->removeWriteProtection();
    $presentation->save("write-protection-removed.pptx", SaveFormat::Pptx);
} finally {
    $presentation->dispose();
}

Ellenőrizze, hogy a prezentáció write protected-e

A fájl megvizsgálásához anélkül, hogy teljes Presentation példányt hozna létre, hívja a PresentationFactory::getPresentationInfo metódust, és ellenőrizze a PresentationInfo::isWriteProtected értékét. A metódus a NullableBool típust használja, és NullableBool::True értéket ad vissza, ha write protection észlelhető.

use aspose\slides\NullableBool;
use aspose\slides\PresentationFactory;

$presentationInfo = PresentationFactory::getInstance()->getPresentationInfo("write-protected-pres.pptx");

if ($presentationInfo->isWriteProtected() == NullableBool::True) {
    echo("The presentation is write protected.\n");
} else {
    echo("Write protection was not detected.\n");
}

A PresentationFactory::getPresentationInfo stream túlterhelése ugyanazt az információt adja egy streamként megadott prezentációhoz.

Write-protection jelszó ellenőrzése

Használja a PresentationInfo::checkWriteProtection metódust a módosítási jelszó ellenőrzéséhez anélkül, hogy a teljes prezentációt betöltené. Először ellenőrizze a PresentationInfo::isWriteProtected értékét, hogy az alkalmazás csak akkor kérjen vagy ellenőrizzen jelszót, ha a write protection jelen van.

use aspose\slides\NullableBool;
use aspose\slides\PresentationFactory;

$presentationInfo = PresentationFactory::getInstance()->getPresentationInfo("write-protected-pres.pptx");

if ($presentationInfo->isWriteProtected() != NullableBool::True) {
    echo("The presentation is not write protected.\n");
} elseif ($presentationInfo->checkWriteProtection("modify_password")) {
    echo("The write-protection password is correct.\n");
} else {
    echo("The write-protection password is incorrect.\n");
}

PresentationInfo::checkWriteProtection csak a write-protection jelszót ellenőrzi. Nem ellenőrzi az opening jelszót, és nem határozza meg, hogy a titkosított tartalom betölthető-e. Ezzel szemben a PresentationInfo::checkPassword csak az opening jelszót ellenőrzi. Ha egy teljes prezentáció már be van töltve, a ProtectionManager::checkWriteProtection a megfelelő write-protection ellenőrzést kínál a protection managerén keresztül.

Éles alkalmazásokban ne naplózza a jelszavakat, és ne legyenek azok diagnostikai üzenetekben. Kerülje a szükségtelen ismételt ellenőrzéseket, és a jelszavakat csak annyi ideig tartsa memóriában, ameddig szükséges.

GYIK

Titkosítja-e a write protection a prezentációt?

Nem. A módosítást korlátozza, de a prezentáció tartalma továbbra is betölthető és megtekinthető.

A write-protection jelszó szükséges a prezentáció megnyitásához?

Nem. Csak egy opening jelszó szükséges a titkosított prezentáció tartalmának betöltéséhez.

Lehet egy prezentációnak egyszerre opening és write-protection jelszava?

Igen. Az opening jelszót a betöltési beállításokban adja meg a titkosított prezentáció megnyitásához, a write-protection jelszót pedig külön validálja, ha a módosítási engedély szükséges.