어제 질문을 올렸지 만 XSS에 대한 예방의 첫 번째 줄로 일부 JavaScript를 작성했습니다. 그러나 내 라이브 서버에서 이것을 테스트 할 때 자바 스크립트가 PHP 섹션을 잡는 것처럼 잘못된 입력을 잡습니다. 내 양식은 게시물을 사용하고 PHP는 내 양식 항목에 없습니다 (입력하지 않았습니다). 이것은 양식 활동 또는 무엇인가를 집어 올릴 수 있습니까? 나는 열심히 노력하고있다. 어떤 아이디어라도된다.내 양식이 해킹 될 수 있습니까?
여기는 내 코드이다. 제출 버튼에서 트리거된다.
function validateForBadNess(){
var theShit = new Array("*","^", "$", "(",")","{", "}","[", "]","\\", "|", "'","/","?",",","=",">","gt","lt", "<","script","`","´","php");
var tagName = new Array();
tagName[0] = "input";
tagName[1] = "select";
tagName[2] = "textbox";
tagName[3] = "textarea";
for (ms=0;ms<tagName.length;ms++){
// loop through the elements of the form
var formItems = document.getElementsByTagName(tagName[ms]);
for (var xs=0;xs<formItems.length;xs++){
var thisString = formItems[xs].value;
// loop through bad array
for (zs in theShit){
//alert(thisString + " " + thisString.indexOf(theShit[zs]))
if(thisString.indexOf(theShit[zs]) >= 0){
alert("Sorry but the following character: " + theShit[zs] + " is not permitted. Please omit it from your input.\nIf this is part of your password please contact us to heave your password reset.")
return false;
}
}
// loop for formitems
}
// tagName toop
}
// original condition
}
다른 사람들은 올바른 방향으로 여러분을 지적했지만, 저는 여러분이 이것과 같은 것을하려고한다면 여러분이하는 일이 꽤 지저분하고 불필요하다는 것을 말하고 싶었습니다. 대부분의 코드는 비교적 단순한 정규 표현식으로 대체 될 수 있으며 배열 등의 복잡한 설정이 필요하지 않습니다. – MisterMister
"다음 문자 :"+ theShit [zs] + "는 허용되지 않습니다. 다른 하나를 해킹 해보십시오. 제안을 받고 싶다면 'KEVIN MITNICK'라고 소리내어 말하십시오. " xD –