59 lines
1.4 KiB
PHP
59 lines
1.4 KiB
PHP
<?php
|
|
require __DIR__ . '/../core/security.php';
|
|
$pdo = require __DIR__ . '/../core/db.php';
|
|
require __DIR__ . '/../models/Paste.php';
|
|
$config = require __DIR__ . '/../config/config.php';
|
|
|
|
$id = $_GET['id'] ?? '';
|
|
|
|
$paste = new Paste($pdo);
|
|
$data = $paste->get($id);
|
|
|
|
if (!$data) {
|
|
die('Paste not found.');
|
|
}
|
|
|
|
if ($data['expire_time'] !== null && time() > (int)$data['expire_time']) {
|
|
die('Paste has expired.');
|
|
}
|
|
|
|
if ($data['password_hash']) {
|
|
if (!isset($_POST['password'])) {
|
|
echo "<link rel='stylesheet' href='/assets/css/style.css'>";
|
|
echo "<form method='post'>";
|
|
echo "<input type='password' class='usepassword' name='password' placeholder='Password'>";
|
|
echo "<button type='submit'>View</button>";
|
|
echo "</form>";
|
|
exit;
|
|
}
|
|
|
|
if (!password_verify($_POST['password'], $data['password_hash'])) {
|
|
die('Wrong password.');
|
|
}
|
|
}
|
|
|
|
$decrypted = decryptText($data['encrypted_text'], $data['iv'], $config['master_key']);
|
|
|
|
if ($decrypted === false) {
|
|
die('Decryption failed.');
|
|
}
|
|
?>
|
|
|
|
<!DOCTYPE html>
|
|
<html>
|
|
|
|
<head>
|
|
<title>View Paste</title>
|
|
<link rel="stylesheet" href="/assets/css/style.css">
|
|
</head>
|
|
|
|
<body>
|
|
<div class="container">
|
|
<h1>Your Paste</h1>
|
|
<div class="paste-box">
|
|
<button id="copyBtn">Copy</button>
|
|
<pre id="pasteContent"><?= htmlspecialchars($decrypted) ?></pre>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|