2014-10-09 36 views
0

我有任何形式提交使用PHP自我網址。對於行動網址我有兩個辦法:PHP空行動表格與PHP自我

  • 插入空這樣的:<form action="">
  • 插入$_SERVER["PHP_SELF"]

哪種方式更好更安全?

+5

通常,我使用'action =「」',但這個問題似乎主要是基於意見的。 – 2014-10-09 14:05:54

+0

我會同意@這個。 「」是一個可靠的動作URL – Pogrindis 2014-10-09 14:06:28

+3

php_self可能是一種注入危險,因爲它本質上就是腳本被調用的。如果它包含html,它將在表單中逐字顯示。 – 2014-10-09 14:11:50

回答

7

不要指望非標準行爲,這是當瀏覽器在沒有指定表單動作時將表單提交到同一頁面時發生的情況。始終要清楚簡明,以避免未解決的問題。特別是當它全部在你的控制範圍內時。

+0

公平的答案,你可以舉一個例子,當行動=「」可能會導致行動路線錯誤? – Pogrindis 2014-10-09 14:08:24

+2

我知道的所有瀏覽器都會在實際中將表單提交到相同的URL,這不會成爲問題。 *但是,理論上,還有其他用戶代理抓取文檔,並且它們可能不會表現出相同的行爲。通過顯式聲明一個URL,您可以消除這種不明確性(並明確指出缺少的操作不是錯誤)。 – 2014-10-09 14:10:19

+1

@JohnConde哇,從來沒有想到的! +1 – 2014-10-09 14:10:48

1

第三個選項可能是最好的:使表單的頁面應該知道它自己的url,所以輸入它。 @johnconde在不依賴非標準行爲的論點中是正確的,但是你所提供的替代品並不是很好:你希望用戶沒有做出某些事情(或者在做某件事情時被欺騙)。

隨機鏈接:http://www.dzhang.com/blog/2013/05/20/php_self-and-cross-site-scripting解釋這一點。

更好地瞭解您的網頁,並回顯您正在查看的實際網頁。