Javascript 为什么我的Google Chrome扩展无法在这一特定页面上工作?

Javascript 为什么我的Google Chrome扩展无法在这一特定页面上工作?,javascript,google-chrome,google-chrome-extension,web-sql,Javascript,Google Chrome,Google Chrome Extension,Web Sql,一段时间以来,我一直在为Google Chrome开发一个扩展,它允许用户使用一个简单的浏览器操作图标将页面共享到Facebook。它提供了一些额外的功能,比如允许用户搜索过去的链接等。在我尝试分享之前,它的工作几乎完美无缺http://imgur.com/gallery/N0s079c 到我的个人Facebook帐户。这对我来说非常重要,原因有很多,因为这可能意味着类似的问题可能会发生在其他页面上,我希望在我的用户遇到扩展之前对其进行修补。下面简要介绍一下我的扩展如何共享链接: 用户单击浏览器

一段时间以来,我一直在为Google Chrome开发一个扩展,它允许用户使用一个简单的浏览器操作图标将页面共享到Facebook。它提供了一些额外的功能,比如允许用户搜索过去的链接等。在我尝试分享之前,它的工作几乎完美无缺http://imgur.com/gallery/N0s079c 到我的个人Facebook帐户。这对我来说非常重要,原因有很多,因为这可能意味着类似的问题可能会发生在其他页面上,我希望在我的用户遇到扩展之前对其进行修补。下面简要介绍一下我的扩展如何共享链接:

用户单击浏览器操作,然后从弹出窗口中的小菜单中单击共享。然后,弹出页面使用chrome.runtime.sendMessage向事件页面发送消息。 事件页面处理传入的消息流并适当地执行操作,调用使用chrome.tabs.query获取当前选项卡的函数。然后,它将此信息传递给一个函数,该函数查询一个简单的Web SQL数据库,查找URL的精确匹配,以查看用户以前是否共享过该URL。如果有,在继续之前,If会给他们一个基本的确认对话框。如果没有,则在继续之前将链接添加到数据库中。我在下面包含了这一部分的代码。 扩展处理URL并生成一个URL。 Facebook提要对话框将用户重定向到服务器页面,该页面根据用户的设置将用户带回他们共享的链接或新的Facebook帖子。 然而,当我尝试共享上面提到的链接时,扩展没有做任何事情。控制台中没有事件或弹出页面的错误。我不知道是什么原因导致它失败。我能想到的唯一一件事是,它是由Web SQL查询中的一些边缘案例错误引起的。按照当前的设置方式,查询中的错误将导致代码停止执行。它是一个基本的SELECT列,从表WHERE表达式查询中查找精确的匹配项,所以我觉得没有必要在其中写入任何错误处理

我在Imgur上测试了其他几个链接,看看这是否是该网站特有的问题,但事实似乎并非如此

用于检查共享链接历史记录/添加到历史记录的代码
嘿,好问题,这是一个基于你所说的猜测,但我想我可以告诉你为什么是那一页,我知道这一点,因为我以前也打过类似的

您的插入查询:

INSERT INTO history VALUES (\'' + fullDate + '\', \'' + result[0].title + '\', \'' + result[0].url + '\')
将解决该页面的以下问题:

INSERT INTO history VALUES ('April 5, 2014', 'It's a graduated cylinder', 'http://imgur.com/gallery/N0s079c'); 
这是无效的,您可以在语法突出显示中看到问题所在-It's,特别是其中的单引号,提前结束该字符串,使查询的其余部分变得毫无意义

因此,是的,这将发生在其他页面上,事实上,攻击者可以猜测发生了什么,并试图用精心编制的页面标题破坏数据库

这里的教训是清理任何用作SQL查询输入的内容。实际上,无论如何都不要信任任何输入并在主体上对其进行验证/清理

第二个教训,也是我很多次都没有学到的,如果某个东西会返回错误,那么抓住它并处理它


希望有帮助

不相关,但是您可以使用数组来获取月份名称吗?只是为了再次检查,您只对这个imgur URL有一个问题,即?其他imgur URL可以与您的扩展名配合使用吗?@Fresh是的,只是因为一些奇怪的原因才使用了特定的imgur URL。我尝试过的所有其他imgur URL都工作得很好。这很有意义!事后看来,我不确定我是怎么错过的!仍在学习编写高质量代码的细微差别。谢谢
INSERT INTO history VALUES ('April 5, 2014', 'It's a graduated cylinder', 'http://imgur.com/gallery/N0s079c');