簡體   English   中英

如何在 Referrer 中隱藏參數

[英]How to hide parameters in Referrer

我需要稍微修改源 Referrer,我這樣做是這樣的:

在我的 .HTACCESS 文件中:

RewriteEngine On

RewriteRule ^/?[\w]{10}$ https://audiobookscloud.com/bayg45xx2ds/?target=https://whatsmyreferer.com/ [L,NC]

在我的帖子頁面上,我有這段代碼:

<?php if($_GET['target']) { ?>
    <meta name="referrer" content="unsafe-url">
    <meta http-equiv="REFRESH" 
              content="0;URL=<?php echo $_GET['target'];?>">
    
<?php } ?>

但是 Referrer 是這樣顯示的: https://audiobookscloud.com/bayg45xx2ds/?target=https://whatsmyreferer.com/

但我需要它完全像這樣:: https://audiobookscloud.com/bayg45xx2ds/

是否可以隱藏 URL 參數? 我怎樣才能得到

要隱藏 URL 參數,您可以修改 .htaccess 文件中的RewriteRule ,將其從最終的 URL 中刪除。試試這個。

RewriteEngine On
RewriteRule ^/?[\w]{10}$ https://audiobookscloud.com/bayg45xx2ds/ [L,NC]

這將從最終的 URL 中刪除“ ?target=https://whatsmyreferer.com/ ”。

此外,您還可以在您的帖子頁面的 PHP 代碼中刪除該參數:

<?php if($_GET['target']) { ?>
    <meta name="referrer" content="unsafe-url">
    <meta http-equiv="REFRESH" 
              content="0;URL=https://audiobookscloud.com/bayg45xx2ds/">
<?php } ?>

瀏覽器不會丟棄引用 URL 的部分內容,只是因為您希望這種情況發生。 您需要進行設置,以便在刷新發生時瀏覽器實際上“打開”您希望看到作為引薦來源網址發送的 URL。

由於URL不能去掉GET參數,因為需要target參數值,所以可以繞個POST請求。

<?php if($_GET['target']) { ?>
    <form action="https://audiobookscloud.com/bayg45xx2ds/" method="post">
    <input type="hidden" name="target" value="<?php echo $_GET['target'];?>">
    </form>
    <script>document.forms[0].submit();</script>
<?php } ?>
<?php if($_POST['target']) { ?>
    <meta name="referrer" content="unsafe-url">
    <meta http-equiv="REFRESH" 
              content="0;URL=<?php echo $_POST['target'];?>">
    
<?php } ?>

傳遞target GET 參數后,創建一個表單,該表單以 URL 為目標,不帶該參數,並通過隱藏字段傳遞值。 一小段腳本,自動提交該表單。

然后,當腳本收到 POST 請求時,output 是您執行元刷新的原始代碼,只是這次該值取自 POST 參數。

Ps,為了不對XSS開放,你應該在你的output參數值時應用htmlspecialchars

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM