X-Git-Url: https://git.p6c8.net/jirafeau_mojo42.git/blobdiff_plain/c8f707dd7ecedc278ebfbcb92a6d3b376957f9f6..6b28d8973d9d57cae8a4d1f52ec5556cbfce1840:/file.php?ds=inline
diff --git a/file.php b/file.php
index 18bb459..2edaf44 100644
--- a/file.php
+++ b/file.php
@@ -30,9 +30,14 @@ if (!isset ($_GET['h']) || empty ($_GET['h']))
exit;
}
+/* Operations may take a long time.
+ * Be sure PHP's safe mode is off.
+ */
+set_time_limit(0);
+
$link_name = $_GET['h'];
-if (!preg_match ('/[0-9a-f]{32}$/', $link_name))
+if (!preg_match ('/[0-9a-zA-Z_-]+$/', $link_name))
{
require (JIRAFEAU_ROOT.'lib/template/header.php');
echo '
' . t('Sorry, the requested file is not found') . '
';
@@ -54,6 +59,10 @@ $delete_code = '';
if (isset ($_GET['d']) && !empty ($_GET['d']))
$delete_code = $_GET['d'];
+$crypt_key = '';
+if (isset ($_GET['k']) && !empty ($_GET['k']))
+ $crypt_key = $_GET['k'];
+
$button_download = false;
if (isset ($_GET['bd']) && !empty ($_GET['bd']))
$button_download = true;
@@ -95,15 +104,26 @@ if ($link['time'] != JIRAFEAU_INFINITY && time () > $link['time'])
exit;
}
+if (empty ($crypt_key) && $link['crypted'])
+{
+ require (JIRAFEAU_ROOT.'lib/template/header.php');
+ echo '' . t('Sorry, the requested file is not found') .
+ '
';
+ require (JIRAFEAU_ROOT.'lib/template/footer.php');
+ exit;
+}
+
$password_challenged = false;
if (!empty ($link['key']))
{
if (!isset ($_POST['key']))
{
require (JIRAFEAU_ROOT.'lib/template/header.php');
- echo '