2014-05-13 5 views
0

자바 스크립트를 사용하여 HTML 양식을 보호하고 있습니다. 사용자가 입력 값을 변경할 수 있고 입력 값이 임의로 생성 된 숫자와 같은지 확인하고 싶습니다. if/else 문을 사용하고 if else 문이 작동하지 않습니다.HTML 형식의 자바 스크립트 보호가 작동하지 않습니다.

var pokeid = '+res.id+'; //generates random id 
var html = ''; 
html += '<form id="myForm" action="myurl.net" method="post">'; 
html += ' <input type="hidden" id="goid" name="goid" value="'+res.id+'" >'; 
html += ' <input type="hidden" name="level" value="'+res.level+'" />'; 
html += ' <input value="Battle!" class="button" onclick="myFunction()" />'; 

</script> 

<script type= "text/javascript"> 

function myFunction() 
{ 

if (pokeid != document.getElementById("goid").value;) { 

window.location = '("http://www.myurl.net/index.php")'; 

}else{ 
document.getElementById("myForm").submit(); 

} 

} 

</script> 
+0

당신은 그 길 잃은 세미콜론에 대해보고 된 구문 오류를 발견하지 적이 있습니까? – Pointy

+1

사용자는 콘솔에서'pokeid = 12345'를 쉽게 설정할 수 있다는 것을 알고 있습니까? –

답변

2

JavaScript에는 보안이 적용되지 않습니다. 모든 유효성 검사는 서버에서 수행되어야합니다. 다른 어떤 것도 신뢰할 수 없습니다.

그 외에도 if 문에 길잃은 세미콜론이 있으며, window.location 지정은 URL이어야합니다. 그 이상한 괄호, 따옴표 ... 것들.

1

이것은 클라이언트 측 확인을 진행하기 전에 읽어야하는 매우 관련성이 높은 문서입니다.

"사용자 입력의 유효성을 검사하기 위해 클라이언트 측 유효성 검사에 의존하지 마십시오. 클라이언트 측 유효성 검사는 사용자가 올바른 데이터를 입력하도록 돕는 데 유용하지만 악의적 인 사용자는이 설정을 사용하지 않으며 클라이언트 측 유효성 검사를 무시할 수 있습니다. 자바 스크립트를 사용하여 입력의 유효성을 검사해서는 안됩니다. 자바 스크립트는 모든 HTML 페이지에서 매우 쉽게 변경하고 수정할 수 있음을 알 수 있습니다. "

의 Src "http://www.testingsecurity.com/how-to-test/injection-vulnerabilities/Javascript-Injection는"

관련 문제