2013-07-04 3 views
0

은 초기에는 더, 난 내 질문 제목에 대한 미안하지만, 정말 더 나은 아무것도jquery.get()에서 다시 쓰기 규칙이 작동하지 않습니까?

내가 "보통"재 작성을 수행 .htaccess 파일을 가지고 .... 내 마음에 오지 :

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-l 

RewriteRule ^(.+)$ index.php?url=$1 [QSA,L] 

이 나에게 예를 이 URL이의 가능성 (내가 XAMPP 함께 일하고 있어요) 제공 :

localhost/<project>/en/products/electronic/television/ 

때문에이 URL은 $ _GET [ 'URL'] 변수에 내가 사용할 수 있습니다 그것은 (배열로) 공동로드 내 HMVC 패턴의 컨트롤러.

그리고 언어를 입력하지 않아도 (위의 예제에서 "en"), 자동으로 "en"을 삽입하는 함수를 구현했습니다. 기본적으로 이는 다음 URL이 동일한 컨트롤러와 동일한 출력을 제공함을 의미합니다.

localhost/<project>/products/electronic/television/ 

하지만 지금은 폴더에 누워 내 자바 스크립트 파일 (JQuery와 & 공동),

<project>/lib/js/query/jquery.min.js 

간단하게 다음과 같이 요구 될 수 있다는 궁금해 :

<script type="text/javascript" src="/<project>/lib/js/jquery/jquery.js"></script> 

나는 요청한 경로가 결국 이런식이 될 것이라고 예상했다. ($ _GET [ 'url'] 변수에 언어를 추가하면 물론 컨트롤러와 실패 ...

src="/<project>/en/lib/js/jquery/jquery.js" 

가,이 경우에 나는 그것을 이런 식으로 작동 기쁠하지만이 시도하는 생각에 나를 데리고 :

$(document).ready(function() { 
    alert("this is a test"); 
    $.get("/<project>/<config-dir>/<config-file>", function(data) { 
     alert(data); 
    }); 
}); 

짜잔을, 그것은 출력 설정 파일. 나는 그 행동이 생산적인 서버에서 동일하지만, "/"노드가 없다고 생각한다. 문서 루트에서 config 파일을 이동하지 않고 어떻게 방지 할 수 있습니까?

기본적으로 XSS 공격은 (거의) 실패하지 않을 것입니다. "거의"100 % 안전성이 없기 때문입니다.

나는 자신을 잘 표현하기를 바랍니다. :) 도움/제안을 해주셔서 감사합니다.

답변

0

음, 문제가 무엇인지, 내가 구성 파일에 액세스 할 수있는 이유를 알아 냈습니다. 재 작성 조건. 요청 된 파일 이름이 디렉토리 나 파일 또는 링크 (?)가 아닌 경우 다음 규칙이 효과적이어야한다고 간단히 말합니다. 재 작성 규칙이 아약스 - 요청에서 작동하지 않는 이유

RewriteEngine On 

# RewriteCond %{REQUEST_FILENAME} !-d not a directory 
# RewriteCond %{REQUEST_FILENAME} !-f not a file 
# RewriteCond %{REQUEST_FILENAME} !-l not a link(?) 

RewriteRule ^(.+)$ index.php?url=$1 [QSA,L] 

때문에 기본적으로이

이제 허용되지 않은 액세스 내 문제가 해결 (그것뿐만 아니라 일반 요청에 작동하지 않았다), 설명합니다.

RewriteRule ^(<dirname>)($|/) - [L] 
:

내가이 규칙을 추가 한 재 작성 규칙에서 일부 특정 디렉토리를 제외하는
관련 문제