2011-08-12 27 views
0

這可能是很容易...但在.htaccess文件中寫什麼,以防止任何人從URL訪問特定頁面如何拒絕任何人從URL訪問?

http://example.com?id=12 

用戶可以更改值從URL訪問ID另一個頁面,所以我想要防止...

+0

這也許應該在你的服務器端腳本來完成,而不是在.htaccess中。 – tskuzzy

+0

您希望允許用戶訪問http://example.com?id=12,但阻止他們訪問服務器上的所有其他頁面? – Matthew

+0

@tkkuzzy:.htaccess是由服務器端定義的。 –

回答

0

你不能因爲用戶可以看到id和鍵入相同的東西到其他標籤和訪問,有一種方法來防止編輯,但儘可能它不適合訪問,創建一個php文件並阻止每個id = 12的請求,或任何你想阻止的請求。

1

我不認爲你可以使用.htaccess文件來做到這一點。您最好使用會話和/或Cookie來控制對受限內容的訪問。

1

我會寫一些代碼PHP來處理這個問題,而不是.htaccess規則。

像這樣的工作:

if(array_key_exists('id', $_GET) { 
    if($_GET['id'] === 12) 
    die("Cannot view this page"); 
} 
1

信息在PHP認證和訪問控制的一些研究。有人能夠給你一個代碼片段或簡短答案在這裏有點複雜。

如果您在使用代碼時遇到了特定的問題以實現所學知識,那麼這裏就是尋求幫助的地方。

0

一致認爲,這是更多的服務器端問題,如果應該允許用戶訪問特定頁面。使用.htaccess規則可能會變得非常複雜。

爲什麼不嘗試這樣的事:

<?php 
    $allow = array(12, 13); // values that you want to allow access to 
    if (in_array($_GET['id'], $allow) !== true) { 
    die("Access denied."); 
    } 
?> 
-1

可以使用POST方法,所以用戶在文件之間傳遞了什麼變量不知道。

+0

任何有點技術性的用戶都可以查看它,這不提供真正的保護。 – beetstra

0

這可能做的伎倆

它會至少防止被調用的腳本,如果該查詢參數存在,這是稍微比使命中實際得到的腳本更安全。

0

你會通過PHP這樣做:

<?php 
$denied = array(12); 
if (isset($_GET['id']) && in_array($_GET['id'], $denied)) { 
    header('HTTP/1.1 403 Forbidden'); 
    exit; 
} 
?>