2012-04-01 57 views
1

我有一个Greasemonkey脚本,它可以动态地将HTML表单插入到某些网页中。然后,表单可以由用户发布,以便处理到不同域上的PHP脚本。防止服务器跟踪Greasemonkey,跨域表单提交

的GM脚本将是这样的:

<form method="post" action="http://somedomain.com/process.php"> 
<input type="text name="sometext"> 
<input type="submit" name="s" value="submit!"> 
</form> 

现在,有没有什么办法的网站,知道这个表单被提交到?是否有可能防止这种情况(使用浏览器或其他设置),如果是,如何?

回答

0

我真的不知道你在问什么,而是你把东西在网站(客户端)的DOM与Greasemonkey的,对不对?

哦,通常他们不会注意到这一点,你要留言(仍然从客户端)到另一个地方,所以你会在清澈的。

但是,如果该网站是比较偏执,锡箔帽子的风格,我想他们可以fireing事件,当他们发生火灾后,你已经修改了DOM和做的东西。但是,这将是有点荒谬的假设。尽管如此,它可以从任何形式(包括你)

  • 查找所有形式在网站上,并阅读他们的“动作”
  • 发现,这不是该网站的所有代码做一些像

    • 捕获所有的提交在那里起源。

    但是这些代码应该是你看到从源头。可能会被混淆,所有的,但仍然会运行在客户端,所以你应该能够控制它。我真的不担心这一点。

  • +0

    谢谢你的回答。是的,我基本上将一长串HTML表单代码注入到页面的源代码中。我不关心那种偏执狂。只是想,如果他们使用Google Analytics(其中一些是),它可能会告诉他们我的表单被提交到哪里,除非用户使用某个选择性脚本拦截器阻止GA。 (这可能是整个问题的解决方案,但有点乏味) – manilow 2012-04-01 18:33:10

    +0

    我不明白这是如何工作的,除了捕捉点击的脚本,但表单的事件处理程序不在那里当该脚本最有可能执行时。所以你的脚本很好,因为你正在做一个完整的客户端的事情。只有当他们不断添加事件监听器以确保没有添加额外的表单时(这确实是太多的偏执狂),他们在理论上可以找到我能想到的东西,换句话说,您可能会清楚:) – Nanne 2012-04-01 18:36:17

    +0

    优秀。感谢您的详细解答。 – manilow 2012-04-01 18:57:43

    1

    网站可能使用JavaScript来捕捉您所添加的HTML的动作,包括URL和形式的任何数据。网站所有者很难做到这一点,但这是可能的。

    的一个解决办法是禁用的JavaScript该网站,Greasemonkey会仍然运行,即使JavaScript是在浏览器中。

    +0

    +1。禁用网站的JS是最终的反,反Greasemonkey防御。 (如果需要,GM可以替代偏执狂,页面JS。) – 2012-04-01 22:01:31