2013-03-20 2 views
0

이 질문은이 다른 질문에 직접 관련되어 있습니다. on StackOverflow.GET 요청 안에 PHP/JS URL

나는 동일한 문제가있다 -하지만 나는 위의 질문에서 제안 된 것처럼 다른 변수로 프로토콜 접두어를 분리 할 수 ​​있는지 잘 모르겠다. 나는 데이터가 사용되는 다른 페이지로 보내진 GET 액션을 사용하고 있습니다 (예 : index.php의 form이 search.php에 GET을 제출합니다).

색인 페이지에서 사용자는 제출할 URL (예 : 텍스트 필드 및 제출 버튼)을 포함한 데이터를 입력 할 수 있습니다. URL의 특성상 복사 및 붙여 넣기를하는 사람이있을 것으로 예상되므로 사람들이 내가 원하는지 여부에 관계없이 때로는 http : //를 포함 할 가능성이 큽니다.

http :가 GET 요청에 포함되어 있으면 (예 : search.php? q = http://google.com) search.php에 403 Forbidden 오류가 표시됩니다.이 오류는 내가 문제가있는 곳입니다.

JS 외부에서는 요청이 search.php로 전송되기 전에 사용자 입력에서 프로토콜 접두어를 제거하거나 분리 할 수있는 방법이 있습니까? E.G. 사용자가 제출을 클릭했지만 데이터가 다른 페이지로 전송되기 전에?

미리 답변 해 주셔서 감사합니다.

편집 : urlencode를 사용하여 URL을 인코딩 할 수 있습니다. 데이터/GET 요청이 실제로 전송되기 전에 완료 될 수 있습니까?

+0

이전 질문에 대한 링크가 보이지 않습니다. –

+0

수정 됨, 죄송합니다! – Lent

+0

"JS 외부"란 무엇입니까? ''onsubmit = "somefunction()"'을 추가하고'document.forms [ "form"] [ "url_input"]을 사용하여 원하는 작업을 수행하십시오. value' – kuncajs

답변

0

자바 스크립트 바깥 쪽? No.
그러나 데이터를 search.php로 보내면 http : //를 테스트하여 포함시키지 않으려는 데이터를 제거 할 수 있습니다.

+0

search.php가로드되면 확인할 수 있음을 알 수 있습니다. 그러나 GET 요청에 "http :"가 포함되어 있으면 403 Forbidden 오류가 표시됩니다. – Lent

+0

어떤 서버입니까? mod_security와 함께 아파치를 사용하고 있습니까? –

+0

선장 : 예. 내가 아파치에 방해 할 수있는 몇 가지 설정이 될 수 있다고 링크 된 질문을 읽었습니다. 그러나 문제를 해결하기 위해 무엇을 바꾸어야할지 모르겠습니다. – Lent