[英]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.