2010-07-14 43 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