Как скрыть src тега iframe или embed с помощью JS/jQuery или PHP?

Я пытаюсь скрыть URL-адрес src для файла PDF в iframe / embed. Я не знаю, как.

Я пробовал со всеми ранее выходившими ответами, но ни один из них не работает.

<?php
    $url = $_GET['url'];
?>

<embed id = "renderedPrint" style = "height:calc(100% - 4px);width:calc(100% - 4px);padding:0;margin:0;border:0;"></embed>

<script>
    $(document).ready(function() {
        var encryptedString = "assets/labels/" + "<?php echo $url; ?>" + ".pdf";
        $("#renderedPrint").attr("src", encodeURIComponent(encryptedString));

    });
</script>

Но независимо от того, какой метод я использую (обфускатор, php openssl_encrypt/decrypt), выходной URL-адрес всегда виден.

Я не хочу, чтобы пользователи находили URL-адрес iframe/embed. Я хочу затруднить или даже скрыть URL-адрес от внешнего интерфейса.

Цель состоит в том, что я не хочу, чтобы пользователи имели прямой доступ к сгенерированному файлу PDF. Они могут скопировать URL-адрес iframe src и отправить его кому-то другому. Мы не можем помешать им загрузить PDF-файл, но я не хочу, чтобы они копировали исходный URL-адрес с сервера.

Вы не можете скрыть URL-адрес, так как он должен быть доступен для браузера, чтобы содержимое запрашивалось и загружалось браузером. Вы могли бы потенциально обслуживать файл непосредственно со стороны сервера как BLOB, но пользователи по-прежнему смогут загружать контент локально - если это реальная цель здесь.

Rory McCrossan 18.11.2022 22:05

Можем ли мы добраться до причины, по которой вы хотите скрыть URL-адрес? Возможно, скрытие URL — не единственный способ решить проблему, которую вы пытаетесь решить. Смотрите: xyproblem.info

KIKO Software 18.11.2022 22:07

В качестве примечания: «Я пробовал со всеми ранее выходившими ответами» не так уж полезно, и вместо этого помогает, если вы можете определить те, которые вы конкретно пробовали.

Chris Haas 18.11.2022 22:24

Привет @all, цель в том, что я не хочу, чтобы клиент имел прямой доступ к сгенерированному файлу. Они могут скопировать URL-адрес iframe src и отправить его кому-то другому. Мы не можем помешать им загрузить PDF-файл, но я не хочу, чтобы они копировали исходный URL-адрес с сервера.

Thowzif 19.11.2022 17:22
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
4
100
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

проверьте этот код вы должны добавить адрес файла в БД

        <?php
    // get id to search on DB and get detail
    $id = $_REQUEST['id'];

    try {
        $conn = new PDO("pgsql:host=$host;port=5432;dbname=$dbname", $username, $password);
        // set the PDO error mode to exception
        $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        //echo "Connected successfully";
    } catch(PDOException $e) {
        echo "Connection failed: " . $e->getMessage();
    }

    $stmt = $conn->prepare("SELECT url FROM mytable WHERE id=? LIMIT 1"); 
    $stmt->execute([$id]); 
    $row = $stmt->fetch();
    // the address of file in server 
    $path = $row['url'];
    $filename = basename($path);
    if (file_exists($path) && is_readable($path)) {
        // get the file size and send the http headers
        $size = filesize($path);
        header('Content-Type: application/octet-stream'); 
        header('Content-Length: '.$size);
        header('Content-Disposition: attachment; filename='.$filename);
        header('Content-Transfer-Encoding: binary');
        // open the file in binary read-only mode
        // display the error messages if the file can´t be opened
        $file = @ fopen($path, 'rb');
        if ($file) {
        // stream the file and exit the script when complete
            fpassthru($file);
            exit;
        } else {
            echo $err;
        }
    } else {
        echo 'check that file exists and is readable';;
    }

    ?>

@Мохаммед, что такое $filename?

Thowzif 19.11.2022 17:39

Я добавил переменную $filename в код

Mohammad 21.11.2022 05:57

Приведенный выше код помог вам?

Mohammad 23.11.2022 08:50

Другие вопросы по теме