데이터 자바 스크립트 파일이 있습니다. 일부 맞춤 코드를 통해 웹 사이트에 동적으로 추가되고 있습니다. 이 파일은 파일에 악성 코드를 추가 할 가능성이있는 타사 공급 업체의 것입니다.Javascript - 파일의 악성 코드 위생 (문자열)
이 파일을 웹 사이트에 추가하기 전에이를 분석하고 리디렉션 또는 경고는 본질적으로 프로젝트/웹 사이트에 파일이 포함될 때 실행됩니다.
alert ('i am malicious');
var IAmGoodData =
[
{ Name :'test', Type:'Test2 },
{ Name :'test1', Type:'Test21' },
{ Name :'test2', Type:'Test22' }
]
가 나는 XMLHttpRequest를 호출을 통해 객체에이 파일을로드하고이 호출이 돌아, 나는 (변수를 사용할 수있을 때 내 파일 인 :
예를 들어, 내 JS 파일은 다음과 같을 수 있습니다 텍스트)를 검색하고 단어를 검색하십시오.
var client = new XMLHttpRequest();
client.open('GET', 'folder/fileName.js');
client.onreadystatechange = function()
{
ScanText(client.responseText);
}
client.send();
function ScanText(text)
{
alert(text);
var index = text.search('alert'); //Here i can search for keywords
}
마지막 줄은 단어 alert이 파일의 색인 0에서 발견됨에 따라 0의 색인을 리턴합니다.
질문 :
- 파일의 키워드를 검색 할 수있는보다 효율적인 방법이 있나요?
- 악성 코드가 실행되는 것을 막기 위해 어떤 특정 키워드를 검색해야합니까? 즉, 리다이렉트, 팝업, 소리 등 .....
귀하의 접근 방식은 쓸모가 없습니다. 가능한 모든 악의적 인 동작을 감지 할 수는 없습니다. 어떻게 일을하는지 재검토해야합니다. 아마도이 파일의 내용과 사용 방법에 대해 더 많은 정보를 제공 할 수 있습니까? –
자바 스크립트는 매우 동적이어서 충분히 어렵습니다. Google Caja를 사용하십시오. – SLaks
@DarkFalcon지도 노드와 해당 노드에 대한 정보 (위치, 이름 등)가있는 fileld 파일입니다. 그들을지도에 표시합니다. 이 노드는 제 3자를 통해 당사에 전달됩니다. –