나는 서버에서브라우저로의 잘못된 출력을 막기 위해 PHP 문자열에서 html 요소를 이스케이프합니까?
입력 내부 자바 스크립트와 HTML을 선택 요소가 포함 된 문자열을 반향하는 데 문제가
내가 탈출 시도<select "none";"="" :="" "block"="" ?="" services").style.display="this.options.selectedIndex" onchange="document.getElementById(" name="services"></select>
브라우저에서
echo '<select name="services" onchange="document.getElementById("services").style.display = this.options.selectedIndex ? "block" : "none";" >';
출력 \ 문자를 사용하는 문자열이지만 아무 것도 작동하지 않는 것 같습니다.
echo '<select name="services" onchange="document.getElementById(\"services\").style.display = this.options.selectedIndex ? \"block\" : \"none\";" >';
출력
<select \"none\";"="" :="" \"block\"="" ?="" services\").style.display="this.options.selectedIndex" onchange="document.getElementById(\" name="services"></select>
모든 트릭이나 해킹이 문제를 해결하려면?
감사
내가보기 엔 당신이 HTML과 어떤 문자에 대한 자세한 내용은 제안이 속성 값에 사용할 수 있습니다. http://www.w3.org/TR/html4/intro/sgmltut.html#h-3.2.2 – hakre
@hakre - 문자열 내부의 유효한 입력 - http://www.w3schools.com/tags/tag_select.asp를 참조하십시오. - inb4 w3fools bandwagon – kaleeway
** 입력 **은 유효하지 않습니다 (PHP 문자열에 도달하기 전에). 그것을 고치려고하는 것은 가능하지만 (ish) 소스에서 문제를 해결해야합니다. select 태그에 허용 된 속성은 부적절합니다 (무의미한 쓰레기 조각에 연결 했으므로 두 가지로 나쁘습니다). 문제는 일반적인 HTML 속성 규칙 인 값의 문자입니다. – Quentin