2013-06-24 127 views
0

我在想,如果他們是一種方法來更改網址,所以它不會在最後顯示產品id。因爲這樣,有人可以更改pid,並且如果該pid位於數據庫中,它可能會指示它們到不同的頁面。更改瀏覽器URL

<a href="<?php fetchdir($apages) ?>item.php?pid=<?php echo $row['pid']; ?>">View</a> 

http://WWW.testexample.x10.mx/item/item.php?pid=2

+0

友好/漂亮的URL是我認爲你指的是什麼,以及許多CMS和ecom平臺提供的。你是從頭建立這個鏈接和產品頁面?或者你是否在像oscommerce或oscmax這樣的開放源代碼平臺上工作,或者甚至是使用簡單的cms工具? – blackhawk

+0

關於您的問題,如果您不希望用戶到達那裏,您應該考慮特定頁面的訪問權限。告訴我們爲什麼你確實想要掩蓋這個ID。 – quidage

+7

混淆通常是安全性較差的替代品。如果不應該訪問對象,則必須防止該對象,而不是試圖隱藏它們。 – arkascha

回答

0

你可以做任何的這一點:

1)不張貼HREF點擊,然後從$ _ POST在服務器端

2)做一個base64或自定義訪問PID加密的pid值(可以加1))

3)在商業方面處理手動pid更改 所以它不是一個概率爲你而戰,只要讓他們這樣做,如果他們想要的話。

我會去選擇2),但這裏的選項1的例子)

 <html><body id="body"><script> function postData(val) { 
     var frm = document.createElement("form") 
     frm.action="/data.php"; 
     frm.method="post"; 

     var input=document.createElement("input") 
     input.name="pid"; 
     input.value = val; 
     input.type = "hidden"; 

     frm.appendChild(input); 

     var body= document.getElementById("body"); 
     body.appendChild(frm); 
     frm.submit(); 
    } </script><a href="javascript:void(0)" onclick="postData(<?php echo $pid; ?>)">View</a></body></html> 

這個例子選項2使用base64編碼:

<a href="<?php fetchdir($apages) ?>item.php?pid=<?php echo base64_encode($row['pid']); ?>">View</a> 

,然後在item.php:

$pid=base64_decode($_GET['pid']); 
+0

任何想法,我可能會找到一個選項1 – Emily

+0

它是一個javascript,請參閱我的編輯 – vlscanner

+0

對不起,我可能會選擇2 – Emily