2010-07-14 107 views
0

可能重複:
Passing varible types though mod-rewritePHP:在url中刪除'?p ='?

你好, 我用我的當前項目get方法。 我的鏈接指向<a href='?p=". $path …和我越來越有價值觀與if(isset($_GET['p'])) …

每次我點擊一個鏈接在adressbar變化的URL mydomain.com/?p=files/path/subpath

我不知道是否能以某種方式使用mod_rewrite或其他任何東西我爲了獲得更漂亮的網址。我很想擺脫我的網址中的"/?p=files/"部分。它會很酷,如果endresult是這樣的:

mydomain.com/path/subpath

的是,甚至有可能? 問候如果您使用的URL類型,你可能做錯事在你的程序亞光

回答

3

例如,假設您使用的htpasswd文件來存儲你的網站的用戶。我通過?p=../.htpasswd。現在,我可以以「請」作爲密碼的用戶入侵。或者我通過在?p=/etc/passwd,並讓您的系統上的有效用戶的列表。

是的,您可以通過使用mod_rewritehttp://httpd.apache.org/docs/2.0/mod/mod_rewrite.html)擺脫?p=。但是你應該確保你知道你在做什麼,並且任意路徑規範是不可能的。

+1

+1安全是無處不在! – Tim 2010-07-14 04:06:50

+0

不應該是這樣的嗎? Options + FollowSymLinks RewriteEngine On RewriteRule ^([^/\。] +)/ * $ /?p = $ 1 [L] – matt 2010-07-14 04:22:48