XSS 공격을 이해하려고합니다. 나는 htmlspecialchars()를 사용자 입력에서 나온 브라우저에 출력 할 때마다 사용해야한다고 배웠다. 아래의 코드는 잘 작동합니다.XSS 탐지 및 차단, html 형식 허용
내가 이해하지 못하는 것은 $ enrollmentno를 울리기 위해 htmlspecialchars()를 사용할 필요가 있는지 여부입니다.
<?php
$enrollmentno = (int)$_POST['enrollmentno'];
echo "<div style='border-radius:45px; border-width: 2px; border-style: dashed; border-color: black;'><center><h4><b>$enrollmentno</b></h4></center></div>";
$clink = "http://xyz/$enrollmentno/2013";
echo"<iframe src='$clink' width='1500' height='900' frameBorder='0'></iframe>";
?>
내가
$safe = "<div style='border-radius:45px; border-width: 2px; border-style: dashed; border-color: black;'><center><h4><b>$enrollmentno</b></h4></center></div>";
echo htmlspecialchars($safe, ENT_QUOTES);
같은 일을 할 경우 그것은 올바른 HTML 형식을 표시하지 않습니다.
여기 HTMLPurifer를 사용해야하는지 잘 모르겠습니다. HTMLPurifer는 XSS를 방지하면서 HTML 포매팅을 유지합니까?
업데이트
echo "<div style='border-radius:45px; border-width: 2px; border-style: dashed; border-color: black;'><center><h4><b>".htmlspecialchars ($enrollmentno)."</b></h4></center></div>";
트릭을합니까!
'$ enrollmentno'에있는 값을 포함하는 변수를 왜 살피지 마십시오 –
감사합니다. 이것은 할 것인가? 'echo "
".htmlspecialchars ($enrollmentno)."
물론입니다! 그 일을 할 것입니다 –