我有一个数据 javascript 文件,它通过一些自定义代码动态添加到网站。此文件来自第三方供应商,他们可能会在文件中添加恶意代码
在将此文件添加到网站之前,我想对其进行解析,并查找恶意代码,例如重定向或警报,这些代码在项目/网站中包含文件时会固有地执行。
例如,我的 js 文件可能如下所示:
alert ('i am malicious');
var IAmGoodData =
[
{ Name :'test', Type:'Test2 },
{ Name :'test1', Type:'Test21' },
{ Name :'test2', Type:'Test22' }
]
我通过 XMLHttpRequest 调用将此文件加载到一个对象中,当此调用返回时,我可以使用该变量(这是我的文件文本)并在其中搜索单词:
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
}
最后一行将返回索引 0,因为在文件中的索引 0 处找到了单词 alert。
问题:
- 有没有更有效的方法来搜索文件中的关键字?
- 我应该搜索哪些特定关键字以防止恶意代码被运行?即重定向、弹出窗口、声音等......