2011-03-27 5 views
2
여기

은 ...왜 PHP가 입력 한 문자열을 출력 할 수 없습니까?

mysql_query("INSERT INTO test (string) VALUES ('tes><ssst')");  

코드 I 입력입니다 그리고 내가 결과를 조회하는 방법이 있습니다 :

$result = mysql_query("SELECT * FROM test");  

while($row = mysql_fetch_array($result)) 
    { 
    echo $row['id'] . " ---- " . $row['string']; 
    echo "<br />"; 
    } 

을하지만 난 단지이 결과 얻을 :

3 - --- tes>

내가 누락 된 부분을 놓친다 : "<ssst "하지만 db로 이동하면 삽입 한 문자열을 검색 할 수 있습니다. 무슨 일 이니? 고맙습니다.

+0

를 인코딩하는

while($row = mysql_fetch_array($result)) { echo $row['id'] . " ---- " . htmlspecialchars($row['string']); echo "<br />"; } 

사용 반드시 htmlspecialchars 당신의 출력을 인코딩한다 – knittl

답변

16

브라우저가 <ssst이 (가) HTML 태그라고 생각하기 때문입니다. 이 전형적인 XSS 결함에 대한 좋은 예입니다 출력을

관련 문제