2012-02-22 3 views
0

필자는 텍스트 상자에 입력 할 때 보이지 않는 iframe을 텍스트 상자에 쓴 내용으로 $ _GET으로 .php 파일로 열어주는 스크립트를 작성했습니다.

그러나 예를 들어, 입력 할 경우 '< 3'이 표시됩니다.

Image 1

PHP는 $ _GET [S]가 비어 있음을 determins! 사용자는 오류가 발생하지 않고 간단하게 < 3 기호를 넣을 수 없습니다.

또 다른 문제는 따옴표입니다. 따옴표를 쓰면 전체 SRC 속성이 종료됩니다.

Image 2

어떻게해야합니까? 자바 스크립트 또는 PHP로 뭔가를해야합니까? 저에게 알려주세요!

감사합니다.

+0

코드를 표시하지 않았습니다. 일반적으로, PHP에서 사용자 제출 데이터를 반향시키기 전에'htmlspecialchars'를 호출해야합니다. – Jon

+0

텍스트 인코딩을 시도 했습니까? – spicavigo

답변

0

iframe이 자바 스크립트에서 생성 된 것처럼 보입니다. 따라서 PHP 함수가 포함 된 답변은 쓸모가 없습니다. 데이터가 PHP에 도달하지 못하기 때문에 PHP 함수가 어떻게 도움이 될 수 있습니까?

대신 JS 함수가 모든 사례를 실제로 처리하지 않으므로 urlencode from PHPJS을 사용해보십시오. 그러면 PHP의 urldecode을 사용하여 데이터를 쉽게 검색 할 수 있습니다.

1

urlencode을 사용하여 입력 된 문자열을 URL 사용을위한 유효한 것으로 인코딩하십시오.

URL을 통해 PHP 스크립트에 사용자 입력을 허용 할 때 매우주의해야합니다.. 특히 데이터베이스 작업이 관련된 경우 적절한 점검/위생 조치를 수행해야합니다.

0

해당 문자를 &lt;으로 인코딩해야합니다.

0

큰 따옴표에 대해서는이 트릭을 사용할 수 있습니다.

attr='Your string can "contain double quotes"' 

또는

attr="Your string can 'contain double quotes'" 

하지만 URL에 variable=values을 지정하는 동안, 당신은, 당신이 직접 값을 지정할 수 있습니다 사용자 따옴표 할 필요가 없습니다

.

< 3 문자 전송에 대한 나머지

url="test.php?var1=123&var2=345" 

처럼, 당신은 javascript & PHP 적용 중에 URL 인코딩을 확인할 수 있습니다!

관련 문제