2010-07-14 2 views
0

가능한 중복 :
Passing varible types though mod-rewritePHP : URL에서 '? p ='를 제거 하시겠습니까?

안녕하세요, 내가 내 현재 프로젝트의 get 메소드를 사용하고 있습니다. 내가 어떻게 든 내가하기 위해 mod_rewrite를 또는 무엇을 사용할 수 있는지 궁금 내가 mydomain.com/?p=files/path/subpath

에 대한 링크에게 adressbar 변경에 URL을 클릭 내 링크 <a href='?p=". $path …를 참조 나는 if(isset($_GET['p'])) …

마다 거기 값을 받고 있어요 더 예쁜 URL을 얻으십시오. 나는 내 URL에 "/?p=files/" 부분을 없애고 싶다.

mydomain.com/path/subpath

가 가능하다조차 다음 endresult는 다음과 같이한다면 그것은 멋진 것입니까? mats

답변

3

해당 유형의 URL을 사용하는 경우 프로그램에 문제가있는 것 같습니다.

예를 들어, htpasswd 파일을 사용하여 웹 사이트 사용자를 저장한다고 가정 해 봅니다. 그리고 나는 ?p=../.htpasswd을 전달합니다. 이제 나는 'please'를 암호로 사용하는 사용자로 침입 할 수 있습니다. 또는 ?p=/etc/passwd을 전달하고 시스템의 유효한 사용자 목록을 얻습니다.

예, mod_rewrite (http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html)을 사용하여 ?p=을 제거 할 수 있습니다. 그러나 당신이하고있는 일과 임의의 경로 지정이 불가능하다는 것을 확실히 알고 있어야합니다.

+1

+1 보안은 요즘 모두입니다! – Tim

+0

이렇게해서는 안됩니까? 옵션 + FollowSymLinks RewriteEngine On RewriteRule^([^/\.] +)/* $ /? p = $ 1 [L] – matt

관련 문제