【发布时间】:2010-01-01 20:48:02
【问题描述】:
我的脚本的大多数用户所在的主机强制在每个页面的末尾放置一个文字广告。此代码潜入我脚本的 AJAX 响应中。这是一条 HTML 评论,后面是指向其注册页面的链接。如何从我的 AJAX 响应末尾删除此评论和链接?
【问题讨论】:
标签: javascript ajax string
我的脚本的大多数用户所在的主机强制在每个页面的末尾放置一个文字广告。此代码潜入我脚本的 AJAX 响应中。这是一条 HTML 评论,后面是指向其注册页面的链接。如何从我的 AJAX 响应末尾删除此评论和链接?
【问题讨论】:
标签: javascript ajax string
通常,这些脚本主要查找文本/html 内容,然后将代码推送到流中。您是否尝试过将内容类型设置为其他类型,例如 text/json、text/javascript、text/plain,并查看它是否可以在没有注入的情况下通过?
【讨论】:
我的第一个建议是找到一个可以匹配并消除尾随信息的正则表达式。我不是最擅长编写正则表达式,但这是一个尝试:
var response = "I am the data you want. <strong>And nothing more</strong> <!-- haha -> <a href='google.com'>Sucker!</a>";
var myStuff = response.replace("/\s+?<!--.*>$/gi", "");
一个简单快捷的解决方案是在您的消息末尾放置一个字符串(“spl0de!”),然后在其上拆分 ajax 响应,并且只处理它之前的内容。
var myStuff = response.split("spl0de!")[0];
这将删除任何其他人潜入您数据末尾的任何内容。
【讨论】:
您会在手动生成的 xml 中看到很多这种情况,它是无效的,因此消费者尝试使用手动正则表达式修复损坏的 xml——这完全是错误的方法。 你需要从源头上修复这个问题,在损坏的主机上。
【讨论】: