2013-05-28 3 views
0

data은 XSS의 영향을받습니다. htmlspecialchar() 같은 것을 사용하여 클라이언트에 데이터를 보내기 전에 서버에서 데이터를 살균해야합니까, 아니면 $.get()이 XSS를 중간 화합니까? 당신은 요소의 텍스트을 변경하고 이후Ajax를 사용하여 표시 할 때 XSS로부터 보호

$.get('getData.php', 
function (data){ 
    $('#div1').text(data.div1); 
    $('#div2').html(data.div2); 
    $('#textarea').val(data.textarea); 
},'json'); 

답변

0
$('#div1').text(data.div1); 

감사이 XSS에 suceptible 없습니다. 이것은 htmlspecialchars을 사용하는 것을 처리합니다. 당신이 당신의 응답 누군가가 거기 <script> 태그를 넣을 수 있습니다 알고 페이지에 임의의 코드를 실행하지 않는, 그래서 만약 당신의 HTML이 아닌 텍스트 변경하고 이후

$('#div2').html(data.div2); 

이있다.

$('#textarea').val(data.textarea); 

텍스트 영역의 내용이 변경되기 때문에 괜찮습니다.

+0

Benjamin에게 감사드립니다. 내가 이해할 수 있도록,'.html()'에'htmlspecialchars()'를 사용해야하지만 다른 두 곳에서는 필요하지 않습니다. – user1032531

+0

완전히 신뢰하지 않는 내용으로 시작하려면'.html'을 사용하지 마십시오. _templates_를 클라이언트 측에 저장하고 서버에서 _data_를 전달한 다음 Mustache와 같은 템플릿을 사용하여 템플릿을 렌더링하는 것이 좋습니다 (기본적으로 Mustache는 HTML 문자를 이스케이프 처리합니다). –

관련 문제