【发布时间】:2013-04-03 14:26:46
【问题描述】:
假设我在一个字符串变量中有一个完整的 JS 脚本。与其执行整个脚本,我只想评估它的代码,以找出如果运行它会尝试检索(通过 Ajax)哪些 URL。
我可以将代码作为文本进行正则表达式搜索,但这不会找到故意使用 replace() 之类的内容进行混淆的 URL。
这需要使用 Javascript 来完成。
如果可能的话,任何人都可以提供至少一个关于这如何可能的提示吗?
编辑:就上下文而言,我的项目是构建一个greasemonkey 脚本,从userscripts.org 的脚本列表中过滤掉Facebook 垃圾邮件诈骗。我已经有一些东西可以对用于诈骗的常见 facebook ajax URL 进行简单的文本搜索,但诈骗作者已经在尝试寻找解决方法。我需要可靠地捕获所有 Ajax URL 以进行检查,无论它们如何被串在一起并使用字符串函数进行更改。如果有兴趣,请参阅http://userscripts.org/scripts/show/163038。
【问题讨论】:
-
您提到故意混淆上述 URL...“变量”是您在 javascript 附件中定义的长字符串吗?如果这样的话,在 javascript 级别上的混淆就无关紧要了,正则表达式确实可以工作
-
假设“ajax”调用对您来说意味着使用
ajax(url)函数。您可以覆盖ajax(url)来存储您的 URL,而不是进行 ajax 调用。你怎么看? -
@blint:这是一个有趣的想法,但我必须重新定义一些较低级别的东西来捕获所有各种 Ajax 函数/方法,比如 jQuery 的 $.ajax、$.get 等,等等否则存在。他们都使用一种特定的功能或方法吗?
-
@Mike:该变量将是 Ajax 检索 .js 页面的结果。如果该页面中的 Ajax 调用包含使用函数或多个连接字符串构建的 URL,我认为这对于正则表达式来说将是一个问题。除非我误会了?
标签: javascript ajax search