2012-04-01 56 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